MATLAB卡方检验精度问题解决办法(算的就是卡方检验下的P值)

原文地址:http://blog.sina.com.cn/s/blog_4d2fda500100aia8.html

在做卡方检验时遇到了如下问题,计算自由度为1,卡方值为71的右尾概率值时出现系统取舍问题:

>> p=1-chi2cdf(70,1)
p=1.1102e-016
>>p=1-chi2cdf(71,1)
 p= 0

我要得到精确点的自由度为1,卡方值为71的右尾概率值。

费了牛劲终于找到了解决办法:

由于伽玛函数当第一个参数为1/2,第二个参数为2时伽玛分布函数为卡方分布,所以只好用原始函数定义算了。

syms x;  %定义自变量x
gama=x^(-0.5)*exp(-x);
gama0=int(gama,0,inf);%计算gama密度函数需要的参数gama0=gama(1/2),结果为:pi^(1/2)
gamapdf=x^(-0.5)*exp(-x/2)/(2^(0.5)*gama0); %第一个参数为1/2,第二个参数为2的gama密度函数
gamacdf=int(gamapdf,0,71); %计算积分,结果为符号型
p=double(1-gamacdf)
>>p=3.5722e-017


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值