SciPy偏态拟合

oxf4rvwz  于 2022-11-09  发布在  其他
关注(0)|答案(2)|浏览(183)

我正在尝试使用 Scipy Skewnorm 软件包将数据拟合为偏态正态分布。
然而,我没有正确理解用法,因为我找不到关于这件事的适当文档或示例。
在帮助部分,我找到了Documentation,并试图使用skewnorm.fit()沿着skewnorm.pdf()将数据拟合到一个模型中,并使用该模型输出一个分布,并与原始数据进行比较。
如果有人能帮上忙,请告诉我。

from scipy import stats
import matplotlib.pyplot as plt
import numpy as np

# choose some parameters

a, loc, scale = 5.3, -0.1, 2.2

# draw a sample

data = stats.skewnorm(a, loc, scale).rvs(1000)

# estimate parameters from sample

ae, loce, scalee = stats.skewnorm.fit(data)

# Plot the PDF.

plt.figure()
plt.hist(data, bins=100, normed=True, alpha=0.6, color='g')
xmin, xmax = plt.xlim()
x = np.linspace(xmin, xmax, 100)
p = stats.skewnorm.pdf(x,ae, loce, scalee)#.rvs(100)
plt.plot(x, p, 'k', linewidth=2)

输出量:

f0brbegy

f0brbegy1#

下面是一个帮助您入门的示例。

>>> from scipy import stats

# choose some parameters

>>> a, loc, scale = 1.3, -0.1, 2.2

# draw a sample

>>> sample = stats.skewnorm(a, loc, scale).rvs(1000)

# estimate parameters from sample

>>> ae, loce, scalee = stats.skewnorm.fit(sample)
>>> ae
1.2495366661560348
>>> loce
-0.039775813819310835
>>> scalee
2.1126121580965536
wz8daaqr

wz8daaqr2#

我确信有一个解析的解决方案,但我只是花了一整晚的时间用遗传算法来编码这个问题的解决方案。我不熟悉遗传算法,所以我只是基于直觉-因此,我认为这个代码设法坐在两者的交叉点上是中等智能的工作,和极其愚蠢的lmfao。如果有人觉得它有用的话,我会把它推到GitHub上。图片相关--收敛于良好的分布拟合。给定众数和95%置信区间的上下限。

相关问题