Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Решение прикладных задач в программной среде R. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
09.08.2026
Размер:
366 Кб
Скачать

[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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]