Хочу сообщить о разнице между самцами и самками в тактике миграции. Будет ли это тест хи-квадрат? Это мои данные:

combo1 <- structure(list(Sex = c("F", "M", "F", NA, "M", "F", NA, NA, "M", 
"F", NA, "M", "F", "F", NA, "F", "F", NA, "M", "F", NA, "M", 
"F", "F", "F", "F", "F", "M", NA, "F", "M", "M", "F", "F", "M", 
"F", NA, NA, NA, NA, NA, NA, "F", "F", NA, NA, NA, "M", "F", 
"F", NA, "F", "F", NA, NA, "M", "F", NA, "F", NA, "M", NA, "F", 
NA, NA, NA, NA, "F", "M", "M", NA, "F"), Tactic = c("Migr", "Migr", 
"Migr", "Migr", "Migr", "Migr", "Migr", "Migr", "Migr", "Migr", 
"Migr", "Migr", "Migr", "Migr", "Migr", "OcRes", "Migr", "Migr", 
"Migr", "Migr", "Migr", "Migr", "OcRes", "Migr", "Migr", "Migr", 
"Migr", "Migr", "Migr", "Migr", "Migr", "Migr", "Migr", "Migr", 
"Migr", "EstRes", "Migr", "Migr", "Migr", "Migr", "Migr", "Migr", 
"Migr", "Migr", "Migr", "Migr", "Migr", "Migr", "Migr", "Migr", 
"Migr", "Migr", "Migr", "EstRes", "Migr", "Migr", "Migr", "EstRes", 
"Migr", "OcRes", "Migr", "EstRes", "Migr", "Migr", "Migr", "Migr", 
"Migr", "Migr", "Migr", "Migr", "Migr", "Migr")), class = "data.frame", row.names = c(NA, 
-72L))

Таблица пропорций пола

Sex<-combo1 %>% 
    filter(!Sex%in%NA) %>% 
    droplevels() %>% 
    count(Sex,Tactic) %>% 
    group_by(Sex) %>%
    mutate(Proportion = n / sum(n)) %>%
    mutate(Tactic = factor(Tactic, levels = c("EstRes", "OcRes", "Migr"))) %>% 
    mutate(Sex = factor(Sex, levels = c("F", "M")))
Sex
Sex Tactic  n   Proportion

F   EstRes  1   0.03448276  
F   Migr    26  0.89655172  
F   OcRes   2   0.06896552  
M   Migr    15  1.00000000  

У меня есть график ggplot, который хорошо показывает эти результаты, но я не уверен, как получить значение p для поддержки этих результатов. Будет ли это тест хи-квадрат, и если да, то какой будет сценарий? Я посмотрел здесь https: //data-flair.training/blogs/wp-content/uploads/sites/2/2018/01/R-Code.jpg и попробовал этот скрипт:

chisq.test(combo1$Sex, combo1$Tactic, correct=FALSE)

Который дал такой результат:

Chi-squared approximation may be incorrect
Pearson's Chi-squared test

data:  combo1$Sex and combo1$Tactic
X-squared = 1.6653, df = 2, p-value = 0.4349. 

Но я не уверен, что это правильно. Будем очень благодарны любой помощи.

1
Angela Russell 19 Ноя 2021 в 03:12
1
Вы должны вставить вывод из dput(combo1). Вот что дает нам данные. Также посмотрите справочную страницу для ?chisq.test. Вы указываете это неправильно.
 – 
dcarlson
19 Ноя 2021 в 04:01
2
About просто смотрит на chisq.test тактику против пола и игнорирует значения счетчика. Вам нужно переупорядочить данные так, чтобы столбцы были категориями тактики, строки - полами, а таблица - значениями N. См. Справку по chisq.test, чтобы увидеть первый из перечисленных примеров. Данные примера, кажется, имеют нулевое или низкое количество значений для многих значений, точный тест Фишера может быть лучшим вариантом.
 – 
Dave2e
19 Ноя 2021 в 04:05
Спасибо за вашу помощь. Как сделать пониженный dput (combo1) слишком длинным?
 – 
Angela Russell
19 Ноя 2021 в 05:14
1
Разве это не всего 1 + 26 + 2 + 15 = 44 строки с двумя столбцами? Это не так уж и долго. Если есть другие столбцы, не учитывайте их: dput(combo1[, c("Sex", "Tactic")].
 – 
dcarlson
19 Ноя 2021 в 05:22
{r} dput(combo1[, c("Sex", "Tactic")] Ошибка: неожиданный символ в: "dput (combo1 [, c (" Sex "," Tactic ")] dput"
 – 
Angela Russell
19 Ноя 2021 в 06:26

1 ответ

Лучший ответ

Теперь мы можем создать таблицу и вычислить квадрат Хи:

tbl <- xtabs(~Sex+Tactic, combo1)
tbl
#    Tactic
# Sex EstRes Migr OcRes
#   F      1   26     2
#   M      0   15     0

Обратите внимание, что в 4 из 6 ячеек очень мало ячеек. Стандартный тест хи-квадрат сообщит о проблеме:

chisq.test(tbl)
# 
#   Pearson's Chi-squared test
# 
# data:  tbl
# X-squared = 1.6653, df = 2, p-value = 0.4349
# 
# Warning message:
# In chisq.test(tbl) : Chi-squared approximation may be incorrect

На самом деле это не проблема, поскольку значение p намного больше 0,05, поэтому мы не можем отклонить нулевую гипотезу. Вы можете заставить R использовать моделирование Монте-Карло для оценки p-значения:

chisq.test(tbl, simulate.p.value=TRUE)
# 
#   Pearson's Chi-squared test with simulated p-value (based on 2000 replicates)
# 
# data:  tbl
# X-squared = 1.6653, df = NA, p-value = 0.6922

Как и ожидалось, p-значение еще больше.

0
dcarlson 19 Ноя 2021 в 06:46
Абсолютно великолепно! stackoverflow.com/users/1580645/dcarlson. Я могу только надеяться, что когда-нибудь у вас будет вспышка R. Я вижу, вы археолог на пенсии; Бьюсь об заклад, это была увлекательная карьера (и, как я подозреваю, много тяжелой работы). Я доктор философии и использую отолиты рыб для определения миграции и связности хищных рыб. Я так понимаю, что толиты используются и в археологии!
 – 
Angela Russell
19 Ноя 2021 в 07:04