Непараметрические тесты

Олеся Волченко

28 октября 2020

Непараметрические тесты

Мы уже видели, что далеко не всегда переменные распределены нормально. Что же делать?

Голосование за партию Х

У нас есть агрегированные данные о голосовании за партию Х в разных субъектах федерации на выборах 2007 и 2011 года (база данных vote.csv, переменная unit – номер субъекта федерации). Можно ли сказать, что поддержка партии Х изменилась?

Тест Шапиро-Уилка

shapiro.test(data$votes_2007 - data$votes_2011)
## 
##  Shapiro-Wilk normality test
## 
## data:  data$votes_2007 - data$votes_2011
## W = 0.94717, p-value = 0.001898

Голосование за партию Х

Гистограмма

hist(data$votes_2007 - data$votes_2011)

Голосование за партию Х

Q-Q plot

qqnorm(data$votes_2007 - data$votes_2011); qqline(data$votes_2007 - data$votes_2011)

Голосование за партию Х

t-тест (который на самом деле использовать не стоит)

t.test(data$votes_2007, data$votes_2011, paired = T)
## 
##  Paired t-test
## 
## data:  data$votes_2007 and data$votes_2011
## t = 17.147, df = 82, p-value < 2.2e-16
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
##  14.00645 17.68295
## sample estimates:
## mean of the differences 
##                 15.8447

Голосование за партию Х

график

boxplot(data$votes_2007, data$votes_2011)

Голосование за партию Х

тест Вилкоксона

wilcox.test(data$votes_2007, data$votes_2011, paired = TRUE)
## 
##  Wilcoxon signed rank test with continuity correction
## 
## data:  data$votes_2007 and data$votes_2011
## V = 3458, p-value = 7.023e-15
## alternative hypothesis: true location shift is not equal to 0

Пример из домашней работы: про общительных программистов

Различается ли заработная плата (переменная logsalary, измеренная в условных единицах) у респондентов, предпочитающих живое общение, и респондентов, предпочитающих взаимодействие онлайн (переменная Extraversion).

data1 <- read.csv("/Users/olesyavolchenko/Yandex.Disk.localized/teaching/DA MA 2019/exam 1/so.csv")

Пример из домашней работы: про общительных программистов

Равенство дисперсий

var.test(data1$logsalary ~ data1$Extraversion)
## 
##  F test to compare two variances
## 
## data:  data1$logsalary by data1$Extraversion
## F = 0.87974, num df = 10006, denom df = 4687, p-value = 2.47e-07
## alternative hypothesis: true ratio of variances is not equal to 1
## 95 percent confidence interval:
##  0.8374275 0.9237738
## sample estimates:
## ratio of variances 
##           0.879736

Пример из контрольной: про общительных программистов

Нормальность распределения

hist(data1$logsalary[data1$Extraversion == "Online"])

hist(data1$logsalary[data1$Extraversion == "In real life (in person)"])

ks.test(data1$logsalary[data1$Extraversion == "Online"], "pnorm")
## Warning in ks.test(data1$logsalary[data1$Extraversion == "Online"], "pnorm"):
## ties should not be present for the Kolmogorov-Smirnov test
## 
##  One-sample Kolmogorov-Smirnov test
## 
## data:  data1$logsalary[data1$Extraversion == "Online"]
## D = 0.99743, p-value < 2.2e-16
## alternative hypothesis: two-sided
ks.test(data1$logsalary[data1$Extraversion == "In real life (in person)"], "pnorm")
## Warning in ks.test(data1$logsalary[data1$Extraversion == "In real life (in
## person)"], : ties should not be present for the Kolmogorov-Smirnov test
## 
##  One-sample Kolmogorov-Smirnov test
## 
## data:  data1$logsalary[data1$Extraversion == "In real life (in person)"]
## D = 0.99777, p-value < 2.2e-16
## alternative hypothesis: two-sided
qqnorm(data1$logsalary[data1$Extraversion == "Online"])
qqline(data1$logsalary[data1$Extraversion == "Online"], col= 2)

qqnorm(data1$logsalary[data1$Extraversion == "In real life (in person)"])
qqline(data1$logsalary[data1$Extraversion == "In real life (in person)"], col= 2)

Пример из домашней работы: про общительных программистов

t-test

t.test(data1$logsalary ~ data1$Extraversion, var.equal = F)
## 
##  Welch Two Sample t-test
## 
## data:  data1$logsalary by data1$Extraversion
## t = 2.0237, df = 8657.6, p-value = 0.04303
## alternative hypothesis: true difference in means is not equal to 0
## 95 percent confidence interval:
##  0.001764868 0.110816548
## sample estimates:
## mean in group In real life (in person)                   mean in group Online 
##                               11.66063                               11.60434

Пример из домашней работы: про общительных программистов

Тест Манна-Уитни-Вилкоксона

wilcox.test(data1$logsalary ~ data1$Extraversion)
## 
##  Wilcoxon rank sum test with continuity correction
## 
## data:  data1$logsalary by data1$Extraversion
## W = 23962724, p-value = 0.03464
## alternative hypothesis: true location shift is not equal to 0

Ценность власти и использование Интернета

library(foreign)
ESS5 <- read.spss("/Users/olesyavolchenko/Yandex.Disk.localized/datafiles/ESS/ESS5e03_3.sav", use.value.labels=T, to.data.frame=T)
ESS5$Power <- (as.numeric(ESS5$imprich) + as.numeric(ESS5$iprspot))/2

Проверим, связана ли ценность власти и частота использования Интернета

kruskal.test(ESS5$Power ~ ESS5$netuse)
## 
##  Kruskal-Wallis rank sum test
## 
## data:  ESS5$Power by ESS5$netuse
## Kruskal-Wallis chi-squared = 48.963, df = 7, p-value = 2.307e-08

Post-hoc

library (FSA)
## ## FSA v0.8.30. See citation('FSA') if used in publication.
## ## Run fishR() for related website and fishR('IFAR') for related book.
dunnTest(ESS5$Power,ESS5$netuse, method = "bonferroni" )
## Warning: Some rows deleted from 'x' and 'g' because missing data.
## Dunn (1964) Kruskal-Wallis multiple comparison
##   p-values adjusted with the Bonferroni method.
##                                            Comparison           Z      P.unadj
## 1                  Every day - Less than once a month -1.14510283 2.521666e-01
## 2                               Every day - Never use -5.34376579 9.103518e-08
## 3                  Less than once a month - Never use -0.68181608 4.953553e-01
## 4               Every day - No access at home or work -4.01144351 6.034862e-05
## 5  Less than once a month - No access at home or work  0.02736291 9.781703e-01
## 6               Never use - No access at home or work  1.95483648 5.060237e-02
## 7                            Every day - Once a month -2.36368663 1.809411e-02
## 8               Less than once a month - Once a month -0.98374668 3.252401e-01
## 9                            Never use - Once a month -0.65609217 5.117648e-01
## 10           No access at home or work - Once a month -1.33003948 1.835053e-01
## 11                            Every day - Once a week -4.02649886 5.661351e-05
## 12               Less than once a month - Once a week -1.19443340 2.323085e-01
## 13                            Never use - Once a week -1.00453905 3.151189e-01
## 14            No access at home or work - Once a week -2.19000408 2.852394e-02
## 15                         Once a month - Once a week  0.04645370 9.629486e-01
## 16                  Every day - Several times a month -0.06496405 9.482026e-01
## 17     Less than once a month - Several times a month  0.91617461 3.595753e-01
## 18                  Never use - Several times a month  2.40952294 1.597339e-02
## 19  No access at home or work - Several times a month  1.49000705 1.362224e-01
## 20               Once a month - Several times a month  1.98494074 4.715107e-02
## 21                Once a week - Several times a month  2.71681500 6.591344e-03
## 22                   Every day - Several times a week -2.79834400 5.136537e-03
## 23      Less than once a month - Several times a week  0.12966041 8.968351e-01
## 24                   Never use - Several times a week  1.90789621 5.640463e-02
## 25   No access at home or work - Several times a week  0.27498367 7.833288e-01
## 26                Once a month - Several times a week  1.39675246 1.624880e-01
## 27                 Once a week - Several times a week  2.21831037 2.653368e-02
## 28       Several times a month - Several times a week -1.27797569 2.012580e-01
##           P.adj
## 1  1.000000e+00
## 2  2.548985e-06
## 3  1.000000e+00
## 4  1.689761e-03
## 5  1.000000e+00
## 6  1.000000e+00
## 7  5.066351e-01
## 8  1.000000e+00
## 9  1.000000e+00
## 10 1.000000e+00
## 11 1.585178e-03
## 12 1.000000e+00
## 13 1.000000e+00
## 14 7.986703e-01
## 15 1.000000e+00
## 16 1.000000e+00
## 17 1.000000e+00
## 18 4.472550e-01
## 19 1.000000e+00
## 20 1.000000e+00
## 21 1.845576e-01
## 22 1.438230e-01
## 23 1.000000e+00
## 24 1.000000e+00
## 25 1.000000e+00
## 26 1.000000e+00
## 27 7.429430e-01
## 28 1.000000e+00

Что мы уже умеем

Бинарная Номинальная/ординальная Интервальная/отношений
Бинарная Тест хи-квадрат с поправкой Йетса Тест хи-квадрат t-test; тест Манна-Уитни-Вилкоксона
Номинальная/ординальная Тест хи-квадрат Тест хи-квадрат anova, тест Краскела-Уоллиса
Интервальная/отношений t-test; тест Манна-Уитни-Вилкоксона anova, тест Краскела-Уоллиса ?