我需要一些使用 scipy.stats.t.interval() 函数的帮助
我正在查看文档,这没有任何意义。什么是 loc 和 scale?我习惯于需要平均值、标准差、自由度和置信区间的学生 T 区间。
如果您知道答案并可以提供帮助,请发布。另外,如果你能告诉我你是怎么学的,那就太好了。我一直对这份文档不满意。
我需要一些使用 scipy.stats.t.interval() 函数的帮助
我正在查看文档,这没有任何意义。什么是 loc 和 scale?我习惯于需要平均值、标准差、自由度和置信区间的学生 T 区间。
如果您知道答案并可以提供帮助,请发布。另外,如果你能告诉我你是怎么学的,那就太好了。我一直对这份文档不满意。
您链接的文档页面有一个指向源代码的链接。它甚至在评论中有一个格式很好的分布公式(搜索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)
是的,这乍一看有点莫名其妙:-)。
由于之前的答案不明确,我做了一些研究并验证了这一点:
loc是平均值。
scale是平均值的标准误。
这样: μ = M ± t(sM)
其中 μ 是 t 区间,M 是均值,t 是 t 统计量,sM = √(std^2/n) 是均值的标准误差。