python对数据做对数正态分布拟合
时间: 2023-06-01 20:06:54 浏览: 644
python做数据拟合
很高兴回答你的问题!对于这个问题,可以使用 Python 中的 SciPy 库来进行对数正态分布拟合。具体实现可以参考以下代码:
```python
import numpy as np
from scipy.stats import lognorm
import matplotlib.pyplot as plt
# 生成数据
data = np.random.lognormal(mean=2, sigma=0.5, size=1000)
# 拟合对数正态分布
shape, loc, scale = lognorm.fit(data)
# 绘制拟合结果
x = np.linspace(min(data), max(data), 1000)
pdf = lognorm.pdf(x, shape, loc, scale)
plt.plot(x, pdf, 'r-', label='lognormal pdf')
plt.hist(data, bins=50, density=True, alpha=0.5)
plt.legend()
plt.show()
```
这段代码中,`data` 是一个数据数组,使用 `lognorm.fit(data)` 进行对数正态分布拟合,返回该分布的参数 `shape`、`loc` 和 `scale`。然后,通过 `lognorm.pdf(x, shape, loc, scale)` 可以计算出分布函数的概率密度函数,最后可用 `plt.plot()` 绘制出来。
阅读全文