显着性卡方检验
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 值更大。
我想报告一下雄鱼和雌鱼在洄游策略上的区别。这会是卡方检验吗? 这是我的数据:
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 值更大。