我是R的新手,但我转向它,因为它是我唯一可用的软件,可以在大于2x2的表上执行Fisher的精确文本。
理论上,只有当至少80%的细胞的预期频率为5或更高,并且没有一个细胞的期望频率小于1.时,才能进行卡方检验。
我经常要对数以百计的表格进行多重分析,其中一些符合卡方的标准,而有些则应该使用费舍尔的测试。
我知道如何手工操作,生成应急表,查看它,计算是否应该使用Fisher's测试的奇方,然后使用chisq.test()/fisher.test()运行测试。
有什么方法可以使这个过程自动化吗?一些将检查过程自动化并将其压缩到单个命令中的方法,并根据其输出自动执行chi-square或Fisher的测试。
我希望我说得很清楚,感谢所有读过它的人:)
发布于 2022-08-14 15:25:24
您可以创建一个自定义函数:
myfun <- function(data, var1, var2, chi = TRUE) {
t <- table(data[[var1]], data[[var2]])
if (chi) {
chisq.test(t)
} else {
fisher.test(t)
}
}然后在你认为合适的时候应用它:
myfun(dat, "gender", "netflix")
Pearson's Chi-squared test with Yates' continuity correction
data: t
X-squared = 0, df = 1, p-value = 1
myfun(dat, "gender", "guns", chi = FALSE)
Fisher's Exact Test for Count Data
data: t
p-value = 0.0003284
alternative hypothesis: true odds ratio is not equal to 1
95 percent confidence interval:
2.867735 118.989345
sample estimates:
odds ratio
15.45796 https://stackoverflow.com/questions/72183413
复制相似问题