显着性卡方检验

Chi squared test for significance

我想报告一下雄鱼和雌鱼在洄游策略上的区别。这会是卡方检验吗? 这是我的数据:

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))

Table 性别比例

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. 

但我不确定它是否正确。如有任何帮助,我们将不胜感激。

现在我们可以创建一个 table 并计算卡方:

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

请注意,6 个单元格中有 4 个单元格计数非常小。一个标准的卡方检验会报一个问题:

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 值远大于 .05,所以我们不能拒绝原假设。您可以让 R 使用 Monte Carlo 模拟来估计 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 值更大。