当样本很小且可能非高斯时,如何获得 pearson 相关系数的 p 值或置信区间?

机器算法验证 相关性 置信区间 p 值 皮尔逊-r 置换检验
2022-04-05 07:09:55

内置 Matlab 和 Pylab Pearson 相关函数提供的 p 值被认为对于小样本量或样本不是正态分布时不准确。python 文档建议使用 N>500 以使 p 值准确,而 Matlab 文档除了“大”之外没有给出特定的截止值。

有谁知道在这种情况下可以正确检验 Pearson 相关系数的统计显着性的方法?

我的直觉是,我可以通过加扰 X 或 Y 值并从加扰数据中重新采样 Pearson 相关系数来执行置换检验——然后使用该分布来获得置信区间。但是,这是正确的吗?

2个回答

就 p 值而言,答案可以在较早的帖子中找到。基本上,使用 n<20 的置换检验。一般的标准化转换,例如 rankit,将适用于更大的 n,并且会更强大(Bishara & Hittner,2012)。当然,如果你变换,你就不再是在原来的尺度上看线性关系了。

就置信区间而言,答案不太清楚。发表的大规模蒙特卡洛比较并不多。普思等人。(2014)有一些证据表明,Fisher Z 在严重违反正态性的情况下可能不足。没有通用的解决方案——即使使用 BCa 引导也没有解决它。您可以考虑:

a) 使用 Fisher Z 的 Spearman CI。而不是使用SEz=1/(n3),使用 Fieller 等人。(1957)Fisher Z 的标准误差估计: SEz=1.03/(n3)

b)通过rankit转换,然后像往常一样使用Fisher Z作为CI

参考:

Bishara, AJ 和 Hittner, JB (2012)。检验与非正态数据相关性的显着性:Pearson、Spearman、变换和重采样方法的比较。心理学方法,17,399-417。doi:10.1037/a0028087

Fieller, EC, Hartley, HO 和 Pearson, ES (1957)。秩相关系数的检验。I. Biometrika, 44 , 470-481。

Puth, M., Neuhäuser, M., & Ruxton, GD (2014)。有效利用皮尔逊积矩相关系数。动物行为,93,183-189。

您当然可以按照您建议的方式执行置换测试(两者不相关的空值),但您通常不会“使用该分布来获得相关性的置信区间”。

您将改为使用该分布来获得 p 值或接受(/拒绝)区域。

您可以使用另一种重采样方法 - bootstrap - 来获得相关性的间隔,但这也可以通过大样本参数来证明,并且可能无法在小样本中获得完全接近所需覆盖率。

但是,如果您的数据非常不正常,那么变量之间的关系通常是曲线而不是线性的。您可能需要考虑单调而不是线性关联。在那种情况下,有几个单调关联的度量(即“变量是否一起向上/向下移动?”类型的问题)没有测试它们所需的正态假设。

你测试相关性是为了什么?(即这里的目的是什么?你想弄清楚什么?)