当前位置:首页>python>【Python】第七天:区间估计入门!手把手教你算总体均值的置信区间,附 代码

【Python】第七天:区间估计入门!手把手教你算总体均值的置信区间,附 代码

  • 2026-09-04 23:10:45
【Python】第七天:区间估计入门!手把手教你算总体均值的置信区间,附 代码

哈喽各位小伙伴!我是你们的统计学+Python保姆级老师~

上一期咱们搞定了三大抽样分布,今天咱们正式进入推断统计学的第一个实战技能:区间估计。

很多小白做统计,只会算个样本均值,就直接当成总体的真实情况,这其实大错特错!今天就教你,怎么用手里的样本数据,精准推断出总体真实值的范围——也就是置信区间。全程大白话,附可直接复制的Python代码,小白跟着做就会!

一、大白话讲透:什么是区间估计?为什么一定要学?

先举个最直观的例子,一秒懂核心:

你统计了科室里20名患者的住院天数,算出来平均住院6.5天。你能直接说「全院所有患者的平均住院天数就是6.5天」吗?肯定不能!换20个患者,结果可能就变成5天、7天,这个单一的数字根本不靠谱。

这里就引出了两个核心概念:

1.点估计:用样本均值(6.5天)直接猜总体均值,只有一个数字,准不准全看运气,没有任何严谨性。

2.区间估计:给这个数字加一个靠谱的范围,比如「我们有95%的把握,全院患者的平均住院天数在5.2天~7.8天之间」。

(1)这个范围,就是置信区间

(2)95%,就是行业最常用的置信水平(偶尔也会用90%、99%)

一句话总结:区间估计,就是给你的统计结果加一个「严谨的波动范围」,让你的结论不会被人挑错,也是写论文、做数据分析的必备技能!

二、小白必记:总体均值区间估计的极简规则

不用背复杂公式,就记住这2条,日常99%的场景都够用:

(1)大样本(样本量n≥30):直接用z分布(正态分布)算置信区间,不管总体标准差知不知道

(2)小样本(样本量n<30):99%的真实场景里,总体标准差都是未知的,直接用t分布算(就是上一期学的t分布,直接用上了)

补充一个小白不用背的知识点:95%置信水平对应的z临界值约1.96,这个不用记,Python会自动帮我们算。

三、Python实战!手把手教你算置信区间

代码超简单,我给大家写好了一个通用的自定义函数,你不用改内部代码,只需要填样本数据就能直接出结果,小白零压力!

第一步:导入工具库+写通用计算函数

新建代码框,复制下面的代码直接运行:

Pythonimport numpy as npimport scipy.statsfrom scipy import stats as sts# 通用函数:计算总体均值的置信区间def mean_conf_interval(data, confidence_coef=0.95):"""data:你的样本数据confidence_coef:置信水平,默认95%,不用改return:置信区间下限、上限"""n = len(data) # 样本量mean = np.mean(data) # 样本均值std = sts.tstd(data, ddof=1) # 样本标准差alpha = 1 - confidence_coef # 显著性水平# 自动判断用z分布还是t分布if n >= 30:# 大样本用z分布score = scipy.stats.norm.isf(alpha / 2)print(f"大样本,使用z分布,临界值:{score:.2f}")else:# 小样本用t分布score = scipy.stats.t.isf(alpha / 2, df = n-1)print(f"小样本,使用t分布,临界值:{score:.2f}")# 计算边际误差和置信区间me = score * std / np.sqrt(n)lower_limit = mean - meupper_limit = mean + mereturn round(lower_limit, 2), round(upper_limit, 2)

运行后没有报错,函数就准备好了,后面直接调用就行!

场景1:医学实战-患者住院天数的置信区间(小样本t分布)

临床最常见的小样本场景:我们抽取了20名内科患者的住院天数,想推断全院内科患者的平均住院天数的95%置信区间。

新建代码框,复制运行:

Python# 1. 样本数据:20名患者的住院天数hospital_days = [4,6,7,5,8,10,6,7,5,9,3,5,8,6,7,4,11,6,7,8]# 2. 调用函数,计算置信区间conf_interval = mean_conf_interval(hospital_days)mean_days = np.mean(hospital_days)# 3. 打印结果+大白话解读print(f"✅ 样本平均住院天数:{mean_days:.2f}天")print(f"✅ 总体均值95%置信区间:{conf_interval}")print(f"�� 解读:我们有95%的把握,全院内科患者的平均住院天数,在{conf_interval[0]}天到{conf_interval[1]}天之间")

运行后你会得到清晰的结果,直接就能用在论文、工作报告里!

场景2:非医学实战-电商用户客单价的置信区间(大样本z分布)

运营最常用的大样本场景:我们抽取了50名用户的单次消费金额,想推断全平台用户的平均客单价的95%置信区间。

新建代码框,复制运行:

Python# 1. 样本数据:50名用户的消费金额spend_money = [89,159,299,99,199,359,129,259,79,189,69,219,399,119,169,279,89,149,99,229,109,179,249,139,199,329,79,169,119,209,99,189,269,129,219,369,89,159,109,239,119,199,289,149,229,349,99,179,129,219]# 2. 调用函数,计算置信区间conf_interval = mean_conf_interval(spend_money)mean_money = np.mean(spend_money)# 3. 打印结果+大白话解读print(f"✅ 样本平均客单价:{mean_money:.2f}元")print(f"✅ 总体均值95%置信区间:{conf_interval}")print(f"�� 解读:我们有95%的把握,全平台用户的平均客单价,在{conf_interval[0]}元到{conf_interval[1]}元之间")

第七天学习总结

恭喜你!今天彻底搞定了区间估计的核心技能,核心就3点:

1.区间估计是给样本均值加一个「靠谱范围」,比单点估计严谨100倍;

2.记住极简规则:大样本用z分布,小样本用t分布,Python自动帮你判断;

3.通用函数直接调用,填数据就能出结果,写论文、做报告直接用!

下期预告

明天Day8,咱们会搞定总体比例的区间估计,比如用100个患者的试验数据,推断新药对所有患者的有效率范围;用用户点击数据,推断全平台的广告点击率范围,依旧是大白话+Python保姆级代码,咱们不见不散!

最新文章

随机文章