Статистика в R

Карен Аванесян
Апрель 2018, Ростов-на-Дону

Загрузка данных

Руководствуясь подсказкой ниже, воспроизвидите в программе самостоятельно необходимые алгоритмы library () попробуйте сами Pisa_Russia_2015 <- попробуйте сами gender <- ST004D01T add_learn_science <- Pisa_Russia_2015$ST071Q01NA add_learn_math <- Pisa_Russia_2015$ST071Q02NA

Корреляции

library(ggpubr)
my_data <- mtcars
head(my_data, 6) #дает нам 6 первых рядов базы данных
                   mpg cyl disp  hp drat    wt  qsec vs am gear carb
Mazda RX4         21.0   6  160 110 3.90 2.620 16.46  0  1    4    4
Mazda RX4 Wag     21.0   6  160 110 3.90 2.875 17.02  0  1    4    4
Datsun 710        22.8   4  108  93 3.85 2.320 18.61  1  1    4    1
Hornet 4 Drive    21.4   6  258 110 3.08 3.215 19.44  1  0    3    1
Hornet Sportabout 18.7   8  360 175 3.15 3.440 17.02  0  0    3    2
Valiant           18.1   6  225 105 2.76 3.460 20.22  1  0    3    1
#summary(df) также всегда полезно

Квантильный плот. Визуальная проверка на нормальность

Квантильный плот (QQPlot) является наиболее простым и базовым способом проверки нормальности распределения переменной.

# mpg
#Проверьте самостоятельно вторую переменную!
ggqqplot(my_data$mpg, ylab = "MPG")

plot of chunk unnamed-chunk-3

Тест Шапиро-Уилка на нормальность распределения

# Shapiro-Wilk normality test for mpg
shapiro.test(my_data$mpg) # => p = 0.1229

    Shapiro-Wilk normality test

data:  my_data$mpg
W = 0.94756, p-value = 0.1229
# Shapiro-Wilk normality test for wt проделать самостоятельно

Тест должен выявить ОТСУТСТВИЕ статистически значимых отличий

Корреляции Пирсона

res <- cor.test(my_data$wt, my_data$mpg, method = "pearson")
res

    Pearson's product-moment correlation

data:  my_data$wt and my_data$mpg
t = -9.559, df = 30, p-value = 1.294e-10
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
 -0.9338264 -0.7440872
sample estimates:
       cor 
-0.8676594 
res$p.value  # Извлечь статистическую значимость
[1] 1.293959e-10
res$estimate # Извлечь коэффициент корреляции
       cor 
-0.8676594 

Ранговые корреляции (Тау Кендалла)

res2 <- cor.test(my_data$wt, my_data$mpg,  method="kendall")
res2

    Kendall's rank correlation tau

data:  my_data$wt and my_data$mpg
z = -5.7981, p-value = 6.706e-09
alternative hypothesis: true tau is not equal to 0
sample estimates:
       tau 
-0.7278321 

Ранговые корреляции (Ро Спирмана)

res2 <- cor.test(my_data$wt, my_data$mpg,  method="kendall")
res2

    Kendall's rank correlation tau

data:  my_data$wt and my_data$mpg
z = -5.7981, p-value = 6.706e-09
alternative hypothesis: true tau is not equal to 0
sample estimates:
       tau 
-0.7278321 

Скатерограмма (Scatter Plot) (1)

Построим корреляцию визуально

ggscatter(my_data, x = "wt", y = "mpg",
          add = "reg.line",  # Добавить кривую
          conf.int = TRUE,     #Изобразить доверительный интервал  
          add.params = list(color = "blue",
                            fill = "lightgray")
          )+
  stat_cor(method = "pearson", label.x = 3, label.y = 30)  # Добавить коэффициент корреляции и уровень значимости

plot of chunk unnamed-chunk-8

Скатерограмма (Scatter Plot) (2)

graph

One sample t-test (1)

# One-sample t-test
res <- t.test(Pisa_Russia_2015$add_learn_science, mu = 8)
res  # Printing the results

    One Sample t-test

data:  Pisa_Russia_2015$add_learn_science
t = -23.491, df = 4890, p-value < 2.2e-16
alternative hypothesis: true mean is not equal to 8
95 percent confidence interval:
 6.015623 6.321323
sample estimates:
mean of x 
 6.168473 

Two sample t-test (1)

Тест начинается с проверки гомогенности дисперсий

res.ftest <- var.test(add_learn_science ~ gender, data = Pisa_Russia_2015)
res.ftest

    F test to compare two variances

data:  add_learn_science by gender
F = 0.70535, num df = 2555, denom df = 2334, p-value < 2.2e-16
alternative hypothesis: true ratio of variances is not equal to 1
95 percent confidence interval:
 0.6514761 0.7635718
sample estimates:
ratio of variances 
         0.7053514 
res.ftest$p.value #значит....?
[1] 6.648591e-18

Two sample t-test (2)

# Compute t-test
res <- t.test(add_learn_science ~ gender, data = Pisa_Russia_2015, var.equal = TRUE)
res

    Two Sample t-test

data:  add_learn_science by gender
t = -5.3524, df = 4889, p-value = 9.077e-08
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
 -1.1382699 -0.5279678
sample estimates:
mean in group female   mean in group male 
            5.770736             6.603854 

Two sample t-test (3)

p <- ggboxplot(Pisa_Russia_2015, x = "gender", y = "add_learn_science",
          col = "gender", palette = "jco")
#  Add p-value
p + stat_compare_means(method = "t.test", label.x = 1.5, label.y = 30)

plot of chunk unnamed-chunk-12

Two sample t-test (3)

graph