Олеся Волченко
11 октября 2022
| Номинальная/ординальная | Интервальная/отношений | |
|---|---|---|
| Номинальная/ординальная | Тест хи-квадрат | ? |
| Интервальная/отношений | ? | ? |
такие тесты, которые требуют от переменных некоторого распределения (чаще всего нормального)
image source: https://github.com/allisonhorst/stats-illustrations/blob/master/other-stats-artwork/not_normal.png
Позволяет установить связь между одной числовой переменной и одной бинарной переменной (номинальной переменной, принимающей два значения)
Примеры вопросов, на которые поможет ответить t-тест
One-sample t-test
сравнивает выборочное среднее с теоретическим.
Это может быть актуально, когда мы знаем значение из гос. статистики и хотим понять, отличается ли от него среднее в наших данных.
Нулевая гипотеза:
\[\mu_{0} = \mu_{1} \]
Выборки называются несвязанными (независимыми), если процедура отбора наблюдений в одну выборку не связана с процедурой отбора единиц во вторую
В связанной (парной) выборке каждая единица отбора “привязывается” к определенной единице отбора из второй выборки
Пример:
Independent (unpaired) samples t-test
сравнивает средние значения в двух группах.
Позволяет ответить на вопрос, значимо ли различаются средние значения в двух группах наблюдений.
Если различаются, то можно сделать вывод, что между группообразющей переменной и числовой переменной (той переменной, для которой рассчитывается среднее) есть связь.
Нулевая гипотеза:
\[\mu_{1} = \mu_{2} \] Среднее значение параметра в группе 1 равно среднему значению параметра в группе 2.
Формула расчета t-значения \[t = \frac{\bar{X_{1}} - \bar{X_{2}}}{\sqrt{\frac{s_{1}^2}{n_{1}}+\frac{s_{2}^2}{n_{2}}}} \]
Paired samples t-test
сравнивает средние значения для двух связанных параметров.
Нулевая гипотеза:
\[\mu_{1} - \mu_{2} = 0 \]
Разница в средних равна 0
Формула расчета t-значения \[t = \frac{M_{d}}{s_{d}/\sqrt{n}} \] где — Md - средняя разность значений, Sd — стандартное отклонение разностей, а n — количество наблюдений
Показывает не вероятность ложно отвергнуть нулевую гипотезу (в отличие от p-value), а то, насколько сильная разница существует между двумя группами
Таблица из Cohen (1988):
| Cohen’s d | interpretation |
|---|---|
| 0.00 < 0.20 | Negligible |
| 0.20 < 0.50 | Small |
| 0.50 < 0.80 | Medium |
| 0.80 or more | Large |
library(foreign)
ESS <- read.spss("/Users/olesyavolchenko/Yandex.Disk.localized/datafiles/ESS/ESS5e03_3.sav", use.value.labels=T, to.data.frame=T)Отберем только тех респондентов, которые живут в России и работают на оплачиваемой работе
## In paid work Retired All others NA's
## 24049 14055 14220 134
## 0 1 2 5 8 9 16 19 20 23 24 25 27 28 29 30
## 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1
## 31 32 33 35 36 37 38 39 40 41 42 43 44 45 46 47
## 0 0 0 0 0 0 0 0 3 0 0 1 0 19 1 0
## 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63
## 0 0 88 1 1 3 0 141 0 2 2 0 99 0 0 0
## 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 80
## 0 3 1 2 0 0 6 0 0 0 0 2 0 0 0 0
## 81 82 84 85 86 87 88 90 96 99 100 102 120 NA's
## 0 0 0 0 0 0 0 0 0 0 0 0 0 959
Тест Колмогорова-Смирнова
нулевая гипотеза: нет различий между наблюдаемым распределением и нормальным распределением
## Warning in ks.test.default(ESS1sub$agertr[ESS1sub$gndr == "Male"], "pnorm"): в
## тесте Колмогорова-Смирнова не должно быть повторяющихся значений
##
## Asymptotic one-sample Kolmogorov-Smirnov test
##
## data: ESS1sub$agertr[ESS1sub$gndr == "Male"]
## D = 1, p-value < 2.2e-16
## alternative hypothesis: two-sided
## Warning in ks.test.default(ESS1sub$agertr[ESS1sub$gndr == "Female"], "pnorm"): в
## тесте Колмогорова-Смирнова не должно быть повторяющихся значений
##
## Asymptotic one-sample Kolmogorov-Smirnov test
##
## data: ESS1sub$agertr[ESS1sub$gndr == "Female"]
## D = 1, p-value < 2.2e-16
## alternative hypothesis: two-sided
на практике данный тест используют редко т.к. он очень чувствительный и почти всегда показывает, что данные распределены не нормально.
Тест Шапиро-Уилка
нулевая гипотеза: нет различий между наблюдаемым распределением и нормальным распределением
##
## Shapiro-Wilk normality test
##
## data: ESS1sub$agertr[ESS1sub$gndr == "Male"]
## W = 0.83236, p-value = 1.597e-12
##
## Shapiro-Wilk normality test
##
## data: ESS1sub$agertr[ESS1sub$gndr == "Female"]
## W = 0.87556, p-value = 4.071e-12
График квантиль-квантиль (qq plot)
qqnorm(ESS1sub$agertr[ESS1sub$gndr == "Male"])
qqline(ESS1sub$agertr[ESS1sub$gndr == "Male"], col= 2)qqnorm(ESS1sub$agertr[ESS1sub$gndr == "Male"])
qqline(ESS1sub$agertr[ESS1sub$gndr == "Male"], col= 2)График показывает, то где расположены точки на самом деле (ось y), относительно того, где они были бы распределены, если бы распределеные было бы нормальным (ось x)
Если распределение нормально - точки будут расположены вдоль диагональной прямой
Гистограмма
Нулевая гипотеза - дисперсии равны.
##
## Bartlett test of homogeneity of variances
##
## data: ESS1sub$agertr by ESS1sub$gndr
## Bartlett's K-squared = 1.7584, df = 1, p-value = 0.1848
##
## F test to compare two variances
##
## data: ESS1sub$agertr by ESS1sub$gndr
## F = 0.82162, num df = 165, denom df = 209, p-value = 0.1867
## alternative hypothesis: true ratio of variances is not equal to 1
## 95 percent confidence interval:
## 0.6165997 1.1003052
## sample estimates:
## ratio of variances
## 0.8216248
p-value > 0.05, значит нет основания отвергнуть нулевую гипотезу. Дисперсии равны
##
## Two Sample t-test
##
## data: ESS1sub$agertr by ESS1sub$gndr
## t = 7.513, df = 374, p-value = 4.299e-13
## alternative hypothesis: true difference in means between group Male and group Female is not equal to 0
## 95 percent confidence interval:
## 2.914562 4.981021
## sample estimates:
## mean in group Male mean in group Female
## 57.11446 53.16667
p-value < 0.05, значит можем отвергуть нулевую гипотезу. Средние значения значимо различаются. Средний идеальный возраст выхода на пенсию равен приблизительно 57 годам для мужчин, а для женщин - 53 (и это различие статистически значимо!).
library(effsize)
cohen.d(ESS1sub$agertr, ESS1sub$gndr) # ничего не работает т.к. в данных есть пропущенные значения (NA)##
## Cohen's d
##
## d estimate: NA (NA)
## 95 percent confidence interval:
## lower upper
## NA NA
# воспользуемся функцией na.omit(), чтобы отставить только полные наблюдения для двух переменных
ESS12 <- na.omit(ESS1sub[c("agertr", "gndr")])
cohen.d(ESS12$agertr, ESS12$gndr)##
## Cohen's d
##
## d estimate: 0.7802674 (medium)
## 95 percent confidence interval:
## lower upper
## 0.5685276 0.9920071
Размер эффекта - средний.
База данных - 6 волна World Values Survey (доступна здесь http://www.worldvaluessurvey.org/WVSDocumentationWV6.jsp)
library(foreign)
data <- read.spss("/Users/olesyavolchenko/Yandex.Disk.localized/datafiles/WV6_Data_spss_v_2016_01_01.sav", to.data.frame = TRUE)
dim(data)## [1] 90350 430
Рассчитаем индекс субъективного благополучия
##
## Completely dissatisfied 2 3
## 2828 1985 3463
## 4 5 6
## 4600 11331 10666
## 7 8 9
## 15493 18213 9264
## Completely satisfied
## 11928
##
## Very happy Rather happy Not very happy Not at all happy
## 29430 46092 11482 2600
Агрегируем данные по полу и стране:
## V2 V240 swb
## 1 Algeria Male 1.21000000
## 2 Azerbaijan Male 2.15668663
## 3 Argentina Male 2.94432773
## 4 Australia Male 2.91860465
## 5 Bahrain Male 1.46330275
## 6 Armenia Male 0.55027174
## 7 Brazil Male 3.49730700
## 8 Belarus Male 0.35423197
## 9 Chile Male 2.78234086
## 10 China Male 1.82041933
## 11 Taiwan Male 2.05862069
## 12 Colombia Male 4.65220294
## 13 Cyprus Male 2.53771552
## 14 Ecuador Male 4.17611684
## 15 Estonia Male 0.81268657
## 16 Georgia Male -0.23550725
## 17 Palestine Male -0.01659751
## 18 Germany Male 2.63618290
## 19 Ghana Male 2.27500000
## 20 Hong Kong Male 1.93818985
## 21 India Male 1.64933867
## 22 Iraq Male 0.30129241
## 23 Japan Male 2.12522361
## 24 Kazakhstan Male 2.74747475
## 25 Jordan Male 1.37166667
## 26 South Korea Male 1.50765306
## 27 Kuwait Male 3.35335019
## 28 Kyrgyzstan Male 2.74005487
## 29 Lebanon Male 1.37972509
## 30 Libya Male 2.22680412
## 31 Malaysia Male 3.43263473
## 32 Mexico Male 5.00200200
## 33 Morocco Male 0.82538330
## 34 Netherlands Male 3.10195853
## 35 New Zealand Male 2.84795322
## 36 Nigeria Male 2.15765766
## 37 Pakistan Male 3.16264090
## 38 Peru Male 2.46926910
## 39 Philippines Male 3.34500000
## 40 Poland Male 2.47911833
## 41 Qatar Male 4.48975410
## 42 Romania Male 1.15506329
## 43 Russia Male 0.97969783
## 44 Rwanda Male 2.25363276
## 45 Singapore Male 2.44538288
## 46 Slovenia Male 2.20112360
## 47 South Africa Male 2.05821918
## 48 Zimbabwe Male 1.53840580
## 49 Spain Male 1.78031634
## 50 Sweden Male 3.43045775
## 51 Thailand Male 3.42105263
## 52 Trinidad and Tobago Male 3.13444444
## 53 Tunisia Male 0.35589172
## 54 Turkey Male 2.67571059
## 55 Ukraine Male 0.65289982
## 56 Egypt Male -2.98979592
## 57 United States Male 3.00932836
## 58 Uruguay Male 3.15301724
## 59 Uzbekistan Male 4.48702422
## 60 Yemen Male -0.22597137
## 61 Algeria Female 1.24777975
## 62 Azerbaijan Female 1.61377246
## 63 Argentina Female 2.92041199
## 64 Australia Female 3.31762546
## 65 Bahrain Female 1.55483271
## 66 Armenia Female 0.38819444
## 67 Brazil Female 3.49945946
## 68 Belarus Female 0.20951792
## 69 Chile Female 2.20983936
## 70 China Female 1.98239437
## 71 Taiwan Female 2.55476190
## 72 Colombia Female 4.51377953
## 73 Cyprus Female 1.95161290
## 74 Ecuador Female 4.16129032
## 75 Estonia Female 0.97238896
## 76 Georgia Female 0.37962963
## 77 Palestine Female 0.25392157
## 78 Germany Female 2.61301370
## 79 Ghana Female 2.26683938
## 80 Hong Kong Female 2.29558011
## 81 India Female 1.51586294
## 82 Iraq Female 0.26779359
## 83 Japan Female 2.86245819
## 84 Kazakhstan Female 2.76214128
## 85 Jordan Female 1.94833333
## 86 South Korea Female 1.91583333
## 87 Kuwait Female 2.63403263
## 88 Kyrgyzstan Female 2.77338603
## 89 Lebanon Female 1.35726073
## 90 Libya Female 3.44547225
## 91 Malaysia Female 3.46677215
## 92 Mexico Female 5.08791209
## 93 Morocco Female 0.75384615
## 94 Netherlands Female 3.14955135
## 95 New Zealand Female 3.80694143
## 96 Nigeria Female 2.09127440
## 97 Pakistan Female 3.02599653
## 98 Peru Female 2.35678392
## 99 Philippines Female 3.25416667
## 100 Poland Female 2.47307692
## 101 Qatar Female 4.26444834
## 102 Romania Female 0.99882353
## 103 Russia Female 0.83295195
## 104 Rwanda Female 2.18181818
## 105 Singapore Female 2.96722068
## 106 Slovenia Female 2.52809917
## 107 South Africa Female 1.92800228
## 108 Zimbabwe Female 1.65185185
## 109 Spain Female 1.80033557
## 110 Sweden Female 3.65797788
## 111 Thailand Female 3.23465704
## 112 Trinidad and Tobago Female 3.80109489
## 113 Tunisia Female 0.38908451
## 114 Turkey Female 2.79085366
## 115 Ukraine Female 0.43232205
## 116 Egypt Female -2.47483059
## 117 United States Female 3.19385965
## 118 Uruguay Female 2.98946360
## 119 Uzbekistan Female 4.37513751
## 120 Yemen Female 1.31955645
dataaggr1 <- data.frame(country = dataaggr$V2[1:60], swb.males = dataaggr$swb[1:60], swb.females = dataaggr$swb[61:120])
dataaggr1## country swb.males swb.females
## 1 Algeria 1.21000000 1.2477798
## 2 Azerbaijan 2.15668663 1.6137725
## 3 Argentina 2.94432773 2.9204120
## 4 Australia 2.91860465 3.3176255
## 5 Bahrain 1.46330275 1.5548327
## 6 Armenia 0.55027174 0.3881944
## 7 Brazil 3.49730700 3.4994595
## 8 Belarus 0.35423197 0.2095179
## 9 Chile 2.78234086 2.2098394
## 10 China 1.82041933 1.9823944
## 11 Taiwan 2.05862069 2.5547619
## 12 Colombia 4.65220294 4.5137795
## 13 Cyprus 2.53771552 1.9516129
## 14 Ecuador 4.17611684 4.1612903
## 15 Estonia 0.81268657 0.9723890
## 16 Georgia -0.23550725 0.3796296
## 17 Palestine -0.01659751 0.2539216
## 18 Germany 2.63618290 2.6130137
## 19 Ghana 2.27500000 2.2668394
## 20 Hong Kong 1.93818985 2.2955801
## 21 India 1.64933867 1.5158629
## 22 Iraq 0.30129241 0.2677936
## 23 Japan 2.12522361 2.8624582
## 24 Kazakhstan 2.74747475 2.7621413
## 25 Jordan 1.37166667 1.9483333
## 26 South Korea 1.50765306 1.9158333
## 27 Kuwait 3.35335019 2.6340326
## 28 Kyrgyzstan 2.74005487 2.7733860
## 29 Lebanon 1.37972509 1.3572607
## 30 Libya 2.22680412 3.4454722
## 31 Malaysia 3.43263473 3.4667722
## 32 Mexico 5.00200200 5.0879121
## 33 Morocco 0.82538330 0.7538462
## 34 Netherlands 3.10195853 3.1495513
## 35 New Zealand 2.84795322 3.8069414
## 36 Nigeria 2.15765766 2.0912744
## 37 Pakistan 3.16264090 3.0259965
## 38 Peru 2.46926910 2.3567839
## 39 Philippines 3.34500000 3.2541667
## 40 Poland 2.47911833 2.4730769
## 41 Qatar 4.48975410 4.2644483
## 42 Romania 1.15506329 0.9988235
## 43 Russia 0.97969783 0.8329519
## 44 Rwanda 2.25363276 2.1818182
## 45 Singapore 2.44538288 2.9672207
## 46 Slovenia 2.20112360 2.5280992
## 47 South Africa 2.05821918 1.9280023
## 48 Zimbabwe 1.53840580 1.6518519
## 49 Spain 1.78031634 1.8003356
## 50 Sweden 3.43045775 3.6579779
## 51 Thailand 3.42105263 3.2346570
## 52 Trinidad and Tobago 3.13444444 3.8010949
## 53 Tunisia 0.35589172 0.3890845
## 54 Turkey 2.67571059 2.7908537
## 55 Ukraine 0.65289982 0.4323221
## 56 Egypt -2.98979592 -2.4748306
## 57 United States 3.00932836 3.1938596
## 58 Uruguay 3.15301724 2.9894636
## 59 Uzbekistan 4.48702422 4.3751375
## 60 Yemen -0.22597137 1.3195565
##
## Paired t-test
##
## data: dataaggr1$swb.males and dataaggr1$swb.females
## t = -1.9292, df = 59, p-value = 0.05852
## alternative hypothesis: true mean difference is not equal to 0
## 95 percent confidence interval:
## -0.202170104 0.003693091
## sample estimates:
## mean difference
## -0.09923851
## [1] 2.146066
## [1] 2.245305
P-value > 0.05, значит нет основания отвергнуть нулевую гипотезу, средние не различаются значимо.
t.test(data$swb ~ data$V240, paired = F) # Попробуем провести аналогичный тест, но на неагрегированной базе данных ##
## Welch Two Sample t-test
##
## data: data$swb by data$V240
## t = -1.9008, df = 88682, p-value = 0.05733
## alternative hypothesis: true difference in means between group Male and group Female is not equal to 0
## 95 percent confidence interval:
## -0.091543470 0.001402896
## sample estimates:
## mean in group Male mean in group Female
## 2.172569 2.217640
##
## Cohen's d
##
## d estimate: -0.07201708 (negligible)
## 95 percent confidence interval:
## lower upper
## -0.146036412 0.002002259
Использовать непараметрические тесты
Нулевая гипотеза для теста Вилкоксона: различия в средних нет
##
## Wilcoxon rank sum test with continuity correction
##
## data: ESS1sub$agertr by ESS1sub$gndr
## W = 25411, p-value = 1.619e-15
## alternative hypothesis: true location shift is not equal to 0
##
## Wilcoxon signed rank test with continuity correction
##
## data: dataaggr1$swb.males and dataaggr1$swb.females
## V = 763, p-value = 0.2647
## alternative hypothesis: true location shift is not equal to 0
https://twitter.com/allison_horst/status/1216411185240690688?s=20
Artwork by @allison_horst