- •Version 3.1.0 (2014-04-10)
- •1.Введение и предварительные замечания 8
- •6.Списки и фреймы данных 37
- •11.Статистические модели в r 64
- •12.Графические процедуры 78
- •13.Пакеты 97
- •Предисловие
- •Предложения читателю
- •О переводе
- •Введение и предварительные замечания
- •Среда r
- •Связанное программное обеспечение и документация
- •R и статистика
- •R и оконная система
- •Использование r в интерактивном режиме
- •Первый сеанс
- •Получение справки по функциям и средствам
- •Команды r,учет регистра и т.Д.
- •Повтор и коррекция предыдущих команд
- •Выполнение команд из файла или перенаправление вывода в файл
- •Сохранение данных и удаление объектов
- •Простые манипуляции; числа и векторы
- •Вектора и присваивания
- •Векторная арифметика
- •Генерация регулярных последовательностей
- •Логические векторы
- •Пропущенные значения
- •Векторы символов
- •Векторы индексов; выбор и изменение подмножеств наборов данных
- •Другие типы объектов
- •Объекты, их режимы и атрибуты
- •Внутренние атрибуты: режим и длина
- •Изменяющаяся длина объекта
- •Получение и установка атрибутов
- •Класс объекта
- •Упорядоченные и неупорядоченные факторы
- •Специальный пример
- •Функция tapply () и массивы с переменной длиной строк
- •Упорядоченные факторы
- •Массивы и матрицы
- •Массивы
- •Индексация массива. Подразделы массива
- •Индекс матрицы
- •Функция array()
- •Смешанный вектор и арифметика массива. Правило рециркуляции
- •Внешнее произведение двух массивов
- •Обобщенное транспонирование массива
- •Матричные инструменты
- •Умножение матриц
- •Линейные уравнения и инверсия
- •Собственные значения и собственные векторы
- •Сингулярное разложение и определители
- •Подгонка методом наименьших квадратов и qr разложение
- •Формирование разделенных матриц cbind () и rbind ()
- •Функция связывания массивовc()
- •Таблицы частот от факторов
- •Списки и фреймы данных
- •Построение и изменение списков
- •Конкатенация списков
- •Фреймы данных
- •Создание фреймов данных
- •Attach() и detach()
- •Работа с фреймами данных
- •Присоединение произвольных списков
- •Управление путем поиска
- •Чтение данных из файлов
- •Функция read.Table()
- •Функция scan()
- •Доступ к встроенным наборам данных
- •Загрузка данных из других пакетов r
- •Редактирование данных
- •Распределение вероятности
- •R как ряд статистических таблиц
- •Исследование распределения набора данных
- •Тесты на одной и двух выборках
- •Группировка, циклы и условное выполнение
- •Группирующие выражения
- •Проверка утверждения
- •Условное выполнение: операторы if
- •Повторное выполнение: for, loops, repeat и while
- •Написание собственных функций
- •Простые примеры
- •Определение новых бинарных операторов
- •Именованные параметры и умолчания
- •Параметр ‘...’
- •Присвоения в пределах функций
- •Более сложные примеры
- •Фактор эффективности при проектировании блоков
- •Отбрасывание всех имен при печатании массива
- •Рекурсивное числовое интегрирование
- •Область действия
- •Настройка окружения
- •Классы, универсальные функции и объектно-ориентированное программирование
- •Статистические модели в r
- •Определение статистических моделей; формулы
- •Примеры
- •Противопоставления
- •Линейные модели
- •Универсальные функции для извлечения информации о модели
- •Дисперсионный анализ и сравнение модели
- •Таблицы anova
- •Обновление подогнанных моделей
- •Обобщенные линейные модели
- •Семейства
- •Функция glm()
- •Нелинейные наименьшие квадраты и модели наибольшего правдоподобия
- •Наименьшие квадраты
- •Метод максимального правдоподобия
- •Некоторые нестандартные модели
- •Графические процедуры
- •Высокоуровневые команды рисования
- •Функция plot()
- •Отображение многомерных данных
- •Графический вывод
- •Параметры для высокоуровневых графических функций
- •Низкоуровневые команды рисования
- •Математическая аннотация
- •Векторные шрифты Херши
- •Интерактивная графика
- •Использование графических параметров
- •Постоянные изменения: функция par()
- •Временные изменения: параметры для графических функций
- •Список графических параметров
- •Графические элементы
- •Оси и метки
- •Поля рисунка
- •Окружение составных фигур
- •Устройства вывода
- •PostScript диаграммы для типографии
- •Несколько графических устройств одновременно
- •Динамическая графика
- •Стандартные пакеты
- •Сторонние пакеты и cran
- •Пространства имен
- •Пакеты для анализа временных рядов
- •Основные пакеты - Basics
- •Время и даты -Times and Dates
- •Классы временных рядов - Time Series Classes
- •Прогноз и одномерное моделирование -Forecasting and Univariate Modeling
- •Ресэмплирование - Resampling
- •Декомпозиция и фильтрация - Decomposition and Filtering
- •Стационарность, единичный корень и коинтеграция - Stationarity, Unit Roots, and Cointegration
- •Нелинейный анализ временных рядов -Nonlinear Time Series Analysis
- •Модели динамических регрессий - Dynamic Regression Models
- •Модели многомерных временных рядов - Multivariate Time Series Models
- •Модели непрерывного времени - Continuous time models
- •Исходные временные ряды - Time Series Data
- •Разное - Miscellaneous
- •Перечень пакетов для анализа временных рядов:
- •• Aer • afmtools • bayesGarch
- •Приложение a. Примерный сеанс
- •Приложения b. Вызов r
- •В.1. Вызов r из командной строки
- •В.2. Вызов r под Windows
- •В.3. Вызов r под os X
- •В.4. Скрипты r
- •Приложение c. Редактор командной строки
- •Приложение f. Ссылки
Линейные уравнения и инверсия
Решение линейных уравнений является инверсией умножения матриц. Когда после
> b <- A %*% x только A и b даны, векторxявляется решением этой системы линейных уравнений. ВR > solve(A, b)
решает систему, возвращая x(с некоторой потерей точности). Заметим, что в линейной алгебре, формально x = А-1b, где А-1 обозначает инверсию A, которая может быть вычислена: solve(A)
но редко необходимо. В цифровой форме это является и неэффективным и потенциально нестабильным, чтобы вычислить x <- solve(A) %*% bвместоsolve(A,b). Квадратичная формаxTA-1x, которая используется в многомерных вычислениях, должна быть вычислена подобноx %*% solve(A,x), вместо вычисления инверсииA.
Собственные значения и собственные векторы
Функция eigen(Sm)вычисляет собственные значения и собственные векторы симметричной матрицыSm. Результат этой функции - список двух компонентов, названных значением и векторами.
Присвоение:
> ev <- eigen(Sm) присвоит этот списокev. Затемev$val- вектор собственных значенийSmиev$vec- матрица соответствующих собственных векторов. Если бы мы только нуждались в собственных значениях, мы, возможно, использовали присвоение:> evals <- eigen(Sm)$values
evalsтеперь содержит вектор собственных значений, и второй компонент отброшен. Если выражение
> eigen(Sm)
используется отдельно в качестве команды, эти два компонента напечатаны с их именами. Для больших матриц лучше избежать вычисления собственных векторов, если они не необходимы при использовании выражениях:
> evals <- eigen(Sm, only.values = TRUE)$values
Сингулярное разложение и определители
Функция svd(M)берет произвольный матричный параметрМи вычисляет сингулярное разложениеМ.Она является матрицей с ортонормированными столбцамиU с одинаковым пробелом столбца какМ, вторая матрица ортонормированных столбцовV, чей пробел столбца - пробел строки М и диагональная матрица положительных значенийDтак, чтоМ = U % * % D % * % t(V).Dфактически возвращен как вектор диагональных элементов. Результатомsvd(M) является фактически список трех компонентов, названныхd, uиvс очевидными значениями.
Если М является фактически квадратной, то не трудно видеть, что: > absdetM <- prod(svd(M)$d)
вычисляет абсолютное значение определителя М. Если бы это вычисление часто было необходимо со множеством матриц, то это могло бы быть определено как функция R > absdet <- function(M) prod(svd(M)$d) после которого мы могли использоватьabsdet()лишь как другую функциюR. Как дальнейший тривиальный, но потенциально полезный пример, Вам могло бы понравиться рассматривать запись функции, скажемtr()для вычисления трассировки квадратной матрицы. [Подсказка: не следует использовать явный цикл. Смотрите снова на функциюdiag().]
У R есть встроенная функция det, чтобы вычислить определитель, включая знак, и другаяdeterminant,чтобы дать знак и модуль (дополнительно в логарифмическом масштабе).
Подгонка методом наименьших квадратов и qr разложение
Функция lsfit ()возвращает список, дающий результаты процедуры подгонки методом наименьших квадратов. Такое присвоение как:
> ans <- lsfit(X, y)
дает результаты подгонки методом наименьших квадратов, где y- вектор наблюдений, иXявляется проектируемой матрицей. См. справочное руководство для большего количества деталей, и также для последующей функцииls.diag(), между прочим, для диагностики регрессии. Заметим, что главный средний параметр автоматически включен и не должен быть включен явно как столбецX. Далее отметьте, что всегда предпочтительней использоватьlm()(см.Раздел 11.2 [Линейные модели]) кlsfit()для моделирования регрессии. Другая тесно связанная функция – этоqr()и ее последователи. Рассмотрим следующие присвоения:
> Xplus <- qr(X)
> b <- qr.coef(Xplus, y)
> fit <- qr.fitted(Xplus, y)
> res <- qr.resid(Xplus, y)
Они вычисляют ортогональную проекцию yна диапазонXвfit, проекция на ортогональное дополнение вresи векторе коэффициента для проекции вb, то есть,b является по существу результатом оператора 'наклонной черты влево' Matlab.
Не предполагается, что Xимеет полный ранг столбца. Избыточность будет обнаружена и удалена при ее выявлении.
Эта альтернатива - более старый, низкий уровень способа выполнения вычислений наименьших квадратов. Хотя все еще полезный в некоторых контекстах, он был бы теперь заменен статистическими функциями моделей, как будет обсуждено в Главе 11 [Статистические модели в R ].