我一直在做一些有关统计学意义的研究,而且我已经学到了很多,但在计算P值方面似乎已经遇到了障碍。
我觉得我大概有95%的路在那里;只是我读到的关于计算P值的所有内容都引用了一个表而不是提供程序化解决方案。
似乎Excel的TDIST
函数做了我想要的(我已经有了T统计量,我可以传递给TDIST
和N - 2作为自由度,其中N是我的样本量);但我不清楚这个功能是如何工作的。从数学上讲,我相信它是在正常分布曲线下找到超出规定值的区域;但是代码看起来像什么?
这种函数的任何清晰,可读的实现都可以:C,Java,Python,伪代码等等。
答案 0 :(得分:3)
如果您可以使用GNU代码,我建议使用GNU Scientific Library(GSL)。
Excel中的 TDIST(x,df,tc)
转换为
return gsl_cdf_tdist_Q(x, df) * tc;
有关手册,请参阅http://www.gnu.org/software/gsl/manual/html_node/The-t_002ddistribution.html。
请参阅http://gsl.sourcearchive.com/documentation/1.9/cdf_2tdist_8c-source.html以了解实施情况(它使用系列扩展)。
答案 1 :(得分:1)
有关累积分布函数的公式,请参阅此Wikipedia on student-t文章。
代码示例例如是在R的src/nmath/pt.c
库的文件nmath
中。