问题陈述-变量X的平均值为15,标准差为2。
介于8和17之间的X值的最小百分比是多少?
我知道68-95-99.7的经验法则。我在谷歌上发现,1.5标准差以内的值的百分比为86.64%。到目前为止,我的代码如下:
import scipy.stats
import numpy as np
X=np.random.normal(15,2)据我所知,
13-17在具有68%值的1个标准偏差内。
9-21将是具有99.7%值的3个标准差。
7-23是4个标准差。所以8比平均值低3.5标准差。
如何找到从8到17的值的百分比?
发布于 2021-03-27 21:39:56
你基本上想知道从x1=8到x2=17的概率密度函数(PDF)下的面积。
你知道PDF的面积是积分,所以它是累积密度函数(CDF)。
因此,要找到x的两个特定值之间的面积,您需要对这两个值之间的PDF进行积分,这相当于做CDFx2 - CDFx1。
所以,在python中,我们可以这样做
import numpy as np
import scipy.stats as sps
import matplotlib.pyplot as plt
mu = 15
sd = 2
# define the distribution
dist = sps.norm(loc=mu, scale=sd)
x = np.linspace(dist.ppf(.00001), dist.ppf(.99999))
# Probability Density Function
pdf = dist.pdf(x)
# Cumulative Density Function
cdf = dist.cdf(x)然后密谋去看一看
fig, axs = plt.subplots(1, 2, figsize=(12, 5))
axs[0].plot(x, pdf, color='k')
axs[0].fill_between(
x[(x>=8)&(x<=17)],
pdf[(x>=8)&(x<=17)],
alpha=.25
)
axs[0].set(
title='PDF'
)
axs[1].plot(x, cdf)
axs[1].axhline(dist.cdf(8), color='r', ls='--')
axs[1].axhline(dist.cdf(17), color='r', ls='--')
axs[1].set(
title='CDF'
)
plt.show()

因此,我们想要的值是面积,我们可以计算为
cdf_at_8 = dist.cdf(8)
cdf_at_17 = dist.cdf(17)
cdf_between_8_17 = cdf_at_17 - cdf_at_8
print(f"{cdf_between_8_17:.1%}")这就给了84.1%。
https://stackoverflow.com/questions/65982154
复制相似问题