哈喽各位小伙伴!我是你们的统计学+Python零露老师~
上一期咱们把t检验的三大核心用法全部拿下,搞定了「均值类数据」的差异检验。但日常论文、工作里,我们还会遇到三类高频问题:
(1)比例类数据:新药有效率是否达到行业标准?
(2)波动类数据:药品灌装的重量波动,是否符合质量要求?
(3)分类数据:医院男女患者比例,是否和理论预期一致?
今天咱们就一次性搞定这三个问题:单总体比例检验、单总体方差检验、卡方检验入门,全程大白话,无复杂公式,代码直接复制就能用,小白看完就会!
一、单总体比例检验:检验比例是否达标
大白话定义
和单样本t检验逻辑完全一致,只不过t检验比均值,它比比例:检验「一组样本的比例,和指定的标准比例,有没有显著差异」。
比如:
(1)药企说新药有效率≥80%,抽查100名患者,72人有效,检验是否真的达标;
(2)平台说活动转化率≥5%,抽查2000次曝光,85人转化,检验是否达标。
核心判断规则
和之前完全统一,小白只记这一条:
p<0.05 → 和标准值有显著差异;p≥0.05 → 无显著差异
Python实战!双场景代码
第一步:先导入工具库(必须先运行!)
Pythonfrom scipy import statsimport numpy as np |
场景1:医学实战-新药有效率是否达标
药企宣称新药的总体有效率≥80%,临床试验中120名患者用药后,90人治疗有效,检验该药是否达到宣称的有效率标准。
Python# 1. 填入数据:有效人数、总样本量、标准有效率valid_count = 90 # 有效人数total_n = 120 # 总样本量standard_rate = 0.8 # 宣称的标准有效率# 2. 单总体比例检验(z检验)z_stat, p_value = stats.proportions_ztest(count=valid_count, nobs=total_n, value=standard_rate, alternative='less')# alternative='less':检验样本比例是否低于标准值# 3. 计算样本有效率sample_rate = valid_count / total_n# 4. 结果解读print(f"✅ 样本有效率:{sample_rate:.2%}")print(f"✅ p值:{p_value:.6f}")if p_value < 0.05:print("�� 结论:p<0.05,拒绝原假设,该药有效率显著低于80%的宣称标准,未达标")else:print("�� 结论:p≥0.05,不能拒绝原假设,没有足够证据证明该药有效率未达标") |
场景2:非医学实战-产品合格率检验
工厂宣称产品合格率≥95%,质检抽查200件产品,188件合格,检验是否达标,只需修改代码里的3个核心数字,直接套用即可。
二、单总体方差检验:检验数据波动是否达标
大白话定义
也叫卡方方差检验,核心是检验「一组样本的方差/标准差,和指定的标准方差,有没有显著差异」,专门用来判断数据的波动/稳定性是否符合要求。
我们之前学过,方差/标准差代表数据波动:
(1)药品灌装重量波动太大,就是质量不合格;
(2)患者住院天数波动太大,说明诊疗流程不稳定。
核心判断规则
还是统一标准:p<0.05 → 波动和标准有显著差异;p≥0.05 → 无显著差异
Python实战!双场景代码
场景1:医学实战-检验体温测量仪的稳定性
医院要求体温测量仪的测量标准差≤0.1℃(波动不能太大),用该仪器测量同一标准体温源20次,得到测量数据,检验仪器是否符合稳定性要求。
Python# 1. 测量数据:20次测量的体温值temp_data = [36.52, 36.48, 36.51, 36.49, 36.50,36.53, 36.47, 36.51, 36.49, 36.50,36.52, 36.48, 36.50, 36.49, 36.51,36.53, 36.47, 36.50, 36.48]standard_std = 0.1 # 标准要求的最大标准差standard_var = standard_std ** 2 # 标准方差# 2. 计算样本统计量n = len(temp_data)sample_var = np.var(temp_data, ddof=1) # 样本方差# 3. 单总体方差检验(卡方检验)chi2_stat = (n - 1) * sample_var / standard_varp_value = 1 - stats.chi2.cdf(chi2_stat, df=n-1) # 单侧检验,看是否超过标准# 4. 结果解读print(f"✅ 样本标准差:{np.sqrt(sample_var):.4f}℃")print(f"✅ 标准要求最大标准差:{standard_std}℃")print(f"✅ p值:{p_value:.6f}")if p_value < 0.05:print("�� 结论:p<0.05,拒绝原假设,仪器测量波动显著超过标准,不符合要求")else:print("�� 结论:p≥0.05,不能拒绝原假设,没有足够证据证明仪器稳定性不达标") |
场景2:非医学实战-饮料灌装重量波动检验
工厂要求饮料灌装重量的标准差≤2ml,抽查20瓶饮料的实际容量,检验是否符合质量标准,直接修改数据套用即可。
三、卡方检验入门:拟合优度检验
大白话定义
卡方检验是专门处理分类数据的检验神器,今天入门先学最基础的拟合优度检验:检验「实际数据的分布,和理论预期的分布,有没有显著差异」。
比如:
(1)理论上医院男女患者比例应该是1:1,实际是不是符合?
(2)超市4种口味的饮料,理论上销量占比相同,实际有没有差异?
核心逻辑
对比「实际出现的次数(实际频数)」和「理论预期的次数(理论频数)」的差异,差异越大,卡方值越大,p值越小。
核心判断规则
还是统一标准:p<0.05 → 实际分布和理论分布有显著差异;p≥0.05 → 无显著差异
Python实战!双场景代码
场景1:医学实战-患者血型分布是否符合人群规律
已知中国人群血型分布理论占比:A型30%、B型25%、O型35%、AB型10%。某医院统计了200名住院患者的血型,检验该院患者的血型分布,是否符合普通人群的规律。
Python# 1. 数据:实际频数、理论占比actual_count = [58, 52, 75, 15] # 实际A型、B型、O型、AB型的人数theory_ratio = [0.3, 0.25, 0.35, 0.1] # 理论占比total_n = sum(actual_count)theory_count = [ratio * total_n for ratio in theory_ratio] # 理论频数# 2. 卡方拟合优度检验chi2_stat, p_value = stats.chisquare(f_obs=actual_count, f_exp=theory_count)# 3. 结果解读print(f"✅ 实际频数:{actual_count}")print(f"✅ 理论频数:{[round(x,1) for x in theory_count]}")print(f"✅ p值:{p_value:.6f}")if p_value < 0.05:print("�� 结论:p<0.05,拒绝原假设,该院患者血型分布和普通人群理论分布有显著差异")else:print("�� 结论:p≥0.05,不能拒绝原假设,没有足够证据证明该院患者血型分布不符合人群规律") |
场景2:非医学实战-商品销量分布检验
超市4款零食,预期销量占比相同,统计一周销量分别为120、110、135、115,检验实际销量和预期分布是否有差异,直接修改数据套用即可。
一张表总结:今天3种检验怎么选?
小白直接收藏,用的时候看一眼就不会错!
检验类型 | 核心适用场景 | 核心对比对象 | Python核心函数 |
单总体比例检验 | 检验样本比例是否符合指定标准 | 比例vs 标准比例 | stats.proportions_ztest |
单总体方差检验 | 检验数据波动/稳定性是否符合标准 | 方差vs 标准方差 | 卡方统计量+stats.chi2.cdf |
卡方拟合优度检验 | 检验分类数据的实际分布是否符合理论预期 | 实际频数vs 理论频数 | stats.chisquare |
第十一天学习总结
恭喜你!今天又解锁了3个假设检验核心技能,把假设检验的适用场景从「均值类数据」拓展到了「比例类、波动类、分类数据」:
(1)单总体比例检验:搞定比例达标问题;
(2)单总体方差检验:搞定数据波动/稳定性问题;
(3)卡方拟合优度检验:搞定分类数据的分布匹配问题;
(4)核心判断规则全程统一:p<0.05就是差异显著,代码直接复制套用。
下期预告
明天Day12,咱们进阶卡方检验的核心用法:独立性检验+列联表分析,教你检验两个分类变量有没有相关性,比如「吸烟和患肺病有没有关系」「不同营销方案的转化率有没有差异」,依旧是大白话+Python保姆级代码,咱们不见不散!
✨ 粉丝福利
1.关注公众号,Day12更新第一时间推送!
2.评论区扣【11】,免费领取今天的全套可直接运行的代码文件!
3.有任何不懂的地方,评论区留言,我一一解答!清华大学数学科学系-东门