对单个正态总体方差区间估计可以分为两类:总体均值( μ \mu μ)已知,和未知。
总体均值未知
- 枢轴量为 ( n − 1 ) S 2 σ 2 ∼ χ 2 ( n − 1 ) \frac{(n-1)S^2}{\sigma^2}\sim \chi^2(n-1) σ2(n−1)S2∼χ2(n−1)
- 则其置信度为
1
−
α
1-\alpha
1−α的双侧置信区间为:
( ( n − 1 ) S 2 χ α / 2 2 ( n − 1 ) , ( n − 1 ) S 2 χ 1 − α / 2 2 ( n − 1 ) ) (\frac{(n-1)S^2}{\chi^2_{\alpha/2}(n-1)}, \frac{(n-1)S^2}{\chi^2_{1-\alpha/2}(n-1)}) (χα/22(n−1)(n−1)S2,χ1−α/22(n−1)(n−1)S2) - 单侧置信下限为:
( n − 1 ) S 2 χ α 2 ( n − 1 ) \frac{(n-1)S^2}{\chi^2_{\alpha}(n-1)} χα2(n−1)(n−1)S2 - 单侧置信上限为:
( n − 1 ) S 2 χ 1 − α 2 ( n − 1 ) \frac{(n-1)S^2}{\chi^2_{1-\alpha}(n-1)} χ1−α2(n−1)(n−1)S2
总体均值已知
- 枢轴量为
∑ i = 1 n ( X i − μ ) 2 σ 2 ∼ χ 2 ( n ) \frac{\sum_{i=1}^n (X_i-\mu)^2}{\sigma^2}\sim \chi^2(n) σ2∑i=1n(Xi−μ)2∼χ2(n) - 置信度为
1
−
α
1-\alpha
1−α的双侧置信区间为:
∑ i = 1 n ( X i − μ ) 2 χ α / 2 2 ( n ) , ∑ i = 1 n ( X i − μ ) 2 χ 1 − α / 2 2 ( n ) \frac{\sum_{i=1}^n (X_i-\mu)^2}{\chi^2_{\alpha/2}(n)}, \frac{\sum_{i=1}^n(X_i-\mu)^2}{\chi^2_{1-\alpha/2}(n)} χα/22(n)∑i=1n(Xi−μ)2,χ1−α/22(n)∑i=1n(Xi−μ)2 - 单侧置信下限为:
∑ i = 1 n ( X i − μ ) 2 χ α 2 ( n ) \frac{\sum_{i=1}^n (X_i-\mu)^2}{\chi^2_{\alpha}(n)} χα2(n)∑i=1n(Xi−μ)2 - 单侧置信上限为:
∑ i = 1 n ( X i − μ ) 2 χ 1 − α / 2 2 ( n ) \frac{\sum_{i=1}^n (X_i-\mu)^2}{\chi^2_{1-\alpha/2}(n)} χ1−α/22(n)∑i=1n(Xi−μ)2
Python 代码
import numpy as np
from scipy import stats
def confidence_interval_sigma(data, mu=-1, alpha=0.05, side_both=True):
xb = np.mean(data)
s_square = np.var(data, ddof=1)
if mu > 0:
sum_tmp = 0.0
for i in data:
sum_tmp = sum_tmp + (i-mu)**2
if side_both:
return (sum_tmp/stats.chi2.ppf(1-alpha/2, df=len(data)), sum_tmp/stats.chi2.ppf(alpha/2, df=len(data)))
else:
return {'bottom_limit':sum_tmp/stats.chi2.ppf(1-alpha, df=len(data)), 'top_limit':sum_tmp/stats.chi2.ppf(alpha, df=len(data))}
else:
tmp = (len(data)-1)*np.var(data, ddof=1)
if side_both:
return (tmp/stats.chi2.ppf(1-alpha/2, df=len(data)-1), tmp/stats.chi2.ppf(alpha/2, df=len(data)-1))
else:
return {'bottom_limit':tmp/stats.chi2.ppf(1-alpha, df=len(data)-1), 'top_limit':tmp/stats.chi2.ppf(alpha, df=len(data)-1)}
例题
- 有一大批袋装糖果,现从中随机地取出16袋, 称的重量(以克)如下:
506, 508, 499, 503, 504, 510, 497, 512, 514, 505, 493, 496, 506, 502, 509, 496
假设袋装糖果的重量近似服从正态分布,求总体方差 σ 2 \sigma^2 σ2 的置信水平为0.95的置信区间。
解:
data = np.array([506, 508, 499, 503, 504, 510, 497, 512, 514, 505, 493, 496, 506, 502, 509, 496])
confidence_interval_sigma(data)
返回结果为:
(20.99067787871137, 92.141057716219521)