|
本帖最后由 Ysu2008 于 2019-8-21 00:33 编辑
R 语言有 coin 包可以做这个检验,该包收录在 R 语言教科书上表明很多人在用,但我怀疑这个包的计算有一点小问题。
算例:有独立的A、B两组服从正态分布的样本,对两总体均值是否相等作出统计推断。
A、B两列数据:
A , B
40,57
57,64
45,55
55,62
58,65
因为样本服从正态分布,先做两样本方差之比的 F 检验,统计量 F值 = 3.3420,P值 = 0.2694,不能拒绝方差相等的 0 假设;再做两样本同方差条件下的 t 检验,统计量 t 值 = -2.3450,P值 = 0.0471,在0.05显著性水平下拒绝均值相等的 0 假设。
然而,coin 包的 Permutation Test 给出的均值差的精确P值是 0.07143,随机抽样20万个样本得到的P值在 0.07附近摆动,结论与 t 检验刚好相反。
但是,我编写的 Permutation Test 随机抽样20万个样本,得到的P值在 0.04 左右微小摆动,从未到达过 0.05,结论与 t 检验一致。
coin 包的计算速度非常快,随机模拟抽样20万个样本几乎瞬间就完成了。因此我怀疑作者的样本打乱算法可能有问题。打乱算法是整个模拟抽样中最消耗时间的部分,作者可能为了节省计算时间,打乱算法将样本打得不是很乱,从而导致计算结果略微偏差。这在大多数情况下不影响推断,偶尔,比如本例,则会得出错误结论。
若有自行实现过 Permutation Test 的,可计算一下本例,看看结果如何,作为对照。 |
|