用Scipy求解单个正态总体的置信区间

时间:2022-07-24
本文章向大家介绍用Scipy求解单个正态总体的置信区间,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
  • 区间估计简介
  • Python求解
    • 单个正态总体参数的置信区间
  • 参考

区间估计简介

假定参数是射击靶上 10 环的位置,作一次射击,打在靶心 10 环的位置上的可能性很小,但打在靶子上的可能性就很大,用打在靶上的这个点画出一个区间,这个区间包含靶心的可能性就很大,这就是区间估计的基本思想。

在区间估计中,由样本统计量所构造的总体参数的估计区间称为置信区间, 其中区间的最小值称为置信下限,最大值称为置信上限。由于统计 学家在某种程度.上确信这个区间会包含真正的总体参数,所以给它取名为置信区间。原因是,如果抽取了许多不同的样本,比如说抽取 100 个样本,根据每一个样本构造一个置信区间,这样,由 100 个样本构造的总体参数的 100 个置信区间中,有 95%的区间包含了总体参数的真值,而 5%则没包含,则 95%这个值称为置信水平。一般地,如果将构造置信区间的步骤重复多次,置信区间中包含总体参数真值的次数所占的比例称为置信水平。

从上图不难看出,当样本量给定时,置信区间的宽度随着置信系数的增大而增大,从直觉上说,区间比较宽时,才会使这一区间有更大的可能性包含参数的真值;当置信水平固定时,置信区间的宽度随样本量的增大而减小,换言之,较大的样本所提供的有关总体的信息要比较小的样本多。

  • 对置信区间的理解,有以下几点需要注意:
  1. 如果用某种方法构造的所有区间中有95%的区间包含总体参数的真值,5% 的区间不包含总体参数的真值,那么,用该方法构造的区间称为置信水平为95%的置信区间。同样,其他置信水平的区间也可以用类似的方式进行表述。
  2. 总体参数的真值是固定的、未知的,而用样本构造的区间则是不固定的。若 抽取不同的样本,用该方法可以得到不同的区间,从这个意义上说,置信区间是一个随机区间,它会因样本的不同而不同,而且不是所有的区间都包含总体参数的真值。一个置信区间就像是为捕获未知参数而撒出去的网,不是所有撒网的地点都能捕获到参数。
  3. 在实际问题中,进行估计时往往只抽取一个样本,此时所构造的是与该样本 相联系的一定置信水平( 比如95%)下的置信区间。由于用该样本所构造的区间是一个特定的区间,而不再是随机区间,所以无法知道这个样本所产生的区间是否包含总体参数的真值。我们只能希望这个区间是大量包含总体参数真值的区间中的一个,但.它也可能是少数几个不包含参数真值的区间中的一个。比如,从一个总体中抽取20个随机样本,得到总体均值u的20个估计区间,如下图所示。图中每个区间中间的点表示p的点估计,即样本均值x。可以看出20个区间中只有第8个区间没有包含总体均值μ。如果这是95%的置信区间,最后只有5%的区间没有包含μ

Python求解

单个正态总体参数的置信区间

sigma

已知

mu

的置信区间

例题1:用天平称量某 物体的质量9次,得平均值为x=15.4(g),已知天 平称量结果为正态分布,其标准差为0.1(g).试求该物体质量的0.95置信区间.

import numpy as np
import pandas as pd
from scipy import stats
import matplotlib.pyplot as plt
%matplotlib inline

mean=15.4
std=0.1/3  
interval=stats.norm.interval(0.95,mean,std)  
print('该物体质量的95%的置信区间是{}'.format(interval))
该物体质量的95%的置信区间是(15.334667867181999, 15.465332132818002)

sigma

未知

mu

的置信区间

例题2:假设轮 胎的寿命服从正态分布.为估计某种轮胎的平均寿命,现 随机地抽12只轮胎试用,测得它们的寿命(单位:万千米)如下:

4.68 4.85 4.32 4.85 4.61 5.02 5.20 4.60 4.58 4.72 4.38 4.70

试求平均寿命的0.95置信区间.

l=[4.68 ,4.85, 4.32, 4.85, 4.61, 5.02, 5.20, 4.60, 4.58, 4.72, 4.38, 4.70]

x=np.array(l)
mean=x.mean()
tsem=stats.tsem(x)    #注意这里使用的修正因子是n/(n-1)

interval=stats.t.interval(0.95,len(l)-1,mean,tsem)
print('平均寿命的95%的置信区间是{}'.format(interval))
平均寿命的95%的置信区间是(4.551601078721146, 4.866732254612187)

sigma ^{2}

的置信区间

例题3:某厂生产的零件重量服从正态分布N(μ,

sigma ^{2}

),现从该厂生产的 零件中抽取9个,测得其质量(单位:g)为 45.3 45.4 45.1 45.3 45.5 45.7 45.4 45.3 45.6 试求总体标准差

sigma ^{2}

的0. 95置信区间.

l=[ 45.3 ,45.4, 45.1, 45.3, 45.5, 45.7, 45.4, 45.3, 45.6]

x=np.array(l)
mean=x.mean()
var=9*x.var()

a=stats.chi2.interval(0.95,len(l)-1)
b=np.array(a)

print('方差95%的置信区间是{}'.format((var/b)[::-1]))
方差的95%的置信区间是[0.01482787 0.11928079]

参考

[1]茆诗松《概率论与数理统计》