Python将分布拟合为钟形曲线

Python将分布拟合为钟形曲线,python,numpy,scipy,Python,Numpy,Scipy,我正在研究一个预测模型。我的模型预测并不总是以标准分布的形式出现。我想变换或拟合分布值,使分布适合钟形曲线。这就像我想要一种转换函数,它将我的分布转换成钟形曲线(不一定是标准化的) 例如,我的发行版如下所示: 请注意,分布有点偏斜,并非完全标准/钟形曲线 以下是我希望该发行版的外观: 注意:这也不是完美的分布,只是更接近 注意:我并没有试图规范化这些值,只是适合分布。请注意,目标分布未规范化 我想我可以用scipy.norm或numpy的东西,但我似乎找不到我想要的东西

我正在研究一个预测模型。我的模型预测并不总是以标准分布的形式出现。我想变换或拟合分布值,使分布适合钟形曲线。这就像我想要一种转换函数,它将我的分布转换成钟形曲线(不一定是标准化的)

例如,我的发行版如下所示:

请注意,分布有点偏斜,并非完全标准/钟形曲线

以下是我希望该发行版的外观:

注意:这也不是完美的分布,只是更接近

注意:我并没有试图规范化这些值,只是适合分布。请注意,目标分布未规范化


我想我可以用
scipy.norm
numpy
的东西,但我似乎找不到我想要的东西 下面是一个例子:

import numpy as np
from scipy.stats import boxcox, gamma
import matplotlib.pyplot as plt


# Generate a random sample that is not from a normal distribution.
np.random.seed(1234)
x = gamma.rvs(1.5, size=250)

# Transform the data.
y, lam = boxcox(x)

# Plot the histograms.
plt.subplot(2, 1, 1)
plt.hist(x, bins=21, rwidth=0.9)
plt.title('Histogram of Original Data')
plt.subplot(2, 1, 2)
plt.hist(y, bins=21, rwidth=0.9)
plt.title('Histogram After Box-Cox Transformation\n($\\lambda$ = %.4g)' % lam)
plt.tight_layout()
plt.show()

要将数据拟合到正态分布,请参见此。我认为拟合不是正确的术语(它表明您需要根据数据确定钟形曲线的参数mu和sigma)。问题本身听起来更像是你想要改变发行版。