【发布时间】:2021-06-16 16:18:15
【问题描述】:
我正在研究 Weibull 分布。我已经估计了我的数据的参数,并且得到了概率图。如以下代码所示,在概率图上,我“粘贴”了我获得的参数值。
但是,还有其他方法可以将它们附加到情节上吗?
另一个问题是:我怎样才能得到一个具有轴'x'上不超过的概率和轴'y'上的变量,而这反过来,我包括带有三个参数的 weibull 调整。我正在寻找的情节是这样的(或类似的)。
下面是我写的python代码:
from matplotlib import pyplot as plt
import pandas as pd
import numpy as np
plt.style.use('classic')
%matplotlib inline
import seaborn as sns
from scipy.stats import exponweib, probplot as pp, weibull_min
import probscale
from probscale.viz import probplot as pp_scale, plot_pos
import statsmodels.distributions
from scipy.optimize import fmin
import statsmodels.api as sm
datos = pd.read_csv('01_ATN_ACCE_his_1985_2005.csv')
Hs = datos['Hs']
plt.hist(Hs, density = True, alpha = 0.5, bins=45)
shape, loc, scale = weibull_min.fit(Hs)
x = np.linspace(Hs.min(), Hs.max(), 500)
plt.plot(x, weibull_min(shape, loc, scale).pdf(x))
plt.xlabel("Hs (m)")
plt.ylabel("%")
plt.title("Ajuste Weibull sobre Hs")
fig, ax= plt.subplots(figsize=(12,6))
pp(Hs, dist = weibull_min(shape, loc, scale), fit=True, plot=ax, rvalue=True)
plt.text(0.5,7,'A=', fontsize=14)
plt.text(0.7,7,'{0:.2f}'.format(scale), fontsize=14)
plt.text(0.5, 6.5, 'B=', fontsize=14)
plt.text(0.7,6.5,'{0:.2f}'.format(loc), fontsize=14)
plt.text(0.5, 6, 'C=', fontsize=14)
plt.text(0.7,6,'{0:.2f}'.format(shape), fontsize=14)
ax.get_children()[2].set_fontsize(14)
ax.get_children()[2].set_position((0.5,5.5))
【问题讨论】:
标签: python statsmodels weibull