推断统计分析-参数估计

image.png

什么是推断统计

推断统计是研究如何根据样本数据去推断总体数量特征的方法。它是在对样本数据进行描述的基础上,对统计总体的未知数量特征做出以概率形式表述的推断。

为什么要做推断统计

因为在实际研究中,获取总体数据通常比较困难,甚至不可能完成。因此,就需要对总体进行抽样,通过样本的统计量去估计总体参数。也就是说,总体的参数往往是未知的,我们为了获取总体的参数,需要通过样本的统计量来估计总体参数。

推断统计怎么做

1.点估计

点估计,就是用样本的统计量去代替总体参数。比如要求全校的平均身高,就可以用样本的均值来估计总体的均值。

点估计实现简单,但容易受到随机抽样的影响
优点:能够给出具体的估计值
缺点:缺乏准确性

2.区间估计

区间估计就是根据样本的统计量,计算出一个可能的区间与概率,表示总体的参数会有多少概率位于该区间种。区间估计指定的区间,成为置信区间,区间估计指定的概率,成为置信度

优点:能给出合理的范围以及信心指数
缺点:不能给出具体的估计值

中心极限定理

要确定置信区间和置信度,我们要知道总体和样本之间的关系,在数学上,中心极限定理给出了很好的解释。

如果总体(分布不重要)均值为, 方差为,我们进行随机抽样,样本容量为n,当n增大时,则样本均值逐渐服从正态分布:

关于中心极限定理:
从总体中多次抽样,则每次抽样会得到一个均值,这些均值服从正态分布。

  • 如果总体服从正太分布,则样本容量n只需要大于0即可
  • 如果总体不服从正态分布,则样本容量n通常需要满足n>=30

python程序模拟中心极限定理:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
from sklearn.datasets import load_iris
# 设置风格
sns.set(style='white', font_scale=1.2)
%matplotlib inline
plt.rcParams["font.sans-serif"] = "SimHei"
plt.rcParams['axes.titlesize'] = 20
plt.rcParams['axes.unicode_minus']=False
warnings.filterwarnings("ignore")

def plot_dist(all_):
    """从总体中进行抽样,并绘制每次抽样的分布。
    
    Parameters
    ----------
    all_:array-like
        用来模拟总体的数据。
    """
    
    # 计算总体的均值与标准差
    print(f"总体均值:{all_.mean():.2f},总体标准差:{all_.std():.2f}")
    # 定义样本容量列表,后面抽样得到的样本,会以该列表中定义的数值作为样本容量
    sample_num = [1, 5, 10, 30]
    # 计算在各个样本容量下的标准误差
    print(all_.std()/np.sqrt(sample_num))
    # 定义子图数量,2*2
    fig, ax = plt.subplots(2,2)
    # 设置画布大小,15*10,单位:英寸
    fig.set_size_inches(15,10)
    # 将ax转化为一维数组,便于后面在循环中使用
    ax = ax.ravel()
    for index, num in enumerate(sample_num):
        # 创建均值数组,用来存储每次抽样(每个样本)的均值
        mean_arr = np.zeros(1000)
        # 循环1000次,获取1000个样本
        for i in range(len(mean_arr)):
            # 进行随机抽样,计算每个样本的均值,并放入数组中
            # size:样本容量
            mean_arr[i] = np.random.choice(all_,size=num).mean()
        ax[index].set_title(f"样本容量:{num},均值:{mean_arr.mean():.2f},标准差:{mean_arr.std():.2f}")
        sns.distplot(mean_arr,ax=ax[index])

# 模拟服从对数正态分布的总体
all_ = np.random.lognormal(size=10000)
plot_dist(all_)
image.png
# 模拟服从正太分布的总体
# size:数组的形状
# loc:均值
# scale:标准差
all_ = np.random.normal(size=10000,loc=0,scale=1)
plot_dist(all_)
image.png

正态分布的特性

以均值为中心,1倍标准差内,包含约68%的样本数据
以均值为中心,2倍标准差内,包含约95%的样本数据
以均值为中心,3倍标准差内,包含约99.7%的样本数据
经常使用的是95%置信区间,1.96倍标准差

你可能感兴趣的:(推断统计分析-参数估计)