区间估计

例1

  • 分别使用金球和铂球测定引力常数(单位:参数估计和假设检验 - 图2)。

(1)用金球测定观察值为6.683,6.681,6.676,6.678,6.679,6.672。
(2)用铂球测定观察值为6.661,6.661,6.667,6.667,6.664。
设测定值总体为参数估计和假设检验 - 图3均为未知,试就(1),(2)两种情况分别求参数估计和假设检验 - 图4的置信度为0.9的置信区间,并求参数估计和假设检验 - 图5的置信度为0.9的置信区间。
(3)设用金球和铂球测定时总体的方差相等,求两个测定值总体均值差的置信度为0.90的置信区间。
解:
(1)参数估计和假设检验 - 图6均未知时,参数估计和假设检验 - 图7的置信度为0.9的置信区间为
参数估计和假设检验 - 图8
(2)参数估计和假设检验 - 图9均未知时,参数估计和假设检验 - 图10的置信度为0.9的置信区间为
参数估计和假设检验 - 图11
(3)总体均值差的置信度为0.90的置信区间为
参数估计和假设检验 - 图12

  1. clc,clear
  2. x1=[6.683,6.681,6.676,6.678,6.679,6.672];
  3. x2=[6.661,6.661,6.667,6.667,6.664];
  4. %如果检验在 5%(默认) 的显著性水平上拒绝原假设,则结果 h 1,否则为 0
  5. %p假设检验的p值。
  6. %均值的置信区间 ci,以及包含检验统计量信息的结构体 stats
  7. [h1,p1,ci1,st1]=ttest(x1,mean(x1),'Alpha',0.1)%t检验可求得均值的置信区间
  8. [h2,p2,ci2,st2]=ttest(x2,mean(x2),'Alpha',0.1)
  9. [h3,p3,ci3,st3]=vartest(x1,var(x1),'Alpha',0.1)
  10. [h4,p4,ci4,st4]=vartest(x2,var(x2),'Alpha',0.1)
  11. [h,p,ci,st]=ttest2(x1,x2,'Alpha',0.1)%双样本t检验
  1. # 方差既可以使用numpy函数,也可以使用pandas函数。
  2. #
  3. # numpy 中计算的方差就是样本方差本身:
  4. #
  5. # 使用场景为:拥有所有数据的情况下,计算所有数据的标准差时使用,即最终除以n,而非n-1
  6. #
  7. #
  8. # pandas 中计算的方差为无偏样本方差:
  9. #
  10. # 使用场景为:只有部分数据但需要求得总体的标准差时使用,当只有部分数据时,根据统计规律,除以n时计算的标准差往往偏小,因此需要除以n-1,即n-ddof。
  11. #
  12. # 由于是用于样本数据,所以采用pandas的方差函数。
  13. import pandas as pd
  14. import numpy as np
  15. from scipy import stats
  16. x1 = pd.Series([6.683,6.681,6.676,6.678,6.679,6.672])
  17. x2 = pd.Series([6.661,6.661,6.667,6.667,6.664])
  18. x1_mean,x1_var,x1_std=stats.bayes_mvs(x1,alpha=0.90)
  19. x2_mean,x2_var,x2_std=stats.bayes_mvs(x2,alpha=0.90)
  20. print('总体x1均值的置信度为0.90的置信区间是{}'.format(x1_mean))
  21. print('总体x1方差的置信度为0.90的置信区间是{}'.format(x1_var))
  22. print('总体x2均值的置信度为0.90的置信区间是{}'.format(x2_mean))
  23. print('总体x2方差的置信度为0.90的置信区间是{}'.format(x2_var))

注:python区间估计和假设检验部分可查看我的这份笔记。
语雀:https://www.yuque.com/chenyujiao-4zrlp/sxmd8u/adwx4l
jupter notebook:http://localhost:8888/notebooks/Documents/python%E6%95%B0%E6%8D%AE%E5%88%86%E6%9E%90/%E7%AC%AC6%E7%AB%A0%20%E7%AE%80%E5%8D%95%E7%BB%9F%E8%AE%A1%E6%8E%A8%E6%96%AD.ipynb

经验分布函数

参数估计和假设检验 - 图13是总体参数估计和假设检验 - 图14的一个容量为参数估计和假设检验 - 图15的样本值。从小到大排序后:参数估计和假设检验 - 图16
参数估计和假设检验 - 图17
对于经验分布函数,格里汶科(Glivenko)证明了当参数估计和假设检验 - 图18时,参数估计和假设检验 - 图19以概率1一致收敛于总体分布函数参数估计和假设检验 - 图20

例2

下面给出了84个伊特拉斯坎任男子的头颅的最大宽度(mm),计算经验分布函数并画出经验分布函数图形。
141 148 132 138 154 142 150 146 155 158 150 140 147 148 144 150 149 145 149 158 143 141 144 144 126 140 144 142 141 140 145 135 147 146 141 136 140 146 142 137 148 154 137 139 143 140 131 143 141 149 148 135 148 152 143 144 141 143 147 146 150 132 142 142 143 153 149 146 149 138 142 149 142 137 134 144 146 147 140 142 140 137 152 145

  1. clc,clear
  2. load 'data.mat' #数据在一维数组data中
  3. [ycdf,xcdf,n]=cdfcalc(data);%注意得出的经验分布的值没有保留重复值
  4. cdfplot(data)
  5. title("")
  6. hold on
  7. plot(xcdf,ycdf(2:end),'r*')

image.png

  1. """经验分布函数"""
  2. import numpy as np
  3. from statsmodels.distributions.empirical_distribution import ECDF
  4. import pandas as pd
  5. data=pd.read_excel(r'ex7_5.xls')
  6. ecdf=ECDF(data['data'])
  7. sort_data=data.sort_values(by='data')['data']
  8. ecdf(sort_data)
  9. import matplotlib.pyplot as plt
  10. plt.figure()
  11. plt.step(sort_data,ecdf(sort_data))
  12. plt.plot(sort_data,ecdf(sort_data),'r-')

image.png

Q-Q图

作用

  • Q-Q图(Quantile-Quantile Plot)是检验拟合优度的好办法。对于一组观察数据参数估计和假设检验 - 图23,利用参数估计方法确定了分布模型的参数参数估计和假设检验 - 图24后,分布函数参数估计和假设检验 - 图25就知道了,现在希望知道的是观测数据与分布模型的拟合效果如何。

    原理

  • Q-Q图的基本思想是将经验分布函数的分位数点和分布模型的理论分布分位数点作为一堆数组画在直角坐标图上,就是一个点,参数估计和假设检验 - 图26个观测数据对应参数估计和假设检验 - 图27个点,如果这参数估计和假设检验 - 图28个点看起来像一条直线,说明观测数据与分布模型的拟合效果很好。

    计算步骤

  1. 参数估计和假设检验 - 图29依大小顺序排列成参数估计和假设检验 - 图30
  2. 参数估计和假设检验 - 图31
  3. 参数估计和假设检验 - 图32,这参数估计和假设检验 - 图33个点画在直角坐标图上。
  4. 如果这参数估计和假设检验 - 图34个点看起来呈一条参数估计和假设检验 - 图35角的直线,则拟合效果很好。

    续例2

  • 如果这些数据来自于正态总体,求该正态分布的参数,试画出它们的Q-Q图,判断拟合效果。
    1. clc,clear
    2. load 'data.mat'
    3. mean_data=mean(data);
    4. std_data=std(data);
    5. %PD = ProbDistUnivParamDistName Params 创建 PD,这是一个 ProbDistUnivParam 对象,它表示概率分布。此分布由 DistName 指定的参数分布定义,参数由数值矢量参数指定。
    6. pd=makedist('normal','mu',mean_data,'sigma',std_data);
    7. %qqplotX %检查数据X是否副总正态分布,这和正态概率函数差不多
    8. %qqplotXY %检验数据XY是否服从相同的分布(他们的每个分位数是否都相近相似)
    9. qqplot(data,pd)
    image.png
    1. from scipy import stats
    2. data.mean()
    3. data.std()
    4. stats.probplot(sort_data, dist="norm",plot=plt)
    5. plt.show()
    image.png

    非参数检验

    参数估计和假设检验 - 图38拟合优度检验

    步骤

  1. 建立待检验假设参数估计和假设检验 - 图39:总体参数估计和假设检验 - 图40的分布函数为参数估计和假设检验 - 图41
    1. 若总体参数估计和假设检验 - 图42是离散型的,建立待检假设参数估计和假设检验 - 图43:总体参数估计和假设检验 - 图44的分布律为参数估计和假设检验 - 图45
    2. 若总体参数估计和假设检验 - 图46是连续型的,建立待检假设参数估计和假设检验 - 图47:总体参数估计和假设检验 - 图48的概率密度为参数估计和假设检验 - 图49
  2. 将数轴分成参数估计和假设检验 - 图50个区间,令参数估计和假设检验 - 图51为分布函数参数估计和假设检验 - 图52的总体参数估计和假设检验 - 图53在第参数估计和假设检验 - 图54个区间内取值的概率,设参数估计和假设检验 - 图55参数估计和假设检验 - 图56个样本观察值落入第参数估计和假设检验 - 图57个区间上的个数,也称为组频数。
  3. 选取统计量参数估计和假设检验 - 图58,如果参数估计和假设检验 - 图59为真,则参数估计和假设检验 - 图60,其中参数估计和假设检验 - 图61为分布函数参数估计和假设检验 - 图62中未知参数的个数,参数估计和假设检验 - 图63为分组的组数。
  4. 给定显著性水平参数估计和假设检验 - 图64,确定参数估计和假设检验 - 图65并计算样本统计量参数估计和假设检验 - 图66的观察值。
  5. 作出判断:若参数估计和假设检验 - 图67,则接受参数估计和假设检验 - 图68;否则拒绝参数估计和假设检验 - 图69,即不能认为总体参数估计和假设检验 - 图70的分布函数为参数估计和假设检验 - 图71

    续例2

  • 试检验这些数据是否来自正态总体(取参数估计和假设检验 - 图72)。

解:参数估计和假设检验 - 图73:头颅的最大宽度参数估计和假设检验 - 图74服从正态分布参数估计和假设检验 - 图75
image.png
参数估计和假设检验 - 图77
所以接受假设,认为这些数据是来自正态总体。

  1. clc,clear
  2. load 'data.mat'
  3. %创建正态分布的方法一:这种方法两个参数是待估的
  4. pd_f=fitdist(data','Normal')%对数据进行概率分布对象拟合,用数据拟合正态分布得到的参数的点估计和区间估计
  5. %创建正态分布的方法二:
  6. mean_data=mean(data);
  7. std_data=std(data);
  8. pd_m=makedist('normal','mu',mean_data,'sigma',std_data);%创建概率分布对象,有和fitdist一样的方法
  9. %得到分布函数的方法一:这种方法两个参数是确定的
  10. pd_cdf=@(x) cdf(pd_f,x)或pd_cdf=@(x) cdf(pd_m,x)
  11. %得到分布函数的方法二:
  12. pd_cdf=@(x) normcdf(x,mean_data,std_data)
  13. %qqplot(X) %检查数据X是否服从正态分布,这和正态概率函数差不多
  14. %qqplot(X,Y) %检验数据X与Y是否服从相同的分布(他们的每个分位数是否都相近相似)
  15. qqplot(data,pd)
  16. %默认bins为10,会使得观测数均在5个以上。
  17. %‘emin’非负整数,默认值5,指定一个区间对应的最小理论频数
  18. %‘frequency’与x等长的向量, 指定x中各元素出现的频数
  19. %‘alpha’默认值0.05 ,指定检验的显著性水平
  20. [h,p,st]=chi2gof(data,'cdf',pd_cdf,'NParams',2,'Alpha',0.1) %cdf指分布函数;‘expected’指定各区间的理论频数,与‘cdf’不能同时出现
  21. [h,p,st]=chi2gof(data,'cdf',pd_f,'Alpha',0.1) %由fitdist得到的分布对象,r=2,统计量的自由度为k-r-1=4
  22. [h,p,st]=chi2gof(data,'cdf',pd_m,'Alpha',0.1) %由makedist得到的分布对象,r=0,统计量的自由度为k-r-1=6
  23. %本题中,两个参数是估计出来的,所以选第一种或第二种,r=2才对

结果:

  1. h =0
  2. p =0.3618
  3. st =
  4. 包含以下字段的 struct:
  5. chi2stat: 4.3408 %样本统计量的结果
  6. df: 4 %自由度
  7. edges: [126.0000 135.6000 138.8000 142.0000 145.2000 148.4000 151.6000 158.0000] %分组的边界值
  8. O: [7 7 22 15 15 10 8]%实际频数
  9. E: [7.1816 9.8204 15.1865 17.7409 15.6563 10.4375 7.9768]%理论频数
  10. >>> chi2inv(0.9,st.df)%临界值
  11. ans =
  12. 7.7794

例3

  • 在一批灯泡中抽取300只作寿命试验,取参数估计和假设检验 - 图78,试检验假设:参数估计和假设检验 - 图79:灯泡寿命服从指数分布。

参数估计和假设检验 - 图80

寿命参数估计和假设检验 - 图81 参数估计和假设检验 - 图82 参数估计和假设检验 - 图83 参数估计和假设检验 - 图84 参数估计和假设检验 - 图85
灯泡数 121 78 43 58

解:

  1. clc,clear
  2. edges=[0:100:300 inf];
  3. bins=[50 150 250 inf];
  4. num=[121 78 43 58];
  5. pd=makedist('exp',200);
  6. pd_cdf=@(x) cdf(pd,x);
  7. [h,p,st]=chi2gof(bins,'Edges',edges,'cdf',pd_cdf,'Frequency',num,'NParams',0)
  8. chi2=chi2inv(0.95,st.df)
  9. 结果:
  10. h = 0
  11. p = 0.6052
  12. st =
  13. 包含以下字段的 struct:
  14. chi2stat: 1.8450
  15. df: 3
  16. edges: [0 100 200 300 Inf]
  17. O: [121 78 43 58]
  18. E: [118.0408 71.5954 43.4248 66.9390]
  19. chi2= 7.8147

h=0chi2stat<chi2p>0.05都可以说明接受原假设,即认为这批灯泡寿命服从参数为200的指数分布。

柯尔莫哥洛夫检验

原理

  • 参数估计和假设检验 - 图86拟合优度检验实际上是检验参数估计和假设检验 - 图87的正确性,并未直接检验原假设的分布函数参数估计和假设检验 - 图88的正确性,柯尔莫哥洛夫检验直接针对原假设参数估计和假设检验 - 图89,这里分布函数参数估计和假设检验 - 图90必须是连续型分布。柯尔莫哥洛夫检验基于经验分布函数作为检验统计量,检验理论分布函数与样本分布函数的拟合优度。
  • 设总体参数估计和假设检验 - 图91服从连续分布,参数估计和假设检验 - 图92是来自总体参数估计和假设检验 - 图93的简单随机样本,参数估计和假设检验 - 图94为经验分布函数。定义

参数估计和假设检验 - 图95
根据大数定律,当参数估计和假设检验 - 图96区域无穷大时,参数估计和假设检验 - 图97依概率收敛到0.

步骤

  1. 原假设和备择假设

参数估计和假设检验 - 图98

  1. 选取检验统计量

参数估计和假设检验 - 图99
参数估计和假设检验 - 图100为真时,参数估计和假设检验 - 图101有偏小趋势,则拟合得越好。

  1. 确定拒绝域。给定显著性水平参数估计和假设检验 - 图102,查参数估计和假设检验 - 图103极限分布表,求出参数估计和假设检验 - 图104满足

参数估计和假设检验 - 图105
即拒绝域为参数估计和假设检验 - 图106

参数估计和假设检验 - 图107 0.1 0.05 0.01
参数估计和假设检验 - 图108 1.22 1.36 1.63
  1. 作判断。计算统计量得观察值,如果参数估计和假设检验 - 图109落在拒绝域则拒绝原假设。

    续例2

  • 试用柯尔莫哥洛夫检验法检验这些数据是否服从正态分布(参数估计和假设检验 - 图110)。

解:

  1. 参数估计和假设检验 - 图111
  2. 拒绝域是参数估计和假设检验 - 图112
  3. 计算经验分布函数参数估计和假设检验 - 图113和理论分布函数值参数估计和假设检验 - 图114,并计算统计量

参数估计和假设检验 - 图115
所以接受原假设,即认为服从正态分布。

  1. clc,clear
  2. load 'data.mat'
  3. %% 方法一:由该方法的步骤计算
  4. mean_data=mean(data);
  5. std_data=std(data);
  6. [ycdf,xcdf,n]=cdfcalc(data);%经验分布
  7. ycdf=ycdf(1:end-1);%% 这里有一点疑惑,按照经验分布函数的定义,不应该是去掉第一个数据0
  8. pd_cdf=@(x) normcdf(x,mean_data,std_data);%理论分布
  9. %pd_cdf=normcdf(xcdf,mean_data,std_data);
  10. Dn=max(abs(ycdf - pd_cdf(xcdf)));
  11. if Dn*sqrt(length(data))<1.36
  12. disp("接受原假设")
  13. else
  14. disp("拒绝原假设")
  15. end
  16. %% 方法二:调用工具箱
  17. pd=makedist('Normal','mu',mean_data,'sigma',std_data);
  18. [h,p,st,cv]=kstest(data,'CDF',pd,'Alpha',0.05)%cv是临界值,和上面结果不一样是因为这里的t更准确

结果:

  1. h = 0 %代表接受原假设
  2. p = 0.5484 %p值大于显著性水平0.05,所以接受原假设
  3. st = 0.0851 %代入样本数据得到的统计量的值,大于临界值cv,所以接受原假设
  4. cv = 0.1461 %临界值

秩和检验

作用

  • 检验假设参数估计和假设检验 - 图116:两个总体参数估计和假设检验 - 图117参数估计和假设检验 - 图118有相同的分布。

    步骤

    设分别从总体参数估计和假设检验 - 图119两个总体独立抽取大小为参数估计和假设检验 - 图120,且参数估计和假设检验 - 图121
  1. 将两个样本混合起来,按照数值从小到大统一排序,每个数据对应的序数为秩。
  2. 计算取自总体参数估计和假设检验 - 图122的样本所对应的秩之和,用参数估计和假设检验 - 图123表示。
  3. 根据参数估计和假设检验 - 图124与水平参数估计和假设检验 - 图125,查秩和检验表,得秩和下限参数估计和假设检验 - 图126和秩和上限参数估计和假设检验 - 图127
  4. 参数估计和假设检验 - 图128,则否定原假设,认为两个总体分布有显著差异。

    原理

    如果两总体分布无显著差异,那么参数估计和假设检验 - 图129不应太大或太小。

    例3

  • 试讨论烘干温度对抗弯强度在水平参数估计和假设检验 - 图130下是否有显著影响?

image.png
解:

  1. 排序

image.png

  1. 查表
  2. 参数估计和假设检验 - 图133,接受原假设,认为没有显著差异 ```matlab clc, clear x=[41.5 42.0 40.0 42.5 42.0 42.2 42.7 42.1 41.4]; y=[41.2 41.8 42.4 41.6 41.7 41.3]; yx=[y,x]; yxr=tiedrank(yx);%计算秩 yr=sum(yxr(1:length(y)));%计算y的秩和

%% 利用工具箱 [p,h,st]=ranksum(y,x,’Alpha’,0.05) ```