统计学第八周,第九周

概念知识点:参数估计

本周是统计学学习小组-第二期的第八周,我们这周的学习内容是【参数估计】,涉及到的二级知识点有三个,分别是:

1、点估计:矩估计法 

2、区间估计:总体均值的区间估计、总体比例的区间估计、总体方差的区间估计、两个总体均值之差的区间估计、两个总体比例之差的区间估计、两个总体方差比的区间估计 

3、样本量的确定:估计总体均值时样本量的确定、估计总体比例时样本量的确定

参考章节:统计学(贾俊平第七版)第七章。

 

参数估计:是推断统计的重要内容之一。它是在抽样及抽样分布的基础上,根据样本统计量来推断所关心的总体参数。

估计量与估计值:

如果能够掌握总体的全部数据,那么只需要做一些简单的统计描述就可以得到关心的总体特征,比如,总体均值,方差,比例等。但现实情况比较复杂,有写现象的范围比较广,不可能对总体中的每个单位都进行测定。或者有些总体的个体数很多,不可能也没有必要进行一一验证测定。这就需要从总体中抽取一部分个体进行调查,利用样本信息来推断总体特征。

参数估计(parameter estimation)就是用样本统计量去估计总体的参数。比如,用样本均值估计总体均值,用样本比例p估计总体比例,用样本方差估计总体方差,等等。

在参数估计中,用来估计总体参数的统计量称为估计量,用符号θ表示。样本均值、样本比例、样本方差等都可以是一个估计量。根据一个具体的样本计算出来的估计量的数值称为估计值(estimated value)。比如,要估计一个班学生考试的平均分数,从中抽取一个随机样本,全班的平均分数是不知道的,称为参数,用θ表示,根据样本计算的平均分数就是一个估计量。假定计算出来的样本平均分数为80分,这个80分就是估计量的具体数值,称为估计值。

点估计 

比如,若要估计一批产品的合格率,抽样结果合格率为96%,将96%直接作为这批产品合格率的估计值,这也是一个点估计。

区间估计 

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

区间估计(interval estimate)是在点估计的基础上,给出总体参数估计的一个区间范围,该区间通常由样本统计量加减估计误差得到。与点估计不同,进行区间估计时,根据样本统计量的抽样分布可以对样本统计量与总体参数的接近程度给出一个概率度量。

置信区间:置信区间是指由样本统计量所构造的总体参数的估计区间。在统计学中,一个概率样本的置信区间(Confidence interval)是对这个样本的某个总体参数的区间估计。置信区间展现的是这个参数的真实值有一定概率落在测量结果的周围的程度,其给出的是被测量参数的测量值的可信程度,即前面所要求的“一个概率”。求置信区间。第一步:求一个样本的均值。第二步:计算出抽样误差。经过实践,通常认为调查:100个样本的抽样误差为±10%;500个样本的抽样误差为±5%;1200个样本时的抽样误差为±3%。第三步:用第一步求出的“样本均值”加、减第二步计算的“抽样误差”,得出置信区间的两个端点 [1]  。较窄的置信区间比较宽的置信区间能提供更多的有关总体参数的信息。(https://baike.baidu.com/item/%E7%BD%AE%E4%BF%A1%E5%8C%BA%E9%97%B4/7442583?fr=aladdin

总体均值的区间估计:在对总体均值进行区间估计时,需要考虑总体是否为正态分布,总体方差是否已知,用于构造估计量的样本是大样本(通常要求n>=30)还是小样本(n<30)等几种情况。

总体比例的区间估计:

总体方差的区间估计:

两个总体均值之差的区间估计,两个总体比例之差的区间估计,两个总体方差比的区间估计 

样本量的确定

在进行参数估计之前,首先应该确定一个适当的样本量,也就是应该抽取一个多大的样本来估计总体参数。在进行估计时,总是希望提高估计的可靠程度。但在一定的样本量下,要提高估计的可靠程度(置信水平),就应扩大置信区间,而过宽的置信区间在实际估计中往往是没有意义的。比如,我们说某一天会下雨,置信区间并不宽,但可靠性相对较低;如果说第三季度会下一场雨,尽管很可靠,但准确性又太差,也就是置信区间太宽T,这样的估计是没有意义的。想要缩小置信区间,又不降低置信程度,就需要增加样本量。但样本量的增加会受到许多限制,比如会増加调查的费用和工作量。通常,样本量的确定与可以容忍的置信区间的宽度以及对此区间设置的置信水平有一定关系。因此,如何确定一个适当的样本量,是抽样估计中需要考虑的问题。

估计总体均值时样本量的确定:

估计总体比例时样本的确定:

python练习:

'''
总体比率的区间估计
应用场景:美国对900名高尔夫球员进行了一项全国性的调查,以便掌握女子高尔夫运动员如何看待她们在高尔夫球场所受到的待遇。调查显示有396名女子高尔夫运动球员对开球时间的合理性感到满意。
https://blog.csdn.net/jiaoyangdetian/article/details/82788105
'''


import numpy as np


n = 900             # 样本容量
 
p = 396 / n         # 女子高尔夫运动员中对开球时间的合理性感到满意的总体比率的点估计值
 
a = 0.95            # 取置信水平为0.95
 
z = 1.96            # z(0.05)时,对应取的值
 
bv = z * np.sqrt((p * (1 - p)) / n)     # 边际误差
 
print('边际误差的值: bv=', bv)          # 边际误差的值: bv= 0.03243061379485611
 
re_l = p - bv
re_h = p + bv
 
print('区间估计的下边界为:', re_l)       # 区间估计的下边界为: 0.4075693862051439
print('区间估计的上边界为:', re_h)       # 区间估计的上边界为: 0.4724306137948561
 
#  95%的置信水平下,全部女子高尔夫球员对开球时间的合理性感到满意的比率在[0.476, 0.472]区间范围内
 
import pandas as pd
import numpy as np
import os
from scipy import stats

os.chdir('F://Desktop//统计学第二期//第八周,第九周')

data = pd.read_excel('data.xlsx')

age = data['Age']
age.mean()

# 抽取100个样本
age_sam = age.sample(100)
x1 = age_sam.mean()
age_sam.describe() #数据探索

'''
2、计算置信区间
ps:
1)、pandas.std() 默认是除以n-1 的,即是无偏的,如果想和numpy.std() 一样有偏,需要加上参数ddof=0 ,即pandas.std(ddof=0) ;DataFrame的describe()中就包含有std();
2)、 numpy.std() 求标准差的时候默认是除以 n 的,即是有偏的,np.std无偏样本标准差方式为加入参数 ddof = 1;
原文链接:https://blog.csdn.net/qq_43315928/article/details/103658733
'''
# 正态分布下的置信区间
def norm_conf (data,confidence=0.95):
    # https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.norm.html
    sample_mean = np.mean(data)
    sample_std = np.std(data,ddof=1)
    sample_size = len(data)
    conf_intveral = stats.norm.interval(confidence, loc=sample_mean, scale=sample_std)
    print(conf_intveral)
    
norm_conf(age_sam)

# T分布下的置信区间
def ttest_conf (data,confidence=0.95):
    sample_mean = np.mean(data)
    sample_std = np.std(data,ddof=1)
    sample_size = len(data)
    conf_intveral = stats.t.interval(confidence,df = (sample_size-1) , loc=sample_mean, scale=sample_std)
    print(conf_intveral)
    
ttest_conf(age_sam)


#重复抽取数据
scale_means = []
for _ in range(1000):
   scale_sample = age.sample(100, replace=True)
   mean = scale_sample.mean()
   scale_means.append(mean)
norm_conf(scale_means)

import seaborn as sns 
from matplotlib import pyplot as plt

sns.set_palette("hls") #设置所有图的颜色,使用hls色彩空间
sns.distplot(scale_means,color="r",bins=10,kde=True)
plt.title('Age')
plt.xlim(25,35)
plt.grid(True)
plt.show()

 

发布了12 篇原创文章 · 获赞 0 · 访问量 536
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章