二、区间估计:使用Python进行单个正态总体方差的区间估计

对单个正态总体方差区间估计可以分为两类:总体均值( μ \mu μ)已知,和未知。

总体均值未知

  • 枢轴量为 ( n − 1 ) S 2 σ 2 ∼ χ 2 ( n − 1 ) \frac{(n-1)S^2}{\sigma^2}\sim \chi^2(n-1) σ2(n1)S2χ2(n1)
  • 则其置信度为 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(n1)(n1)S2,χ1α/22(n1)(n1)S2)
  • 单侧置信下限为:
    ( n − 1 ) S 2 χ α 2 ( n − 1 ) \frac{(n-1)S^2}{\chi^2_{\alpha}(n-1)} χα2(n1)(n1)S2
  • 单侧置信上限为:
    ( n − 1 ) S 2 χ 1 − α 2 ( n − 1 ) \frac{(n-1)S^2}{\chi^2_{1-\alpha}(n-1)} χ1α2(n1)(n1)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) σ2i=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)}

例题

  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)

  • 3
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值