通过scipy.stats.linregresse计算Pvalue的“分布”替代方案

2024-06-16 18:05:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我的目标是使用scipy.stats.linregress计算坡度及其p-valueLinregress将{}定义为“假设检验的双侧p值,其零假设为斜率为零,使用带有检验统计量{}的Wald检验。”因为我想通过有效自由度(nEFF)而不是数字自由度,通过检查自相关,得到校正的{},必须添加nEFF才能应用于p-value的计算。因此,我需要修改linregress函数。函数linregress的代码在GitHub中描述。它使用distributions来计算p-value = 2 * distributions.t.sf(np.abs(t), df)(第414行)。我遇到了“为-lstdc++.6找不到库”here的问题。试图通过下载旧版本的Xcode并复制库来修复它,但没有奏效,而且我的系统也被搞得一团糟。我不想再试一次

因此,我寻找一种替代“分布”的方法,使用有效自由度计算p-values坡度。我设法做到了这一点,因为对pearsonrp = 2*dist.cdf(-abs(r))的描述非常好

我的数组是:[1.44801339 1.66508101 1.28033551 4.70553833 2.73271526-2.06718562 -2.81523426 -2.94498795 -0.76763134 -1.79640446 -0.87823447 2.69278674 -1.95645552-0.16852925-3.74932743-1.87425559-1.10698945 0.46907261]

nEFF = 10.561681386709727通过线性趋势的普通最小二乘拟合


Tags: 函数目标定义valuestatsscipyabsdistributions