【统计学】推断统计分析——根据样本统计量推断总体参数
本文总结了数据分析中用到的推断统计分析知识点,是自己学习参数估计和假设检验的学习笔记。
目录
推断统计研究的是如何根据样本数据去推测总体特征的方法。进行推断的原因是在实际生产中,获取总体数据通常比较困难,甚至不可能完成,因此需要对总体进行抽样,通过样本统计量去估计总体参数。
一、参数估计
1. 点估计
就是用样本的统计量去代替总体参数。
优点: 可以给出具体的估计值;
缺点: 估计结果容易受到随机抽样的影响,无法保证结论的准确性。
2. 区间估计
根据样本统计量计算出一个可能的区间与概率。
优点: 可给出合理的范围(置信区间)及信心指数(置信度);
缺点: 不能给出具体的估计值。
2.1 中心极限定理
如果总体(分布不重要)均值为 μ方差为,进行足够多次随机抽样,样本容量为n,当n增大时,样本均值近似服从正太分布X~N(μ,/n)。
结论:
1、多次抽样,每次抽样会得到一个均值,均值会围绕在总体均值左右,呈正太分布。
2、当样本容量n足够大(一般n>=30),样本均值服从正太分布。
1)样本均值构成的正态分布,其均值等于总体均值μ;
2)样本均值构成的正态分布,其标准差等于σ/;
注意:
1、样本均值的标准差,称为标准误差,简称标准误。
2、区分总体标准差σ,样本标准差(一次抽样获得的标准差),标准误差(样本均值构成的正太分布的标准差)。
2.2 程序模拟中心极限定理
import numpy as np
import pandas as pd
import seaborn as sns
#定义总体数据
#loc:均值;scale:标准差;size:数组大小,即数组中含有的元素个数
all_ = np.random.normal(loc=30,scale=80,size=10000)
#创建均值数组,用来存放每次抽样(每个样本)的均值
mean_arr = np.zeros(1000)
for i in range(len(mean_arr)):
#随机抽样,size:样本容量;replace:是否为放回抽样,默认为True
mean_arr[i] = np.random.choice(all_,size=64,replace=False).mean()
#样本均值构成正态分布,该正态分布的均值等于总体均值
#标准差等于总体标准差/根号n
print('样本均值构成的正太分布的均值:',mean_arr.mean())
print('样本均值构成的正太分布的标准差(标准误):',mean_arr.std())
print('偏度:',pd.Series(mean_arr).skew())
sns.distplot(mean_arr)
样本均值构成的正太分布的均值: 30.653383960104826
样本均值构成的正太分布的标准差(标准误): 9.918944517394578
偏度: 0.05852723907161612
2.3 正态分布的特性
1、以均值为中心,在1倍标准差内( μ-σ,μ+σ),包含约68%的样本数据。
2、以均值为中心,在2倍标准差内(μ-2σ,μ+2σ),包含约95%的样本数据。
3、以均值为中心,在3倍标准差内(μ-3σ,μ+3σ),包含约99.7%的样本数据。
其中,σ为样本均值的标准差,即标准误差。
2.4 程序检验正态分布的特性
#标准差
scale = 50
x = np.random.normal(0,scale,size=100000)
#定义标准差的倍数,倍数从1到3
for times in range(1,4):
y = x[(x > -times * scale) & (x < times * scale)]
print(times,'倍标准差:',f'{len(y) * 100 / len(x)}%')
1 倍标准差: 68.392%
2 倍标准差: 95.499%
3 倍标准差: 99.734%
2.5 行业应用
参数估计在行业的应用,具体操作要根据实际场景来:
1、工业生产量的判断。
2、服务业投诉量是否改进判断。
3、电商业用户访问量、用户流失等评估。
4、金融、保险业风险评估。
二、 假设检验
区间估计是通过正面方式,来计算总体参数的可能取值(区间);而假设检验是从反正角度来判断,是接受原假设还是拒绝原假设。
1. 相关概念
1、小概率事件
小概率事件在一次试验中不会发生,一旦发生则拒绝原假设。
接受原假设,并不代表原假设一定是正确的,只是没有充分的证据去证明原假设是错误的,因此只能接受原假设。
2、P-Value与显著性水平
P-Value是支持原假设的概率,设定的阈值(α表示)为显著性水平,α通常选定为0.1、0.05、0.01,具体根据样本量选择,常选0.05。
3、原假设与备择假设
1)若是等值估计,等值选为原假设,不等选为备择假设;
2)在单边检验中,原假设为维持现状,改变现状为备择假设。
2.假设检验的步骤
1、设置原假设和备择假设;
2、设置显著性水平α(通常选择0.05);
3、根据问题选择检验方式;
4、计算统计量,并通过统计量获取P值;
5、根据P值与α值,决定接受原假设还是备择假设。
3. Z检验
Z检验用来判断样本均值与总体均值是否有显著性差异。Z检验是通过正太分布理论来推断差异发生的概率,从而比较两个均值的差异是否显著。
3.1 适用场景
1、总体呈正态分布;
2、总体方差已知;
3、样本容量较大(一般>=30)
1和3满足其一即可,因为在样本容量很大时,样本均值近似呈正态分布。
3.2 Z统计量计算方式
x一把:样本均值;
μ0:待检测的总体均值;
σ:总体的标准差
n:样本容量
Z统计量含义: 样本均值与总体均值的距离是几倍标准误差,如果大于1.96倍或小于-1.96倍,表示样本均值落在了拒绝域。
3.3 Z检验Python实现
from scipy import stats
已知:样本 a = np.array([]),总体均值mean,总体标准差std
样本均值:sample_mean = a.mean()
标准误差:se = std / np.sqrt(len(a))
Z统计量:Z = (sample_mean = mean) / se
P值:P = 2 * stats.morm.sf(abs(Z))
4. t 检验
t检验用来判断样本均值是否与总体均值具有显著性差异,t检验是基于t分布的。
4.1 适用场景
1、总体呈正态分布;
2、总体方差未知;
3、样本数量较少(<30)
当样本容量>30,t分布接近正太分布
4.2 t 统计量计算方式
x一把:样本均值;
μ0:待检测的总体均值;
S:样本的标准差
n:样本容量
4.3 t 检验Python实现
已知:样本 a = np.array([]),总体均值mean
样本均值:sample_mean = a.mean()
样本标准差:sample_std = a.std()
t统计量:(sample_mean - mean) / (sample_std / np.sqrt(len(a)))
P值:2 * stats.t.sf(abs(t),df=len(a)-1),df为*度,
简单理解,*度就是变量能够*取值的个数,t分布的*度为n-1