Статистические вычисления

Задание 1

Выведите среднее и медиану по ряду vec <- rnorm(100, mean = 5, sd =2). Для генерации используйте зерно 1234.

set.seed(1234)
vec <- rnorm(100, mean = 5, sd = 2)

mean(vec)
## [1] 4.686477
median(vec)
## [1] 4.230744

Задание 2

Выведите метрики изменчивости (размах, дисперсия, стандартное отклонение) для вектора vec.

range(vec)
## [1]  0.3086046 10.0979821
var(vec)
## [1] 4.03532
sd(vec)
## [1] 2.008811

Задание 3

Выведите значения квартилей вектора vec (0% и 100% в том числе).

##         0%        25%        50%        75%       100% 
##  0.3086046  3.2093455  4.2307441  5.9424121 10.0979821

Задание 4

Выведите процентили вектора vec, до 75% включительно с шагом 25%, далее до 95% с шагом в 5% и далее с шагом в 1%. Значения округлите до второго знака.

my_probs <- c(0, 0.25, 0.5, seq(0.75, 0.90, 0.05), seq(0.95, 1, 0.01))
x <- quantile(vec, probs = my_probs)
round(x, 2)
##    0%   25%   50%   75%   80%   85%   90%   95%   96%   97%   98%   99%  100% 
##  0.31  3.21  4.23  5.94  6.30  6.92  7.67  8.42  8.58  9.14  9.25  9.83 10.10

Задание 5

Выведите базовые описательные статистики (среднее, медиана, квартили, размах).

Можно собрать статистики из отдельных функций, однако проще воспользоваться summary().

summary(vec)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##  0.3086  3.2093  4.2307  4.6865  5.9424 10.0980

Задание 6

Посчитайте, какова вероятность получить при стандартном нормальном распределении значение 2.25, или большее?

1 - pnorm(2.25)
## [1] 0.01222447

Задание 7

Какое значение при стандартном нормальном распределении соответствует 80 процентилю?

dnorm(0.8)
## [1] 0.2896916

Задание 8

В датасете sleep представлены результаты классического эксперимента о влиянии снотворных на длительность сна. Колонка group - идентификаторы тестовой и контрольной групп, 2 и 1 соответственно). Колонка extra - изменение в количестве часов сна. ID - идентификатор испытуемого в группе.

Проверьте, влияют ли снотворные на изменение длительности сна. Исходите из предположения, что данные распределены нормально и используйте t-тест.

t.test(extra ~ group, data = sleep)
## 
##  Welch Two Sample t-test
## 
## data:  extra by group
## t = -1.8608, df = 17.776, p-value = 0.07939
## alternative hypothesis: true difference in means between group 1 and group 2 is not equal to 0
## 95 percent confidence interval:
##  -3.3654832  0.2054832
## sample estimates:
## mean in group 1 mean in group 2 
##            0.75            2.33

Задание 9

Результат теста запишите в отдельный объект ttest_result. Выведите отдельно из полученного ttest_result значения t и p-value.

ttest_result <- t.test(extra ~ group, data = sleep, )

ttest_result$statistic
##         t 
## -1.860813
ttest_result$p.value
## [1] 0.07939414

Задание 10

Сгенерируйте два вектора, x - длиной в 1000 значений, выборка из нормального распределения с параметрами mean = 3 и sd = 1. Второй вектор, y - так же длиной в 1000 значений, по формуле 5 * x + runif(1000). Постройте и выведите регрессионную модель взаимосвязи x и y, результат запишите в объект model.

x <- rnorm(1000)
y <- 5 * x + runif(1000)
model <- lm(y ~ x)
model
## 
## Call:
## lm(formula = y ~ x)
## 
## Coefficients:
## (Intercept)            x  
##      0.5143       4.9822

Задание 11

Выведите сводные статистики (summary) по модели.

summary(model)
## 
## Call:
## lm(formula = y ~ x)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.54180 -0.24022 -0.00349  0.25372  0.50943 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 0.514338   0.009117   56.42   <2e-16 ***
## x           4.982245   0.009231  539.75   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.2882 on 998 degrees of freedom
## Multiple R-squared:  0.9966, Adjusted R-squared:  0.9966 
## F-statistic: 2.913e+05 on 1 and 998 DF,  p-value: < 2.2e-16

Задание 12

Выведите таблицу коэффициентов модели.

model_summary <- summary(model)
model_summary$coefficients
##              Estimate  Std. Error   t value      Pr(>|t|)
## (Intercept) 0.5143383 0.009116617  56.41767 1.025891e-312
## x           4.9822454 0.009230652 539.75014  0.000000e+00

Задание 13

Выделите остатки и проверьте их распределение на соответствие нормальному (shapiro.test()).

y_hat <- model_summary$residuals
shapiro.test(y_hat)
## 
##  Shapiro-Wilk normality test
## 
## data:  y_hat
## W = 0.95793, p-value = 2.362e-16

Задание 14

Создайте вектор z <- rlnorm(1000) и повторите задания 10-11, с учетом y = 5 * x + 3 * z + runif(1000).

z <- rlnorm(1000)
y <- 5 * x + 3 * z + runif(1000)

model2 <- lm(y ~ x + z)
summary(model2)
## 
## Call:
## lm(formula = y ~ x + z)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.52452 -0.25760  0.01424  0.24813  0.50214 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 0.508790   0.011552   44.04   <2e-16 ***
## x           4.988451   0.009198  542.32   <2e-16 ***
## z           2.995065   0.004162  719.58   <2e-16 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.2872 on 997 degrees of freedom
## Multiple R-squared:  0.9988, Adjusted R-squared:  0.9988 
## F-statistic: 4.132e+05 on 2 and 997 DF,  p-value: < 2.2e-16

Задание 15

На данных из предыдущего задания проверьте, значима ли взаимосвязь y и взаимодействия переменных x и z.

summary(lm(y ~ x * z))
## 
## Call:
## lm(formula = y ~ x * z)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.52712 -0.25504  0.01309  0.24959  0.50353 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 0.508755   0.011557  44.023   <2e-16 ***
## x           4.984867   0.011900 418.895   <2e-16 ***
## z           2.995038   0.004164 719.230   <2e-16 ***
## x:z         0.002173   0.004574   0.475    0.635    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.2873 on 996 degrees of freedom
## Multiple R-squared:  0.9988, Adjusted R-squared:  0.9988 
## F-statistic: 2.752e+05 on 3 and 996 DF,  p-value: < 2.2e-16