我想使用 p 值测试样本相关性的显着性,即
我知道我可以使用 Fisher 的 z 变换来计算这个
并通过以下方式找到 p 值
使用标准正态分布。
应该有多大才能成为适当的转换?显然,必须大于 3。我的教科书没有提到任何限制,但在本演示文稿的幻灯片 29 上,它说必须大于 10。对于我将考虑的数据,我将有类似。
我想使用 p 值测试样本相关性的显着性,即
我知道我可以使用 Fisher 的 z 变换来计算这个
并通过以下方式找到 p 值
使用标准正态分布。
应该有多大才能成为适当的转换?显然,必须大于 3。我的教科书没有提到任何限制,但在本演示文稿的幻灯片 29 上,它说必须大于 10。对于我将考虑的数据,我将有类似。
对于这样的问题,我只需要运行一个模拟,看看值的行为是否符合我的预期。值是随机抽取样本的概率,该样本与零假设的偏差至少与您观察到的数据的偏差(如果零假设为真)。因此,如果我们有很多这样的样本,其中一个的值为 0.04,那么我们预计这些样本中有 4% 的值小于 0.04。对于所有其他可能的值也是如此。
下面是Stata中的模拟。这些图表检查值是否衡量了它们应该衡量的内容,也就是说,它们显示了 p 值小于标称 p 值的样本比例标称值的。正如您所看到的,对于如此少量的观察,测试有些问题。它是否对你的研究来说太成问题是你的判断。
clear all
set more off
program define sim, rclass
tempname z se
foreach i of numlist 5/10 20(10)50 {
drop _all
set obs `i'
gen x = rnormal()
gen y = rnormal()
corr x y
scalar `z' = atanh(r(rho))
scalar `se' = 1/sqrt(r(N)-3)
return scalar p`i' = 2*normal(-abs(`z'/`se'))
}
end
simulate p5 =r(p5) p6 =r(p6) p7 =r(p7) ///
p8 =r(p8) p9 =r(p9) p10 =r(p10) ///
p20=r(p20) p30=r(p30) p40 =r(p40) ///
p50=r(p50), reps(200000) nodots: sim
simpplot p5 p6 p7 p8 p9 p10, name(small, replace) ///
scheme(s2color) ylabel(,angle(horizontal))
simpplot p20 p30 p40 p50 , name(less_small, replace) ///
scheme(s2color) ylabel(,angle(horizontal))
FWIW 我在 Myers & Well 中看到了的建议(研究设计和统计分析,第二版,2003 年,第 492 页)。脚注指出:
严格来说,变换的偏差量为:参见 Pearson 和 Hartley (1954, p. 29)。这种偏差通常可以忽略不计,除非很小且很大,我们在这里忽略它。
不确定Fisher的变换在这里是否合适。对于(注意:零假设是针对总体,而不是样本),相关系数的采样分布已经是对称的,因此无需减少偏度,这是 Fisher 的旨在做的,并且您可以使用学生的近似值。
假设您的意思是,那么该 PDF 的偏度将取决于应该有多大的一般答案。的最小值将取决于您正在努力你没有说明它的价值。
尼克的观点是公平的:近似值和建议总是在一些灰色区域中运行。
那么,如果您的 Fisher 近似值足够好(=对称),我将使用适用于,其中是样本标准偏差。如果它足够接近正态性,则变为。