哈喽各位小伙伴!我是你们的统计学+Python零露老师~
上一期咱们搞定了统计学的基石正态分布,今天咱们一次性拿下推断统计学的核心工具——t分布、F分布、卡方分布,江湖人称「三大抽样分布」。
很多小白一听到这三个名字就头大,觉得全是复杂公式,根本学不会。放心!今天咱们全程大白话,不讲复杂推导,只讲「它是什么、什么时候用、Python怎么一键实现」,看完你就懂,后面的假设检验、方差分析,全靠这三个工具撑场面!
一、先搞懂:什么是抽样分布?为什么要学这三个?
先给大家吃个定心丸:这三个分布,全都是正态分布的「衍生款」,本质都是为了解决「抽样统计」的问题。
咱们做统计,几乎不可能把总体所有人/所有数据都测一遍:
•想知道一款新药有没有效,不可能给全国人都吃一遍,只能抽几百个患者做试验
•想知道三款营销方案哪个好,不可能给全平台用户都试一遍,只能抽部分用户做测试
我们只能从总体里抽样本,通过样本数据去推断总体的情况。而从样本里算出来的均值、方差这些统计量,它们的分布,就叫抽样分布。
今天学的t、F、卡方三大分布,就是统计学里最常用的三个抽样分布,是后面所有假设检验、方差分析的核心工具,搞懂它们,后面的内容就一通百通了!
二、挨个拆解!三大分布大白话解析+Python实战
1. 卡方分布(χ²分布):检验「比例/方差」的神器
大白话定义
卡方分布,就是n个相互独立的标准正态分布,先平方、再加起来,得到的分布。
它只有一个核心参数:自由度df,就是上面说的n。自由度越大,曲线越接近正态分布;自由度越小,曲线越往右偏,而且卡方分布的数值永远是正数,没有负数。
最常用的3个场景
这是你以后一定会用到的,先记下来:
1.拟合优度检验:检验实际数据和理论比例是否一致(比如检验医院男女患者比例是否符合5:5)
2.独立性检验:检验两个分类变量有没有关系(比如检验吸烟和肺癌是否相关)
3.单总体方差检验:检验数据的方差是否符合标准(比如检验药品灌装重量的波动是否达标)
Python一键生成+画图
新建代码框,复制运行,一行生成数据,一行画图:
Pythonimport numpy as npimport seaborn as snsimport matplotlib.pyplot as plt# 解决中文乱码plt.rcParams["font.family"] = ["SimHei", "WenQuanYi Micro Hei"]plt.rcParams["axes.unicode_minus"] = False# 生成卡方分布数据:自由度分别为3、6、10,各10000个样本np.random.seed(10)chi2_df3 = np.random.chisquare(df=3, size=10000)chi2_df6 = np.random.chisquare(df=6, size=10000)chi2_df10 = np.random.chisquare(df=10, size=10000)# 画图对比不同自由度的卡方分布plt.figure(figsize=(8, 5))sns.kdeplot(chi2_df3, label='自由度df=3')sns.kdeplot(chi2_df6, label='自由度df=6')sns.kdeplot(chi2_df10, label='自由度df=10')plt.title("不同自由度的卡方分布", fontsize=14)plt.xlabel("数值", fontsize=12)plt.legend()plt.show() |
运行后你会清晰看到:自由度越小,曲线越右偏;自由度越大,越接近对称的正态分布。
2. t分布:小样本统计的「神器」
大白话定义
t分布也叫学生t分布,是小样本、总体方差未知时,用来替代正态分布的工具。
它的形状和正态分布几乎一模一样:左右对称的钟形曲线,均值为0。唯一的区别是:t分布的「尾巴更厚」,更能扛住小样本的极端值。
它只有一个核心参数:自由度df,自由度=样本量-1。
•样本量越小(自由度越小),t分布的尾巴越厚,和正态分布差距越大
•样本量越大(自由度>30),t分布就和正态分布几乎完全重合了
最常用的3个场景
这是日常分析用得最多的分布,一定要记住:
1.单样本t检验:检验样本均值和指定值有没有差异(比如检验药品实际重量是否达标)
2.两独立样本t检验:检验两组数据的均值有没有差异(比如吃药组和安慰剂组的疗效差异)
3.配对样本t检验:检验同一组对象前后的差异(比如患者治疗前后的指标变化)
Python一键生成+画图
咱们把t分布和标准正态分布画在一起,一眼看出区别:
Python# 生成t分布数据:自由度分别为3、10、30,各10000个样本np.random.seed(20)t_df3 = np.random.standard_t(df=3, size=10000)t_df10 = np.random.standard_t(df=10, size=10000)t_df30 = np.random.standard_t(df=30, size=10000)# 生成标准正态分布做对比norm_data = np.random.standard_normal(size=10000)# 画图plt.figure(figsize=(8, 5))sns.kdeplot(norm_data, label='标准正态分布', color='black', linestyle='--')sns.kdeplot(t_df3, label='t分布 df=3')sns.kdeplot(t_df10, label='t分布 df=10')sns.kdeplot(t_df30, label='t分布 df=30')plt.title("t分布 vs 标准正态分布", fontsize=14)plt.xlabel("数值", fontsize=12)plt.legend()plt.show() |
运行后一目了然:自由度越大,t分布越贴近正态分布,完美验证了咱们的结论。
3. F分布:检验「方差/多组均值」的神器
大白话定义
F分布,就是两个独立的卡方分布,分别除以各自的自由度,再相除,得到的分布。
因为是两个卡方分布相除,所以它有两个核心参数:分子自由度df1、分母自由度df2。和卡方分布一样,F分布的数值永远是正数,曲线呈右偏分布。
最常用的3个场景
1.方差齐性检验:检验两组数据的方差是否相等(做t检验前必须做的步骤)
2.方差分析(ANOVA):检验三组及以上数据的均值有没有差异(比如三种不同疗法的疗效有没有差异)
3.线性回归模型的显著性检验:检验回归模型整体有没有用
Python一键生成+画图
Python# 生成F分布数据,不同自由度组合,各10000个样本np.random.seed(30)f_5_10 = np.random.f(dfn=5, dfd=10, size=10000) # 分子自由度5,分母自由度10f_10_10 = np.random.f(dfn=10, dfd=10, size=10000) # 分子自由度10,分母自由度10f_10_20 = np.random.f(dfn=10, dfd=20, size=10000) # 分子自由度10,分母自由度20# 画图plt.figure(figsize=(8, 5))sns.kdeplot(f_5_10, label='F分布 df1=5, df2=10')sns.kdeplot(f_10_10, label='F分布 df1=10, df2=10')sns.kdeplot(f_10_20, label='F分布 df1=10, df2=20')plt.title("不同自由度的F分布", fontsize=14)plt.xlabel("数值", fontsize=12)plt.legend()plt.show() |
三、一张表总结:三大分布核心区别&适用场景
怕大家记混,我给大家整理了一张极简对比表,收藏起来,用的时候看一眼就懂!
分布 | 核心特点 | 核心参数 | 最常用场景 |
卡方分布(χ²) | 仅正数,右偏分布 | 自由度df | 分类数据的拟合优度检验、独立性检验、单总体方差检验 |
t分布 | 对称钟形,尾巴比正态分布厚 | 自由度df | 小样本均值检验、单/两样本t检验、配对样本t检验 |
F分布 | 仅正数,右偏分布 | 分子自由度df1、分母自由度df2 | 方差齐性检验、方差分析(多组均值对比)、回归显著性检验 |
第六天学习总结
恭喜你!今天把统计学三大抽样分布全部拿下了!核心就3点:
1.三大分布全是正态分布的衍生款,专门解决「抽样推断」的问题;
2.每个分布都有明确的适用场景,不用死记公式,记住「什么时候用」就赢了;
3.Python一行代码就能生成对应分布,画图一眼看懂形状特点。
搞懂这三个分布,后面的假设检验、方差分析,对你来说就是小菜一碟了!
下期预告
明天Day7,咱们正式进入区间估计实战!教你用样本数据,推断总体均值、总体比例的真实范围,比如用100个患者的试验数据,推断这款药对所有患者的有效率范围,依旧是大白话+Python保姆级代码,咱们不见不散!
清华大学数学科学系-东门