У меня есть набор астрономических данных, к которым я пытаюсь подогнать кривую:
![enter image description here](https://i.stack.imgur.com/3Avyh.png)
Мой подходящий код
param = stats.norm.fit(df['delta z'].dropna()) # Fit a normal distribution to the data
pdf_fitted = stats.norm.pdf(df['delta z'], *param)
x = np.linspace(*df['delta z'].agg([min, max]), 1000) # x-values
binwidth = np.diff(edges).mean()
ax.plot(x, stats.norm.pdf(x, *param)*h.sum()*binwidth, color = 'r')
, который производит
![enter image description here](https://i.stack.imgur.com/gxxKR.png)
Теперь я явно делаю это неправильно, потому что кривая совсем не соответствует данным. Все учебники, которые я видел, такие как здесь , включают создание набора данных, и в этом случае мы уже знаем такие вещи, как среднее значение и перекос. Этот вопрос привел меня к оценке параметров с
a_estimate, loc_estimate, scale_estimate = stats.skewnorm.fit(df['delta z'])
ax.plot(x, skewnorm.pdf(x, a_estimate, loc_estimate, scale_estimate), 'r-', lw=5, alpha=0.6, label='skewnorm pdf')
, который производит
![enter image description here](https://i.stack.imgur.com/MIWLQ.png)
так как я могу построить подгонку с этими параметрами?