- •1.Написание собственных функций 3
- •2.Статистические модели в r 18
- •3.Список використаної літератури 41
- •Написание собственных функций
- •Простые примеры
- •Определение новых бинарных операторов
- •Именованные параметры и умолчания
- •Параметр ‘...’
- •Присвоения в пределах функций
- •Более сложные примеры
- •Фактор эффективности при проектировании блоков
- •Отбрасывание всех имен при печатании массива
- •Рекурсивное числовое интегрирование
- •Область действия
- •Настройка окружения
- •Классы, универсальные функции и объектно-ориентированное программирование
- •Статистические модели в r
- •Определение статистических моделей; формулы
- •Примеры
- •Противопоставления
- •Линейные модели
- •Универсальные функции для извлечения информации о модели
- •Vcov(object)
- •Дисперсионный анализ и сравнение модели
- •Таблицы anova
- •Обновление подогнанных моделей
- •Обобщенные линейные модели
- •Семейства
- •Функция glm()
- •Гауссовское семейство
- •Нелинейные наименьшие квадраты и модели наибольшего правдоподобия
- •Наименьшие квадраты
- •Метод максимального правдоподобия
- •Некоторые нестандартные модели
- •Список використаної літератури
Зміст
1.Написание собственных функций 3
1.1.Простые примеры 3
1.2.Определение новых бинарных операторов 5
1.3.Именованные параметры и умолчания 5
1.4.Параметр ‘...’ 6
1.5.Присвоения в пределах функций 7
1.6.Более сложные примеры 7
1.6.1.Фактор эффективности при проектировании блоков 8
1.6.2.Отбрасывание всех имен при печатании массива 9
1.6.3.Рекурсивное числовое интегрирование 10
1.7.Область действия 11
1.8.Настройка окружения 14
1.9.Классы, универсальные функции и объектно-ориентированное программирование 15
2.Статистические модели в r 18
2.1.Определение статистических моделей; формулы 18
Примеры 19
2.1.1.Противопоставления 22
2.2.Линейные модели 23
2.3.Универсальные функции для извлечения информации о модели 24
2.4.Дисперсионный анализ и сравнение модели 26
2.4.1.Таблицы ANOVA 27
2.5.Обновление подогнанных моделей 27
2.6.Обобщенные линейные модели 28
2.6.1.Семейства 30
2.6.2.Функция glm() 31
2.7.Нелинейные наименьшие квадраты и модели наибольшего правдоподобия 35
2.7.1.Наименьшие квадраты 36
2.7.2.Метод максимального правдоподобия 38
2.8.Некоторые нестандартные модели 39
3.Список використаної літератури 41
Написание собственных функций
Из неформальных примеров видно, что язык R позволяет пользователю создавать объекты режима функции. Существуют реальные функции R, которые хранятся в специальной внутренней форме и могут использоваться в дальнейших выражениях и так далее. В процессе язык чрезвычайно усилился в мощности, удобстве и элегантности, и обучение написанию полезных функций являются одним из основных способов сделать использование R удобным и производительным.
Нужно подчеркнуть, что большинство функций, предоставленных как часть системы R, таких как mean(), var(), postscript() и так далее, сами написаны на R и, таким образом, существенно не отличается от написанных пользователем функций. Функция определена присвоением вида:
> name <- function(arg_1, arg_2, ...) expression
expression это выражение R, (обычное групповое выражение), которое использует параметры arg_i для вычисления значения. Значение выражения – это значение, возвращаемое функцией.
Обычно в этом случае вызов функции затем обычно берет имя формулы name(expr_1, expr_2...) и может выполняться везде, где допустим вызов функции.
Простые примеры
Как первый пример, рассмотрим функцию, вычисляющую t-статистики двух выборок с показом “всех шагов”. Это - искусственный пример, конечно, так как есть другие, более простые способы достижения той же самой цели. Функция определена следующим образом:
> twosam <- function(y1, y2) { n1 <- length(y1); n2 <- length(y2) yb1 <- mean(y1); yb2 <- mean(y2) s1 <- var(y1); s2 <- var(y2) s <- ((n1-1)*s1 + (n2-1)*s2)/(n1+n2-2)
tst <- (yb1 - yb2)/sqrt(s*(1/n1 + 1/n2)) tst }
С этой определенной функцией, можно выполнить t-тест для двух выборок, используя такой вызов:
> tstat <-twosam (data$male, data$female); tstat
В качестве второго примера рассмотрим функцию, непосредственно эмулирующую команду наклонной черты влево Matlab, которая возвращает коэффициенты ортогональной проекции вектора y на пространство столбца матрицы X. Это обычно называют оценкой коэффициентов регрессии методом наименьших квадратов. Это обычно делалось бы функцией qr(); однако это иногда немного мудрено, чтобы использовать непосредственно, и проще иметь простую функцию как ниже для безопасного использования.
Таким образом, учитывая n-на-1 вектор y и n-на-p матрицу X, то X y определены как (XTX)-XTy, где (XTX)- является обобщенной инверсией X’X.
> bslash <- function(X, y) {
X <- qr(X)
qr.coef(X, y)
}
После создания объекта, он может использоваться в таких операторах как:
> regcoeff <-bslash (Xmat, yvar) и так далее.
Классическая функция R lsfit() делает это задание лучше. В свою очередь используются функции qr() и qr.coef() немного парадоксальным способом для выполнения своей части вычислений. Следовательно, существует, вероятно, некоторый смысл в простом выделении только этой части для использования функции в частом употреблении. Если так, то можно сделать это матричным бинарным оператором для более удобного использования.