Python-用Maxwell分布绘制置信误差条
我从未尝试过基于置信区间实现错误条。因为这就是我想要做的,我不确定如何继续下去 我有一个大型数据阵列,由大约1000个元素组成。从绘制包含这些数据的直方图来看,它看起来很像麦克斯韦-玻尔兹曼分布 假设我的数据称为Python-用Maxwell分布绘制置信误差条,python,numpy,scipy,Python,Numpy,Scipy,我从未尝试过基于置信区间实现错误条。因为这就是我想要做的,我不确定如何继续下去 我有一个大型数据阵列,由大约1000个元素组成。从绘制包含这些数据的直方图来看,它看起来很像麦克斯韦-玻尔兹曼分布 假设我的数据称为x,我将其应用为拟合 import scipy.stats as stats import numpy as np import matplotlib.pyplot as plt maxwell = stats.maxwell ## Scale Parameter params =
x
,我将其应用为拟合
import scipy.stats as stats
import numpy as np
import matplotlib.pyplot as plt
maxwell = stats.maxwell
## Scale Parameter
params = maxwell.fit(x, floc=0)
print params
## mean
mean = 2*params[1]*np.sqrt(2/np.pi)
print mean
## Variance
sig = (params[1])**(3*np.pi-8)/np.pi
print sig
>>> (0, 178.17597215151301)
>>> 284.327714571
>>> 512.637498406
当绘制它时,它将被复制到哪个位置
fig = plt.figure(figsize=(7,7))
ax = fig.add_subplot(111)
xd = np.argsort(x)
ax.plot(x[xd], maxwell.pdf(x, *params)[xd])
ax.hist(x[xd], bins=75, histtype="stepfilled", linewidth=1.5, facecolor='none', alpha=0.55, edgecolor='black',
normed=True)
你到底是如何用曲线拟合来确定置信区间的
我可以用
conf = maxwell.interval(0.90,loc=mean,scale=sig)
>>> (588.40702793225228, 1717.3973740895271)
但是我不知道这有什么用我相信你的
sig
可能关闭了,它看起来非常大。如果我理解正确,maxwell.interval
将为您的x
数据(参见您的绘图)提供一个范围,其中随机变量下降的概率为90%。你不会从中得到点误差条。但即使得到拟合参数的实际置信区间,也只能得到拟合模型的两(一)个参数的估计值。我想你能做的就是看看这些拟合参数的置信区间,然后绘制拟合密度的上下曲线。然后我可能又错了,我怀疑这个问题的大部分都是关于这个主题的。您应该检查一下。我相信您的sig
可能已关闭,它似乎很大。如果我理解正确,maxwell.interval
将为您的x
数据(参见您的绘图)提供一个范围,其中随机变量下降的概率为90%。你不会从中得到点误差条。但即使得到拟合参数的实际置信区间,也只能得到拟合模型的两(一)个参数的估计值。我想你能做的就是看看这些拟合参数的置信区间,然后绘制拟合密度的上下曲线。然后我可能又错了,我怀疑这个问题的大部分都是关于这个主题的。你应该检查一下。