python如何求p值_在python中计算F分布p值?
可以用正则化(不完整)β函数I(x; a, b)来计算F分布的CDF(以及因此的p值),参见例如MathWorld。从这个blog,只使用math使用I(x; a, b)代码,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.lgamma(a) - math.lgamma(b) + a * math.log(x) + b * math.log(1-x)
if (x < (a+1)/(a+b+2)):
return math.exp(lbeta) * contfractbeta(a, b, x)/a;
else:
return 1 - math.exp(lbeta) * contfractbeta(b, a, 1-x)/b;
def contfractbeta(a,b,x, ITMAX = 200):
""" contfractbeta() evaluates the continued fraction form of the incomplete Beta function; incompbeta().
(Code translated from: Numerical Recipes in C.)"""
EPS = 3.0e-7
bm = az = am = 1.0
qab = a+b
qap = a+1.0
qam = a-1.0
bz = 1.0-qab*x/qap
for i in range(ITMAX+1):
em = float(i+1)
tem = em + em
d = em*(b-em)*x/((qam+tem)*(a+tem))
ap = az + d*am
bp = bz+d*bm
d = -(a+em)*(qab+em)*x/((qap+tem)*(a+tem))
app = ap+d*az
bpp = bp+d*bz
aold = az
am = ap/bpp
bm = bp/bpp
az = app/bpp
bz = 1.0
if (abs(az-aold)
return az
print 'a or b too large or given ITMAX too small for computing incomplete beta function.'
python如何求p值_在python中计算F分布p值?相关推荐
- python 卡方分布值_饱和模型与偏差计算R方与p值
引言:logistic回归中,我们了解到R2和P值的计算方法.但josh starmer老师指出,广义线性模型中R2更常见的计算方法还包括饱和模型(参考:Logistic回归:R2与P-value的计 ...
- java求30度的正弦值_获取Java中给定值的双曲正弦值
为了获取Java中给定值的双曲正弦值,我们使用java.lang.Math.sinh()方法.该sinh()方法接受一个以弧度为单位的参数,并返回该参数的双曲正弦值作为角度. 声明-java.lang ...
- 用python递归求兔子总量_在Python中优化递归Padovan(即Fibonacci和垂死的兔子)算法...
当谈到Python时,我有点新手(我两周前才开始学习它),但是在完成挑战时我有很多乐趣.给我带来麻烦的一个挑战是凡人兔子斐波那契序列的变异(即Padovan序列,但寿命可变).在 经过多次尝试和错误之 ...
- java jcombobox 获取值_从java中的JComboBox获取字符串值
我正在做一个testJComboBox程序.一旦我选择了jCombobox的输出,我就会得到我需要的字符串值.但是,它不起作用. 这是我的代码: import java.awt.*; import j ...
- mysql 查询不重复的值_在 MySQL 中查询不重复记录值的方法
使用 WordPress 的过程中,我一直很好奇 WordPress 的一个功能,大家都知道在 WordPress 的编写文章的时候,可以自定义栏目,而这个自定义栏目的数据保存到 wp_postmet ...
- python求斐波那契数列第n个数及前n项和_使用python求斐波那契数列中第n个数的值示例代码...
斐波那契数列(Fibonacci sequence),又称黄金分割数列.因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为"兔子数列&qu ...
- python求定积分程序_在python中用sympy求定积分失败
用python sympy 求定积分,代码如下: E=210000 from sympy import * x=symbols('x') T_2=(125-x)/50*(21-18)+18 Radiu ...
- python牛顿法解非线性方程组_利用python求非线性方程
最近在做的东西中有一件任务,相当于一个函数已知y来求x,网上找了各种办法最终得以实现.在此说明方法,并记录一些坑. 要求的函数比如:*log(x) - log(1-x) + 2.2 * (1 -2x) ...
- python使用函数的目的_在Python 3.x中经常看到定义函数有一个单独的 * 参数?定义这样参数的目的是?怎样对其取值呢?...
参数在python中总是通过赋值进行传递的.在默认情况下,参数是通过其位置进行匹配的,从左到右,而且必须精确的传递和函数头部参数名一样多的参数. 这种默认的传递方式很简单 def f(a,b,c): ...
- python计算文件md5值_用python 正确计算大文件md5 值
python 计算文件的md5值很方便,但如果只是简单的把文件都入到内存中,大文件会导致问题,一般采用切片的方式分段计算,下面的几个函数可以很好的解决这个问题. 使用 hashlib import h ...
最新文章
- 大数据计算引擎发展的四个阶段
- Visual C# 3.0 新特性概览
- NYOJ 士兵杀敌(二) 树状数组
- curd什么意思中文_每日一句英译英:She's a ten什么意思?
- 狗窝里的小日子- 8 ...
- 流量管理系统产品选型常见问答(FAQ)
- java 任务_Java-定时任务
- [置顶] 杂七杂八
- ubuntu安装cuda(转精华)
- mysql怎么模拟死锁_mysql 模拟产生死锁
- linux中断--进程上下文和中断上下文
- ENVI学习总结(十一)——NDVI的计算
- linux系统uptime解读,Linux中的uptime命令详解
- C语言员工信息管理系统
- AI2019下载Adobe Illustrator CC2019安装教程
- Quartus II三种方式实现D触发器
- Linux为sh脚本文件添加执行权限
- 怎么用python电商文本挖掘?(5)
- 【 爬虫解决了什么问题】
- IDEA将项目打包成jar包
热门文章
- python自动提交网页表单_Python 自动化表单提交实例代码
- excel合并工作簿怎么做?
- excel流程图折线箭头_如何绘制excel箭头图形
- STM32F429DISCO+AT070TN92 7寸LCD
- 软路由虚拟服务器,带你入门软路由 篇三:软路由也玩虚拟化——轻松几步教你配置Esxi网卡直通和软路由虚拟机设置(保姆级教程)...
- NSX-T业务转发04—— 多层Tier0Tier1路由
- wordpress插件_哪个是最好的WordPress画廊插件? (性能比较)
- 主成分分析(PCA)与线性判别分析(LDA)的区别与联系
- 分享磁盘空间不足的5个处理方法
- 南大计算机技术复试分数线,南大计算机复试分数线