library(readxl)
library(dplyr)
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
Импортируем данные
df <- read_excel("../Книга1.xlsx", sheet = 1)
Проверка
str(df)
## Classes 'tbl_df', 'tbl' and 'data.frame': 583 obs. of 3 variables:
## $ Возраст: num 12 12 12 12 12 12 12 12 12 12 ...
## $ Пол : num 2 2 2 1 1 2 1 1 1 1 ...
## $ 9 : num 4 3 3 4 4 2 3 3 3 4 ...
summary(df)
## Возраст Пол 9
## Min. :12.00 Min. :1.000 Min. :1.000
## 1st Qu.:13.00 1st Qu.:1.000 1st Qu.:3.000
## Median :14.00 Median :2.000 Median :4.000
## Mean :14.44 Mean :1.513 Mean :3.458
## 3rd Qu.:16.00 3rd Qu.:2.000 3rd Qu.:4.000
## Max. :17.00 Max. :2.000 Max. :4.000
Редактируем названия и типы шкал rename()
df <- df %>%
rename(Age = Возраст, Sex = Пол, Q9 = "9") %>%
mutate(Sex = factor(Sex, levels = c(1, 2), labels = c("Пол1", "Пол2") )) %>%
mutate(Q9 = factor(Q9, levels = c(1:4)
, labels = c("проблема_1", "проблема_2", "проблема_3", "проблема_4")))
table(df$Age)
##
## 12 13 14 15 16 17
## 38 116 160 121 118 30
table(df$Sex)
##
## Пол1 Пол2
## 284 299
table(df$Q9)
##
## проблема_1 проблема_2 проблема_3 проблема_4
## 7 14 267 295
t_AS <- table(df$Age, df$Sex)
t_AQ <- table(df$Age, df$Q9)
t_SQ <- table(df$Sex, df$Q9)
t_SQA <- table(df$Sex, df$Q9, df$Age)
Так как есть нулевые значения в некоторых клетках, то Хи-квадрат может показывать неадеватные результаты. Дополнительно использовал Точный критерий фишера.
t_SQ
##
## проблема_1 проблема_2 проблема_3 проблема_4
## Пол1 4 6 131 143
## Пол2 3 8 136 152
chisq.test(t_SQ)
## Warning in chisq.test(t_SQ): Chi-squared approximation may be incorrect
##
## Pearson's Chi-squared test
##
## data: t_SQ
## X-squared = 0.41112, df = 3, p-value = 0.9379
fisher.test(t_SQ, simulate.p.value = TRUE)
##
## Fisher's Exact Test for Count Data with simulated p-value (based
## on 2000 replicates)
##
## data: t_SQ
## p-value = 0.9445
## alternative hypothesis: two.sided
Значимых отличий не обнаружено.
t_AQ
##
## проблема_1 проблема_2 проблема_3 проблема_4
## 12 0 3 20 15
## 13 1 3 61 51
## 14 3 2 64 91
## 15 1 3 57 60
## 16 1 3 51 63
## 17 1 0 14 15
chisq.test(t_AQ)
## Warning in chisq.test(t_AQ): Chi-squared approximation may be incorrect
##
## Pearson's Chi-squared test
##
## data: t_AQ
## X-squared = 15.324, df = 15, p-value = 0.4283
fisher.test(t_AQ, simulate.p.value = TRUE)
##
## Fisher's Exact Test for Count Data with simulated p-value (based
## on 2000 replicates)
##
## data: t_AQ
## p-value = 0.4363
## alternative hypothesis: two.sided
Значимых отличий не обнаруежено
t_AS
##
## Пол1 Пол2
## 12 12 26
## 13 46 70
## 14 88 72
## 15 70 51
## 16 52 66
## 17 16 14
chisq.test(t_AS)
##
## Pearson's Chi-squared test
##
## data: t_AS
## X-squared = 16.126, df = 5, p-value = 0.006493
fisher.test(t_AS, simulate.p.value = TRUE)
##
## Fisher's Exact Test for Count Data with simulated p-value (based
## on 2000 replicates)
##
## data: t_AS
## p-value = 0.005997
## alternative hypothesis: two.sided
Возраст и пол распределены неравномерно p = 0,006
t_SQA
## , , = 12
##
##
## проблема_1 проблема_2 проблема_3 проблема_4
## Пол1 0 1 6 5
## Пол2 0 2 14 10
##
## , , = 13
##
##
## проблема_1 проблема_2 проблема_3 проблема_4
## Пол1 1 1 26 18
## Пол2 0 2 35 33
##
## , , = 14
##
##
## проблема_1 проблема_2 проблема_3 проблема_4
## Пол1 1 1 37 49
## Пол2 2 1 27 42
##
## , , = 15
##
##
## проблема_1 проблема_2 проблема_3 проблема_4
## Пол1 1 2 31 36
## Пол2 0 1 26 24
##
## , , = 16
##
##
## проблема_1 проблема_2 проблема_3 проблема_4
## Пол1 0 1 24 27
## Пол2 1 2 27 36
##
## , , = 17
##
##
## проблема_1 проблема_2 проблема_3 проблема_4
## Пол1 1 0 7 8
## Пол2 0 0 7 7
barplot(t_SQ, legend.text = TRUE)
barplot(t_AQ, legend.text = TRUE)
Возраст и Пол
mosaicplot(t_AS)