- •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. Ссылки
Смешанный вектор и арифметика массива. Правило рециркуляции
Точное правило, влияющее поэлементно на смешанные вычисления с векторами и массивами, является более изощренными и точно описаны в ссылках. От опыта мы нашли следующее надежное руководство. • Выражение просматривается слева направо.
Любые короткие векторные операнды расширяются циклически их значениями, пока они не совпадет с размером любых других операндов.
Если длинные и короткие вектора с массивами лишь пересчитываются, то все массивы должны иметь одинаковый атрибут dimили будет выдана ошибка.
Любой векторный операнд более длинный, чем операнд матрицы или массива, генерирует ошибку.
Если имеются структуры массива, и нет ошибок, или приведение к вектору было выполнено, то результат - структура массива с общим атрибутом dimее операндов массива.
Внешнее произведение двух массивов
Важная работа на массивах – внешнее произведение. Если aи b- два числовых массива, их внешнее произведение - массив, вектор размерности которого получен, связывая их два вектора размерности (порядок важен), и чей вектор данных получен путем формирования всех возможных произведений элементов вектораас соответствующим элементами вектораb. Внешнее произведение выполняется специальным оператором %o%:
> ab <-%o % b
Альтернатива
> ab <- outer(a, b, "*")
Функция умножения может быть заменена произвольной функцией двух переменных. Например, если необходимо оценить функцию f(x; y) = cos(y)/(1 + x2)на регулярной сетке значения сx-иy-координатами, определенными векторами R xиyсоответственно, можно продолжить следующим образом:
> f <- function(x, y) cos(y)/(1 + x^2)
> z <- outer(x, y, f)
В особенности внешнее произведение двух обычных векторов - вдвойне преобразованный в нижний индекс массив (который является матрицей ранга самое большее 1). Заметьте, что оператор внешнего произведения, конечно, некоммутативен. Определение Ваших собственных функций R рассмотрят далее вГлаве 10 [написание собственных функций].
Обобщенное транспонирование массива
Можно использовать функцию aperm(a, perm)для перестановки массиваa. Параметромpermдолжна быть перестановка целых чисел {1, …. , к}, гдеkявляется номером нижних индексов вa. Результат функции - массив того же самого размера какa, но со старой размерностью, вычисленнойperm[j],становящейся новойj-йразмерностью. Самый простой способ понимания этой операции – это обобщение транспонирования для матриц. Действительно, еслиA- матрица, (то есть, вдвойне преобразованный в нижний индекс массив) тогдаBвычисляется путем: > B <-aperm (A, c (2,1))
и представляет собой транспонирование. Для этого особого случая доступна более простая функция t(), таким образом, мы, возможно, использовалиB <-t (A).
Матричные инструменты
Как отмечено выше, матрица - это массив с двумя нижними индексами. Однако это такой важный особый случай, что нуждается в отдельном обсуждении. R содержит много операторов и функций, которые доступны только для матриц. Например,t(X)– функция транспонирующая матрицу, как отмечено выше. Функцииnrow (A)иncol (A)дают число строк и столбцов в матрице соответственно.
Умножение матриц
Оператор %*% используется для умножения матриц. Матрицы n-на-1или1-наnмогут, конечно, использоваться в качествеn-вектора, если это соответствует контексту. Наоборот, векторы, которые встречаются в выражениях умножения матриц, автоматически расширяются или на вектор строки или на вектор столбца, какой бы ни являлся мультипликативно когерентным, если возможный, (хотя это не всегда однозначно возможно, как мы видим позже).
Если, например, AиB- квадратные матрицы одинакового размера, то
> А * B
матрица поэлементно произведений и > % * % B
матричное произведение. Если x- вектор, то > x %*% %*%x квадратная форма.
Функция crossprod()формирует "векторные произведения", значение, чтоcrossprod(X, y)является таким же какt(X) %*% y, но выполняется более эффективно. Если второй параметрcrossprod()опущен, то получаем то же, что в первом случае.
Значение diag()зависит от ее аргумента.diag(v), гдеv- вектор, дает диагональную матрицу с элементами вектора в качестве диагональных значений. С другой стороныdiag(M), гдеМявляется матрицей, дает вектор основных диагональных значенийМ. Это одинаковое соглашение дляdiag() в Matlab. Кроме того, не очень четко, еслиkявляется единственным числовым значением, тоdiag(k) являетсяk-на-kединичной матрицей!