python 计算置信区间,Python求解正态分布置信区间

这篇博客介绍了如何使用Python的SciPy库计算正态分布的置信区间,并通过Matplotlib绘制正态分布的密度曲线。文中展示了具体代码,包括生成随机数据、计算平均值和标准差、确定置信水平以及绘制曲线,同时解释了正态分布的置信区间规律,如68-95-99.7法则。
摘要由CSDN通过智能技术生成

Python求解正态分布置信区间

正态分布和置信区间

正态分布(Normal Distribution)又叫高斯分布,是一种非常重要的概率分布。其概率密度函数的数学表达如下:

$$f(x) = \frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(x - \mu)^2}{2\sigma^2}}$$

当$\mu=0​$,$\sigma = 1​$时,称为标准正太分布。

置信区间是对该区间能包含未知参数的可置信的程度的描述。

使用SciPy求解置信区间import numpy as np

import matplotlib.pyplot as plt

from scipy import stats

N = 10000

x = np.random.normal(0, 1, N)

# ddof取值为1是因为在统计学中样本的标准偏差除的是(N-1)而不是N,统计学中的标准偏差除的是N

# SciPy中的std计算默认是采用统计学中标准差的计算方式

mean, std = x.mean(), x.std(ddof=1)

print(mean, std)

# 计算置信区间

# 这里的0.9是置信水平

conf_intveral = stats.norm.interval(0.9, loc=mean, scale=std)

print(conf_intveral)

输出如下:

0.0033541207210673997 0.9986647964318905

(-1.639303291798682, 1.6460115332408163)

这里的-1.639303291798682是置信上界,1.6460115332408163是置信下界,两个数值构成的区间就是置信区间

使用Matplotlib绘制正态分布密度曲线# 绘制概率密度分布图

x = np.arange(-5, 5, 0.001)

# PDF是概率密度函数

y = stats.norm.pdf(x, loc=mean, scale=std)

plt.plot(x, y)

plt.show()

这里的pdf()函数是Probability density function,就是本文最开始的那个公式

最后的输出图像如下,可以看到结果跟理论上的正太分布还是比较像的:

6fdd5292ed887a3e06756b38f020f882.png

正态分布置信区间规律

函数曲线下68.268949%的面积在平均数左右的一个标准差范围内

函数曲线下95.449974%的面积在平均数左右两个标准差的范围内

函数曲线下99.730020%的面积在平均数左右三个标准差的范围内

函数曲线下99.993666%的面积在平均数左右四个标准差的范围内

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 步骤如下: 1. 计算样本均值和样本标准差: $$ \bar{x} = \frac{1.40+1.50+1.38+1.89+0.5+1.46+1.81+1.33+0.50+1.09}{10} = 1.28 $$ $$ s = \sqrt{\frac{\sum_{i=1}^{n}(x_i-\bar{x})^2}{n-1}} = 0.498 $$ 2. 计算置信区间的边界值: 对于95%置信度,可以查找正态分布的累积分布函数,得到$\alpha/2=0.025$时的z值为1.96。因为样本数较小,可以使用t分布,查表得到自由度为9时,$\alpha/2=0.025$时的t值为2.262。 对于90%置信度,$\alpha/2=0.05$时的z值为1.645,自由度为9时,$\alpha/2=0.05$时的t值为1.833。 因此,95%置信度的置信区间为: $$ \bar{x} \pm \frac{t_{\alpha/2}(n-1)s}{\sqrt{n}} = 1.28 \pm \frac{2.262 \times 0.498}{\sqrt{10}} = (1.00, 1.56) $$ 90%置信度的置信区间为: $$ \bar{x} \pm \frac{t_{\alpha/2}(n-1)s}{\sqrt{n}} = 1.28 \pm \frac{1.833 \times 0.498}{\sqrt{10}} = (1.05, 1.51) $$ 因此,μ的95%置信区间为(1.00, 1.56),90%置信区间为(1.05, 1.51)。 ### 回答2: 首先,我们需要计算样本的平均值和标准差。观测值如下: 1.40,1.50,1.38,1.89,0.5,1.46,1.81,1.33,0.50,1.09。 计算样本平均值: (1.40 + 1.50 + 1.38 + 1.89 + 0.5 + 1.46 + 1.81 + 1.33 + 0.50 + 1.09) / 10 = 1.39 计算样本标准差: sqrt(((1.40-1.39)^2 + (1.50-1.39)^2 + (1.38-1.39)^2 + (1.89-1.39)^2 + (0.5-1.39)^2 + (1.46-1.39)^2 + (1.81-1.39)^2 + (1.33-1.39)^2 + (0.50-1.39)^2 + (1.09-1.39)^2) / (10-1)) = sqrt(0.3924) = 0.6264 对于置信度为95%的置信区间,我们需要计算正态分布的临界值。由于样本容量为10,自由度为9。对于95%的置信度,左右两侧各有2.5%的概率分布,因此临界值为1.96。 计算95%置信区间上限: 1.39 + (1.96 * 0.6264 / sqrt(10)) = 1.39 + 0.3442 = 1.7342 计算95%置信区间下限: 1.39 - (1.96 * 0.6264 / sqrt(10)) = 1.39 - 0.3442 = 1.0458 因此,μ的95%置信区间为(1.0458, 1.7342)。 对于置信度为90%的置信区间,临界值为1.645。 计算90%置信区间上限: 1.39 + (1.645 * 0.6264 / sqrt(10)) = 1.39 + 0.3085 = 1.6985 计算90%置信区间下限: 1.39 - (1.645 * 0.6264 / sqrt(10)) = 1.39 - 0.3085 = 1.0815 因此,μ的90%置信区间为(1.0815, 1.6985)。 ### 回答3: 首先,根据题目要求,我们需要构造μ的置信度为95%和90%的置信区间置信度为95%和90%意味着我们希望置信区间包含真实的均值μ的概率分别为95%和90%。 1. 首先,计算样本的均值x̄和标准差s: 样本均值:x̄ = (1.40 + 1.50 + 1.38 + 1.89 + 0.5 + 1.46 + 1.81 + 1.33 + 0.50 + 1.09) / 10 = 1.43 样本标准差:s = √((1.40 - 1.43)² + (1.50 - 1.43)² + (1.38 - 1.43)² + (1.89 - 1.43)² + (0.5 - 1.43)² + (1.46 - 1.43)² + (1.81 - 1.43)² + (1.33 - 1.43)² + (0.50 - 1.43)² + (1.09 - 1.43)²) / (10 - 1) = 0.482 2. 根据正态分布置信度的要求,我们需要计算临界值,即z临界。 对于95%置信度,临界值z临界为1.96。 对于90%置信度,临界值z临界为1.645。 3. 构造置信区间。 95%置信度的置信区间为:(x̄ - z * (s/√n), x̄ + z * (s/√n)) = (1.43 - 1.96 * (0.482/√10), 1.43 + 1.96 * (0.482/√10)) = (1.43 - 0.741, 1.43 + 0.741) = (0.689, 2.171) 90%置信度的置信区间为:(x̄ - z * (s/√n), x̄ + z * (s/√n)) = (1.43 - 1.645 * (0.482/√10), 1.43 + 1.645 * (0.482/√10)) = (1.43 - 0.634, 1.43 + 0.634) = (0.796, 2.064) 综上所述,根据观测值构造的正态分布均值μ的置信度为95%的置信区间为(0.689, 2.171),90%的置信区间为(0.796, 2.064)。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值