8

我需要一些使用 scipy.stats.t.interval() 函数的帮助

http://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.t.html?highlight=stats.t#scipy.stats.t

我正在查看文档,这没有任何意义。什么是 loc 和 scale?我习惯于需要平均值、标准差、自由度和置信区间的学生 T 区间。

如果您知道答案并可以提供帮助,请发布。另外,如果你能告诉我你是怎么学的,那就太好了。我一直对这份文档不满意。

4

2 回答 2

4

您链接的文档页面有一个指向源代码的链接。它甚至在评论中有一个格式很好的分布公式(搜索class t_gen)。

loc并且scale是所有连续分布scipy.stats都被参数化的一种方式:基本上,对于一个分布f(x),指定 loc 和 scale 意味着你得到f(loc + x*scale)(上面链接的源代码中的第 1208 行)。

>>> import scipy.stats as stats
>>> stats.t.pdf(2, 2) 
0.06804138174397717
>>> stats.t.pdf(2, 2, loc=0, scale=1) 
0.06804138174397717
>>> stats.t.pdf(2+42, 2, loc=42, scale=1) 
0.06804138174397717

>>> stats.t.stats(9, moments='mvsk')
(array(0.0), array(1.2857142857142858), array(0.0), array(1.2))
>>> stats.t.stats(8, loc=1, moments='mvsk')
(array(1.0), array(1.3333333333333333), array(0.0), array(1.5))

>>> stats.t.interval(0.95, 4, loc=0)
(-2.7764451051977987, 2.7764451051977987)
>>> stats.t.interval(0.95, 4, loc=3)
(0.22355489480220125, 5.7764451051977987)

是的,这乍一看有点莫名其妙:-)。

于 2013-06-25T07:02:21.883 回答
2

由于之前的答案不明确,我做了一些研究并验证了这一点:

loc是平均值。

scale是平均值的标准误。

这样: μ = M ± t(sM)

其中 μ 是 t 区间,M 是均值,t 是 t 统计量,sM = √(std^2/n) 是均值的标准误差。

于 2020-02-08T22:04:52.363 回答