数学中国

 找回密码
 注册
搜索
热搜: 活动 交友 discuz
查看: 1452|回复: 0

有自己编程做过置换检验(Permutation Test)计算的吗?

[复制链接]
发表于 2019-8-20 20:25 | 显示全部楼层 |阅读模式
本帖最后由 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 的,可计算一下本例,看看结果如何,作为对照。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|数学中国 ( 京ICP备05040119号 )

GMT+8, 2024-4-20 02:55 , Processed in 0.060547 second(s), 15 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表