Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python-用Maxwell分布绘制置信误差条_Python_Numpy_Scipy - Fatal编程技术网

Python-用Maxwell分布绘制置信误差条

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 =

我从未尝试过基于置信区间实现错误条。因为这就是我想要做的,我不确定如何继续下去

我有一个大型数据阵列,由大约1000个元素组成。从绘制包含这些数据的直方图来看,它看起来很像麦克斯韦-玻尔兹曼分布

假设我的数据称为
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%。你不会从中得到点误差条。但即使得到拟合参数的实际置信区间,也只能得到拟合模型的两(一)个参数的估计值。我想你能做的就是看看这些拟合参数的置信区间,然后绘制拟合密度的上下曲线。然后我可能又错了,我怀疑这个问题的大部分都是关于这个主题的。你应该检查一下。