正态分布样本置信区间求解及Jupyter可视化技术问询
正态分布样本置信区间的测试与可视化
我来帮你完善这段用于测试正态分布样本置信区间的代码,并且拆解关键步骤,确保你能在Jupyter Notebook里顺利运行并看到可视化结果:
完整可运行代码
%matplotlib notebook import pandas as pd import numpy as np import statsmodels.stats.api as sms import matplotlib.pyplot as plt # 生成服从标准正态分布的样本(2000个数据点) s = np.random.normal(0, 1, 2000) # 以下是另外两个可测试的样本(取消注释即可切换) # s = range(10,14) # 此样本具有正确的CI # s = (0,0,1,1,1,1,1,2) # 此样本具有正确的CI # 计算95%置信区间 conf_int = sms.DescrStatsW(s).tconfint_mean() # 绘制样本分布与置信区间 plt.figure(figsize=(10,6)) # 绘制样本的直方图 plt.hist(s, bins=30, alpha=0.5, label='样本分布') # 绘制置信区间的竖线 plt.axvline(conf_int[0], color='red', linestyle='--', label=f'95%置信下限: {conf_int[0]:.2f}') plt.axvline(conf_int[1], color='green', linestyle='--', label=f'95%置信上限: {conf_int[1]:.2f}') # 绘制样本均值线 plt.axvline(np.mean(s), color='blue', label=f'样本均值: {np.mean(s):.2f}') plt.title('正态分布样本的95%置信区间可视化') plt.xlabel('样本值') plt.ylabel('频数') plt.legend() plt.show()
代码关键部分解释
%matplotlib notebook:让Jupyter Notebook里的图表变成交互式的,方便缩放、平移查看细节sms.DescrStatsW(s).tconfint_mean():利用statsmodels库计算样本的t分布置信区间(当样本量足够大时,t分布近似正态分布,结果完全适用于正态分布场景)- 可视化部分:用直方图展示样本分布,用不同颜色的虚线标记置信上下限,蓝色实线标记样本均值,让置信区间的位置和样本分布的关系一目了然
你可以切换注释里的不同样本,对比查看不同数据分布下的置信区间变化~
内容的提问来源于stack exchange,提问作者Matthew May
相关产品推荐
相关产品推荐

