置信区间

时间:2018-03-10 22:23:47

标签: python scipy statistics

我正在进行统计分析并需要置信区间,我假设正态分布值,因此使用T分布作为区间。

我找到的解决方案使用scipy.stats.sem( data )ss.t.fit( data, len(data)-1 )作为scale - 参数的来源。完整的例子:

import numpy as np, scipy.stats as ss

# sample size
sample = 30

# data generate
dist = ss.norm( loc=100, scale=20 )
data = dist.rvs( size=sample )

# degrees of freedom
df = len(data)-1

# Using sem
loc, scale = np.mean(data), ss.sem(data)
print( ss.t.ppf(0.95, df=df, scale=scale) )

# Using fit
params = ss.t.fit( data, df )
loc, scale = params[-2], params[-1]
print( ss.t.ppf(0.95, df=df, scale=scale) )

我希望两种解决方案都能正常工作,前者只是更有效率。但是,输出看起来像:

6.56521148383
25.8184505101

有什么区别?

如果我使用来自dist的参数绘制原始ss.t.fit与分布的对比,那么它看起来是正确的。

0 个答案:

没有答案