从Unix中的Estimate和Standard Error计算p值

时间:2017-05-31 14:14:38

标签: unix awk

我正在寻找一种方法来计算unix中估计值和标准误差的p值。 例如,在R中,可以使用以下

来完成
test
BETA       STD
-0.0103312 0.0812054
T=(-0.0103312/0.0812054)^2
p <- pchisq(T,df=1,lower=F)
p
0.8987638

感谢您提出任何建议。

1 个答案:

答案 0 :(得分:1)

awk救援!

使用26.2.16的算法 Abramowitz and Stegun: Handbook of Mathematical Functions

awk 'function z(x) {return exp(-x*x/2)/sqrt(2*atan2(0,-1))}
     function p(x) {t=1/(1+0.33267*(x>0?x:-x))
                    return 1-z(x)*t*(0.4361836+t*(-0.1201676+t*0.9372980))}
                   {print 2*(1-p($1/$2))}'

会给你双尾测试p值。

输入-0.0103312 0.0812054

给出0.898743

有更好的算法使用更多的有效数字,这需要更长的时间来实现,但如果你需要几位十进制数字,这就足够了。