python如何求p值_计算python中的F分布p值?

可以使用正则化(不完整)β函数I(x; a,b)来计算F分布的CDF(以及p值),例如参见MathWorld.使用I(x; a)的代码,b)从仅使用数学的blog中,p值为

1 - incompbeta(.5*df1, .5*df2, float(df1)*F/(df1*F+df2))

这是一些匹配scipy.stats.f.sf的样本值的结果:

In [57]: F, df1, df2 = 5, 20, 18

In [58]: 1 - incompbeta(.5*df1, .5*df2, float(df1)*F/(df1*F+df2))

Out[58]: 0.0005812207389501722

In [59]: st.f.sf(F, df1, df2)

Out[59]: 0.00058122073922042188

以防万一博客消失了,下面的代码:

import math

def incompbeta(a, b, x):

''' incompbeta(a,b,x) evaluates incomplete beta function, here a, b > 0 and 0 <= x <= 1. This function requires contfractbeta(a,b,x, ITMAX = 200)

(Code translated from: Numerical Recipes in C.)'''

if (x == 0):

return 0;

elif (x == 1):

return 1;

else:

lbeta = math.lgamma(a+b) - math.lgam

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值