ShixiangWang / self-study

My Self-Study Room: keep tidy and lightweight
https://shixiangwang.github.io/self-study/
30 stars 6 forks source link

chisq.test函数correct含义 #35

Closed ShixiangWang closed 3 years ago

ShixiangWang commented 6 years ago

问题

王老师,您好。咨询您一个问题。R语言中chisq.test函数中有个参数是correct,当它的值是true或false时有什么区别?感谢您的指导。

回答

在看到这个问题之前我对这个参数也研究不多,知道它的存在和内部计算p值得方法可能不一样,但从之前使用的结果来看差别不大。如果仅仅是使用该函数,最好选默认参数,R作为一门成熟的统计软件,默认参数的设定都是很讲究的。

接下来看一看这个参数的详情,在R控制台输入:

??chisq.test

在函数的详细描述里,你可以找到下面这段话:

a logical indicating whether to apply continuity correction when computing the test statistic for 2 by 2 tables: one half is subtracted from all |O - E| differences; however, the correction will not be bigger than the differences themselves. No correction is done if simulate.p.value = TRUE.

continuity correction is only used in the 2-by-2 case (if correct is TRUE, the default). Otherwise the p-value is computed for a Monte Carlo test (Hope, 1968) with B replicates.

意思是,correct默认为TRUE,默认执行连续校正,因为卡方检验的是一个2x2表格,但计算p值是用的统计分布,我们知道统计分布是以某个参考(统计量,比如t检验中的t值)作为计算标准的,所以有一些方法对计算进行校正。如果选择FALSE,使用的就是蒙特卡洛方法,就是用真实数据模拟抽样,然后计算概率。

我说的不一定完全正确,请阅读下面的文章一起理解:


有问题可以下面留言讨论。