1.点估计(用样本统计量来估计总体参数)
点估计量: 由样本数据得出, 是对总体参数的估计.
总体均值点估计量 μ ^ \hat{μ} μ^
样本均值 x ‾ \overline{x} x 被称为总体均值 μ 的点估计量 μ ^ \hat{μ} μ^ .
总体方差点估计量 σ ^ \hat{σ} σ^2
样本方差s2被称为总体方差σ2的总体方差点估计量
σ
^
\hat{σ}
σ^2
公式:
σ
^
\hat{σ}
σ^2=Σ(x-
x
‾
\overline{x}
x)2/(n-1)
注意:大部分情况下样本数值的方差会略小于总体方差,所以除以n-1
总体比例点估计量 p ^ \hat{p} p^
p ^ \hat{p} p^=成功数目/样本数目
2.抽样分布(估计量分布)
从一个总体中用相同的方法抽取许多大小相同但存在差异的样本,然后用样本的每个属性(估计量)形成一个分布.
比例的抽样分布
从同一个总体中取得的所有大小为n的可能样本,这些样本的比例
p
^
\hat{p}
p^形成的一个分布.
用Ps代表样本比例随机变量.
求解步骤:
- 查看与特定样本大小相同的所有样本
- 观察所有样本形成的分布,求出比例的期望和方差
- 得出上述比例的分布后,利用分布求出概率
期望方差(p表示总体比例):
E(Ps) = p
Var(Ps)=pq/n
如果n大于30,则Ps符合正态分布,Ps~N(p,pq/n)
注意:需要连续性修正,X的连续性修正为正负二分之一
例:当p=0.25,n=100时,P>=0.4 —— P>0.4-1/(2*100)
均值的抽样分布
从同一个总体中取得的所有大小为n的可能样本,这些样本的均值
x
‾
\overline{x}
x 的分布
求解步骤:
- 查看与所研究样本大小相同的所有可能样本
- 观察所有样本形成的分布, 求出样本均值的期望和方差
- 得知样本均值的分布后, 用该分布求出概率
期望方差:
E(
X
‾
\overline{X}
X)=μ
Var
X
‾
\overline{X}
X)=σ^2/n
均值的抽样分布:
当X服从正态分布时,
X
‾
\overline{X}
X也服从正态分布
X
‾
\overline{X}
X~N(μ, σ^2/n)
当X不服从正态分布, 但n很大时(如大于30),
X
‾
\overline{X}
X可用正态分布近似
X
‾
\overline{X}
X~N(μ, σ^2/n)
中心极限定理
如果从一个非正态总体X中取出一个样本,且样本量n很大,则
X
‾
\overline{X}
X的分布近似为正态分布.
中心极限定理应用
X
‾
\overline{X}
X~N(μ, σ2/n):
- 二项分布,均值为np,方差为npq
- 泊松分布,均值方差都为λ
- 求概率:中心极限定理求出的概率与样本均值有关,而与样本中的数值无关, 所以不用连续性修正
中心极限定理扩展: https://www.jianshu.com/p/7e0597c0200a
3.点估计与抽样分布的Python实现(转载)
版权声明:本文为CSDN博主「秋秋小事」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/jiaoyangdetian/article/details/81665161
import numpy as np
# 场景问题:一个公司中有2500个新员工,他们入职后3个月内有一部分人参加了公司的培训,现有数据为2500个员工的薪资,以及是否参加培训的状态,
# 但因为公司的数据权限,不能给出所有2500个用户的数据,但可以给出50个员工的数据,现需要推断新员工的平均薪资,以及参加培训的比例
# 知识点:
# 有限总体的简单随机抽样:在上边的例子中,新员工的总体个数是有限的,它是个有限总体,在2500个员工中,任意抽取50个员工作为抽样的样本,这50
# 个员工都是以等可能性,即等概率的方式被抽取
salary_all = np.random.randint(low=3000, high=6000, size=2500) # 2500个员工的薪资随机生成,
training_all = np.random.randint(low=100, high=200, size=2500)
training_all = training_all % 2 # 0 未参加过培训 1 参加过培训
class SamplingDistribution(object):
def __init__(self):
return
def PointEstimation(self): # 点估计
# 简单随机抽样,抽取50个样本
salary_sample = np.random.choice(salary_all, size=50) # 样本薪资
training_sample = np.random.choice(training_all, size=50) # 样本是否参训
salary_mean = np.mean(salary_sample) # 点估计量,均值
print('salary_mean=', salary_mean) # 通过点估计值,可以推断2500个新员工的平均薪资为:salary_mean= 4443.46
training_p = np.sum(training_sample == 1) / len(training_sample) # 点估计量,概率值
print('training_p=', training_p) # 通过样本的点估计值,推断新员工中参加培训人员的比例为:training_p= 0.44
return salary_mean, training_p
def SamplingDistributionSpace(self): # 抽样分布
salary = list([]) # 每次抽样得到的薪资点估计值
training = list([]) # 每次抽样得到的是否参训比例的点估计值
n = 30 # 进行抽样30次
root_n = 0
while root_n < n:
s, t = self.PointEstimation()
salary.append(s)
training.append(t)
root_n = root_n + 1
# 每次抽样后的结果
print('salary=', salary)
print('training=', training)
# 每个抽样后得到的点估计值,可以看作一个样本,它服从正太分布,则可以求它的:均值,方差,标准差,协方差等值
result_s = np.mean(salary)
result_t = np.mean(training)
print('result_s=', result_s)
print('result_t=', result_t)
return
SampleWork = SamplingDistribution()
SampleWork.SamplingDistributionSpace()