R语言z-score转p.value

Python014

R语言z-score转p.value,第1张

z-score计算方法为:

Z =(x-μ)/ σ

μ为均值,σ为标准差。

以下是R中将z-score转为p.value的方法:

pnorm(q, mean = 0, sd = 1, lower.tail = TRUE)

q就是z-score;

个人最常用的是双边检验(two-tailed test).

1、标准正态分布表(Z值表)的计算:

a、标准正态分布临界值的计算:

NORMSINV(1-α/2) 【双侧】,例如NORMSINV(1-0.05/2)=1.959963985。

NORMSINV(1-α) 【单侧】,例如NORMSINV(1-0.05)=1.644853627。

公式复制、粘贴至Excel的公式编辑栏中就可以直接得到计算结果。记得代入具体的α值,并且在公式前面加英文状态下的等号,否则得不到计算结果。

b、P值的计算:

如果你已经计算好了Z值,可以按以下公式直接计算出P值,也不需要查表:

【双侧】P值=(1-NORMSDIST(Z值))*2,例如(1-NORMSDIST(1.96))*2=0.024997895*2=0.05。

【单侧】P值=1-NORMSDIST(Z值),例如1-NORMSDIST(1.96)=0.024997895=0.025。

注意事项

如果Z值为负值,你应该取绝对值后再代入以上公式,或者使用NORMSDIST(Z值)代替1-NORMSDIST(Z值)。例如NORMSDIST(-1.96)=0.024997895。

Zα称为标准正态分布的临界值,t(α,n-1)称为t分布(student分布)的临界值,这两个值可以通过查统计学教科书附表而取得,也可以按我回答的“标准正态分布表临界值的计算”项下的公式计算。

我以你p1-p2的例子来说明。你的例子是要比较2个率是否来自同一个总体(也就是2个率p1、p2是否相等)。在这里,原假设H0一般是p1、p2相等,对应的备择假设H1是p1、p2不等,则有

Z=(p1-p2)/sqrt[p1×(1-p1)/n1+p2×(1-p2)/n2]。

sqrt代表开平方,n1、n2分别代表2分样本的样本量。

以上就是计算的方法。

得到Z值后,可以按照我回答的“P值的计算”项下的公式计算P值,当P值<0.05时(有时是0.01,有时是0.10,依行业习惯而定)拒绝原假设H0,否则就接受H0,这是各种统计软件使用的方法。

————————————————

版权声明:本文为CSDN博主「weixin_39782394」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/weixin_39782394/article/details/112043263

rcorrp.cens(x1,x2,Surv(data$OS, data$OSstatus))

我用上面的语句是可以计算出来的,c-index应该是Dxy/2+0.5,P值是通过Z值计算,Dxy/S.D =z,z≥1.96则P≤0.05,z≥2.58,则P≤0.01