statistics - 查找 p 值的简单方法
问题描述
我不是数学的,请温柔...
我正在寻找一种简单的方法来找到对应于给定卡方(一个自由度)的 p 值。我想把它放到一个计算机程序(FileMaker)中;准确性并不重要。
从这个讨论: http://mathforum.org/kb/message.jspa?messageID= 5830281
我已经提取了 3 个公式:
第一个公式:
p(x)=a/x^3 + b/x^2 + c/x + d
其中 x = 卡方,a、b、c 和 d 是常数。
范围从 0,1 到 3,然后:a 0.00350853 / b -0.0623318 / c 0.357489 / d -0.0049905
范围从 3 到 12,则:a -3.1258 / b +2.81657 / c -0.387984 / d 0.0152614
第二个公式:
您可以使用其他人给出的带有一个df的卡方与标准法线之间的关系,然后逼近标准法线。有不同的方法可以做到这一点:我去挖掘 Abramowitz 和 Stegun 发现了这个:
P(x)=概率(X <= x) 约 = 1-0.5(1+c_1 x+c_2 x^2+c_3 x^3+ c_4 x_4)^(-4)
(整个支架提升到幂 -4),
其中 c_1=0,196854 / c_2=0,115194 / c_3=0,000344 / c_4=0,019527
错误声称小于 2.5 x 10^{-4}。
第三个公式:
1/(1 + Exp[-.496937z*Sqrt[z^2 + 10.28]])
我测试了,但结果不好......但我确信在链接的讨论中表达是正确的(这是我的“翻译”是错误的)。错误在哪里?
解决方案
我不确定为什么前两个公式没有成功。我没有检查他们。
第三个公式原来是有效的,但你不小心从讨论中复制了错误的公式。在那篇文章中,他们提到了您的正态分布公式,但这个公式用于 chi^2 近似值:
2/(1 + Exp[.496937*Sqrt[x(x + 10.28)])
我将其编码到 python 中并与scipy.stats.chi2.cdf
.
In [7]: def f(z):
...: return 2.0 / (1.0 + math.exp(0.496937*math.sqrt(z*(z+10.28))))
In [10]: def g(z):
...: return 1.0 - stats.chi2.cdf(z,1)
In [14]: values = [ (f(x), g(x), abs(f(x)-g(x))) for x in range(1,10) ]
In [15]: values
Out[15]:
[(0.317115565250687, 0.31731050786291415, 0.0001949426122271336),
(0.1570262524187356, 0.15729920705028488, 0.000272954631549277),
(0.08324399687489754, 0.08326451666355039, 2.051978865284798e-05),
(0.0456977583763344, 0.04550026389635853, 0.000197494479975871),
(0.02564668451495894, 0.02534731867746831, 0.0002993658374906283),
(0.014616925322419972, 0.014305878435429631, 0.00031104688699034114),
(0.008425622375436589, 0.008150971593502754, 0.00027465078193383494),
(0.004898868275754985, 0.004677734981047288, 0.0002211332947076967),
(0.0028675732116189585, 0.002699796063260207, 0.00016777714835875153)]
所以你的错误(每行中的第三个值)大约是 3*10^-4。看起来还不错...
推荐阅读
- tensorflow - 有选择地应用示例权重
- arrays - 如何正确插入包含另一个对象的对象的文档
- javascript - 如何提升奇数并保持偶数在他们的位置
- php - 运行 composer.phar 安装的 CodeDeploy after_install 脚本错误
- c++ - C++ 是否有办法做 Cuda 风格的内核模板,其中参数产生单独的编译?
- google-cloud-platform - 如何使用谷歌平台定价计算 GCP 中的计划快照成本?
- r - 如何将 actionButton 计数器停止为零?
- r - R中的索引功能
- angular - 如何在角度的 prod 环境和 dev 环境中修复错误的日期格式问题?
- c - 黑白 RDMA_CREATE_QP/RDMA_CREATE_EP 和 IBV_CREATE_QP 有什么区别?