Решение прикладных задач в программной среде R. Учебное пособие
.pdf[1] 5
>’/’(9,2)
[1] 4.5
Рассмотрим элементарные математические функции.
Логарифмические и экспоненциальные функции. Экспо-
ненты:
exp(x) - вычисление ex;
exp1m(x) - для |x| 1 нахождение ex − 1.
В R реализовано несколько логарифмических функций: log(x) и logb(x) - натуральный логарифм числа x; log10(x) – логарифм по десятичному основанию; log2(x) – логарифм по основанию 2;
log1p(x) – вычисление логарифма ln (1 + x) для для |x|; log(x, base=) и logb(x, base=) - вычисление логарифмов по
произвольному основанию.
>x=exp(2);x
[1] 7.389056
>log(x)
[1] 2
>logb(x)
[1] 2
>log10(100)
[1] 2
>log(8)
[1] 2.079442
>log1p(0.01) [1] 0.00995033 >log1p(-0.99999) [1] -11.51293 >log(125,base=5)
[1] 3
>logb(256,base=16)
[1] 2
Функции округления. Доступны следующие функции округления:
ceiling(x) – находит минимальное целое, не меньшее x (округление в сторону +1);
floor(x) – возвращает максимальное целое, не превосходящее x (округление в сторону −1);
21
trunc(x) – отбрасывает дробную часть(округление в сторону нуля);
round(x) – округляет к ближайшему целому;
round(x, dig) – общий вид функцииround(x), дополнительный параметр dig указывает на число знаков после запятой, до которого нужно произвести округление;
signif(x, digits = 6) – округляет до заданного(digits) числа значащих знаков (т.е. чисел, отличных от нуля), по умолчанию параметр digits равен 6.
>x=1.5555
>ceiling(x)
[1] 2
>floor(x)
[1] 1
>trunc(x)
[1] 1
>y=-1.5 >ceiling(y)
[1] -1
>floor(y)
[1] -2
>trunc(y)
[1] -1
>x=1/33;x
[1] 0.03030303
>round(x)
[1] 0
>round(x,4)
[1] 0.0303
>signif(x,5)
[1] 0.030303
Модуль и квадратный корень. abs(x) — модуль аргумента x,
который может быть как числовым (действительный или комплексный), так и логическим аргументом.
>x=-5; y=F; >abs(x)
[1] 5
>abs(y)
22
[1] 0
>z=T;abs(z)
[1] 1
>z=5-1i*2 >abs(z)
[1] 5.385165
sqrt(x) — корень квадратный переменной x.
>x=4;sqrt(x)
[1] 2
>y=-4;sqrt(y)
[1] NaN Предупреждение
In sqrt(y) : созданы NaN
Чтобы найти квадратный корень отрицательного числа x, нужно x определить как комплексное число:
>y=as.complex(y); sqrt(y)
[1] 0+2i
Специальные функции. К специальным функциям относятся: бета-функция и её логарифм, гамма-функция, логарифм модуля гамма-функции, производные гамма-функции, факториал и число сочетаний:
gamma(x) – гамма-функция Γ(x), где x - действительное число, не равное нулю и не являющееся целым отрицательным;
lgamma(x) – натуральный логарифм абсолютного значения гамма-функции;
digamma(x) – первая производная натурального логарифма гамма-функции;
trigamma(x) – вторая производная натурального логарифма гамма-функции;
psigamma(x, deriv) – вычисляет deriv-производную от ψ- функции (первой производной гамма-функции) (по умолчанию deriv=0, т.е. psigamma(x)=digamma(x));
>x=-8.9 >gamma(x)
[1] -3.507258e-05
>x=2.15
>gamma(x)
[1] 1.072997
>digamma(x)
23
[1] 0.5152385
>psigamma(x)
[1] 0.5152385
>trigamma(x)
[1] 0.5894157
beta(a, b) – вычисляется значение бета-функцииB(a, b) с параметрами a и b, где параметры a и b больше нуля;
lbeta(a, b) – натуральный логарифм бета-функции B(a, b);
>a=2;b=3
>beta(a,b)
[1] 0.08333333
>lbeta(a,b)
[1] -2.484907
choose(n, k) – число сочетаний Cnk из n по k, где n — действительное число, k – целое положительное;
lchoose(n, k) – натуральный логарифм числа сочетаний Cnk; factorial(x) – факториал x, где x ≥ 0.
lfactorial(x) – натуральный логарифм факториала x.
>n=5.4;k=3;x=4.6;x1=4
>choose(n,k)
[1] 13.464
>choose(round(n),k)
[1] 10
>factorial(x)
[1] 61.55392
>factorial(x1)
[1] 24
3.3.Тригонометрические функции
ВR реализованы следующие тригонометрические функции: sin(x) – sin (x), где x задан в радианах (например π/6);
cos(x) – cos (x); tan(x) – tg(x).
Обратные тригонометрические функции: asin(x) – arcsin(x);
acos(x) – arccos(x); atan(x) – arctg(x).
24
>sin(pi/2)
[1] 1
где pi – это константа π. Если у функции несколько аргументов, то они отделяются знаком«,» (запятая). Например, atan2(y,x) возвращает угол между осью Ox и вектором (x; y).
Гиперболические функции:
cosh(x) – гиперболический косинус аргумента x; acosh(x) – обратный гиперболический косинус; sinh(x) – гиперболический синус x;
asinh(x) – обратный гиперболический синус x; tanh(x) – гиперболический тангенс x;
atanh(x) – обратный гиперболический тангенс x.
3.4.Операции над комплексными переменными
Над комплексными числами в R можно производить операции сложения, вычитания, умножения, деления, возведения в степень:
>x=5+1i*5 >y=4-1i*5 >x+y
[1] 9+0i
>x-y
[1] 1+10i
>x*y
[1] 45-5i
>x/y
[1]-0.121951+1.097561i
>x^y
[1] 118961-44137.3i
Специальные функции для комплексных переменных:
Re(z) – нахождение действительной части комплексного числа z;
Im(z) – мнимая часть комплексного числа z; Mod(z) – модуль комплексного числа z = x + iy; Arg(z) – аргумент комплексного числа z = x + iy; Conj(z) – комплексно сопряжённое к z число.
25
К комплексным переменным можно применять и тригонометрические и кумулятивные функции.
>x=2+1i*2;y=2-1i*3 >Re(x)
[1] 2
>Im(y)
[1] -3
>Mod(x)
[1] 2.828427
>Arg(x)
[1] 0.7853982
>Conj(x)
[1] 2-2i
>cos(x)
[1]-1.565626-3.297895i
4.Статистические исследования в R
Широкий диапазон функций доступен в base-пакете. Кроме того, существует также большое количество других пакетов, которые увеличивают потенциальные возможности R. Эти пакеты располагаются отдельно и должны быть загружены в память. Список таких пакетов вместе с их описаниями можно найти в Интернете по адресу: http//cran.rproject.org/src/contrib/PACKAGES.html.
В пакете base есть основные статистические модели: lm – линейные модели;
glm - обобщенные линейные модели; aov, anova -дисперсионный анализ.
Впакете stats есть дополнительные статистические модели,
впервую очередьglm – обобщенная линейная модель, позволяющая, например, моделировать логистические или логарифмические зависимости. Пакеты nlme, mgcv позволяют строить нелинейные модели.
Например, пусть даны два вектора x и y с пятью наблюдениями каждый, и необходимо найти модель линейной регрессии:
> x <-1:5
26
>y <-rnorm (5) >lm (y~x)
Call:
lm (formula = y ~ x)
Coefficients(Коэффициенты:):
Intercept x 0.2252 0.1809
Результат подгонки линейной модели lm (y~x) может быть скопирован в объект:
>mymodel<-lm (y~x)
Некоторые функции R позволяют пользователю отобразить полученные модели:
summary()– выводит определенный набор статистических параметров;
residuals()– отображает остатки регрессии; predict()– выдает прогнозные значения; coef()– отображает вектор с оценками параметра.
>summary(mymodel) >m(formula = y ~ x)
Residuals: 1 2 3 4 5
1.0070 -1.0711 -0.2299 -0.3550 0.6490 Coefficients (Коэффициенты:):
Estimate Std. Error t value Pr(>|t|)
Оценка Станд. Отклон t value P value (> |t |)) Intercept) 0.2252 1.0062 0.224 0.837
x |
0.1809 0.3034 0.596 0.593 |
Residual standard error(СКО): 0.9594 on 3 degrees of freedom
Multiple R-Squared (Коэффициент детерминации R2): 0.1059,
Adjusted R-squared (Скорректированный R2): - |
|
|||
0.1921 |
|
|
and 3 degrees of free- |
|
F-statistic: 0.3555 on 1 |
||||
dom(на 1 и 3 степени свободы), p-value: 0.593 |
|
|||
>residuals (mymodel) |
3 |
4 |
5 |
|
1 |
2 |
|||
1.007005 -1.071059 -0.229937 -0.354968 0.648959
27
>predict (mymodel) |
3 |
4 |
5 |
||
1 |
|
2 |
|||
0.406133 |
0.587026 |
0.767919 |
0.948812 1.129704 |
||
>coef(mymodel) |
|
|
|
|
|
(Intercept) x |
|
|
|
|
|
0.2252400 |
0.1808929 |
|
|
|
|
Эти значения можно использовать в последующих вычислениях, например:
>a <-coef (mymodel) [1] >b <-coef (mymodel) [2] >newdata <-c (11, 13, 18) >a+ b*newdata
[1] 2.215062 2.576847 3.481312
Чтобы отобразить элементы результата анализа, можно использовать функцию names(); фактически, эта функция может использоваться с любым объектом в R.
>names (mymodel)
[1] "coef" "residuals" "effects" "rank"
[5] "fitted.values" "assign" "qr" "df.residual" [9] "xlevels" "call" "terms" "model"
>names(summary (mymodel))
[1] "call" "terms" "residuals" "coef"
[5] "sigma" "df" "r.squared" "adj.r.squared" [9] "fstatistic" "cov.unscaled"
Сами элементы могут быть извлечены следующим спосо-
бом:
>summary(mymodel) ["r.squared"] $r.squared
[1] 0.09504547
Формулы – ключевые элементы в статистических анализах в R. Использование их одинаково для всех функций. Формула имеет форму y ~ модель, где y - проанализированный ответ и модель – набор условий, для которых некоторые параметры должны быть оценены.
Эти условия отделены арифметическими символами, но они имеют здесь особенное значение.
a+b - совокупный эффект а и b;
a:b - интерактивный эффект между а и b;
28
a*b - идентично a+b+a:b; poly(a,n) - полином от а степени n;
^n - включает все взаимодействия до уровня n, то есть
(a+b+c) ^2 идентичен a+b+c+a:b+a:c+b:c;
b%in%a - эффекты b вложены в а (идентичный a+a:b); a-b - удаляет эффект b, например: (a+b+c) ^n-a:b иден-
тичен a+b+c+a:c+b:c, y~x-1 выполняет регресс через начало координат (идентификатор. Для y~x+0, или 0+y~x).
Таким образом, арифметические операторы вR имеют в формуле различные значения. Например, формула y~x1+x2 определяет модель y = b1x1 +b2x2 + a. Для включения арифметических операций в формулу, можно использовать функциюi(): формула y~I(x1+x2) определяет модель y = b*(x1 + x2) + a.
5.Статистические оценки
5.1.Выборочное среднее
Описание
Выборочной средней xcp называют среднее арифметическое значение признака выборочной совокупности. Если все значения х1, х2, …,хn признака выборки объема n различны, то
x = ( x1 + x2 +K+ xn ) n .
Описание функции mean(x, ...)
Параметры
x – вектор, матрица или data.frame.
Пример
>x<-c(3.6,7.8,9.6,5.7,8.9) >mean(x)
7.12 (значение среднего)
29
5.2.Выборочная дисперсия и СКО
Описание
Характеризует рассеяние наблюдаемых значений количественного признака выборки вокруг своего среднего значенияхср. Выборочной дисперсией называют среднее арифметическое квадратов отклонения наблюдаемых значений признака от их среднего значения хср. Если в качестве оценки генеральной дисперсии принять выборочную дисперсию, то эта оценка будет приводить к систематическим ошибкам, давая заниженное значение генеральной дисперсии, поэтому используют исправленную дисперсию. Исправленная (несмещенная) выборочная дисперсия вычисляется по формуле:
|
|
|
|
|
|
2 |
||
S 2 |
= |
1 |
|
× |
n |
(x - |
|
). |
|
x |
|||||||
|
|
å |
||||||
x |
|
n -1 |
|
i |
||||
|
|
|
i=1 |
|
|
|
||
Выборочное среднеквадратическое отклонение – СКО:
Sx =
Sx2 .
Описание функции
var(x, y = NULL, na.rm = FALSE) sd(x, na.rm = FALSE)
Параметры
x – вектор, матрица или data.frame;
y – NULL (по умолчанию) или вектор, матрица или data.frame той же размерности, что и x;
na.rm – удалить данные, значения которых отсутствуют.
Пример
>x<-c(3.6,7.8,9.6,5.7,8.9)
>y<-c(2.7,8.9,6.5,8.9,6.5)
>var(x, y, na.rm = FALSE)
>sd(x, na.rm = FALSE)
[1]2.9(значение дисперсии )
[1]2.459065 (значение СКО)
30
