2
データに累積ガウス分布を近似しようとしていますが、フィットは明らかに間違っています。なぜ私は間違った手段と標準偏差を得ていますか?下に私のコードと出力があります。累積ガウスフィットの正しいパラメータをどのように見積もりますか?
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm
testrefratios=np.array([ 0.2, 0.4, 0.6, 0.8, 0.9, 1. , 1.1, 1.2, 1.4, 1.6, 1.8])
Pn_final=np.array([ 0. , 0. , 0.03 , 0.35 , 0.47, 0.57 , 0.68, 0.73, 0.76 , 0.85 , 0.91])
Pd_final=np.array([ 0. , 0.03, 0.36 , 0.85 , 0.97, 0.98 , 0.98 , 0.99 , 1., 1., 1. ])
# cumulative gaussian fit
fg = plt.figure(1); fg.clf()
ax = fg.add_subplot(1, 1, 1)
t = np.linspace(0,2, 1000)
ax.grid(True)
ax.set_ylabel("Cumulative Probability Density")
ax.set_title("Fit to Normal Distribution")
mu1,sigma1 = norm.fit(Pn_final) # classical fit
ax.plot(t, norm.cdf(t, mu1, sigma1), alpha=.5)
mu1,sigma1 = norm.fit(Pd_final) # classical fit
ax.plot(t, norm.cdf(t, mu1, sigma1), alpha=.5)
ax.plot(testrefratios, Pn_final, 'bo',label='numerosity comparison')
ax.plot(testrefratios, Pd_final, 'ro', label='density comparison')
plt.legend(loc='lower right')
fg.canvas.draw()
出力:現時点では
これは、 'Pn_final'と' Pd_final'値を経験的なcdf値として扱います。 – ayhan
ありがとう、これは完璧です。 – galliwuzz