python - SciPy 偏斜法线拟合
问题描述
我正在尝试使用SciPy Skewnorm包将数据拟合到偏态正态分布中。
但是,由于找不到有关此问题的适当文档或示例,因此我无法正确理解其用法。
在帮助部分,我找到了Documentation并尝试使用skewnorm.fit()
withskewnorm.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)
输出:
解决方案
这是一个帮助您入门的示例。
>>> 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
推荐阅读
- visual-studio-code - 如何使VSCode中2个面板之间的边框永久可见?
- python - python文件路径未定义名称错误
- msal - MSAL-React 在应用程序中动态切换用户流
- python - 基于多列的熊猫数据框分组和百分比
- java - 按列表中的多个枚举值对对象列表进行分组
- html - 如何使用 CSS 在输入焦点上显示 div?
- r - 安捷伦微阵列数据分析 :: 文件错误(文件,“r”):无法打开连接
- amazon-web-services - 验证 AWS API Gateway Websocket 后端调用
- google-apps-script - 根据模板创建新的 Google 工作表并将数据从主工作表导出到新创建的工作表
- roomle - 如果模型有类似玻璃的材料,Roomle 模型会从地板上掉下来