私はいくつかの同様の質問があることを知っていますが、それらのどれも私をさらに持ち込まなかったので、私は自分のものを尋ねることにしました。 私の問題への回答がすでにどこかにある場合は申し訳ありませんが、本当に見つけられませんでした。scipy.optimzeからのcurve_fitの問題
私はcurve_fitを使用して、むしろ線形データにf(x)= a * x ** bを当てはめてみました。それは、正しくコンパイルが、下に示すような結果が道オフです:
事は、私は本当に私がやっているかわからないが、常にフィット一方では、より多くのであること、です科学よりも芸術であり、少なくとも1つの一般bug with scipy.optimizeがあった。
は私のデータは次のようになります。
x値:
[16.8, 2.97, 0.157, 0.0394, 14.000000000000002, 8.03, 0.378, 0.192, 0.0428, 0.029799999999999997, 0.000781, 0.0007890000000000001]
y値を:最後の回答で本当にいいの例を使用して私のコード(だ
[14561.766666666666, 7154.7950000000001, 661.53750000000002, 104.51446666666668, 40307.949999999997, 15993.933333333332, 1798.1166666666666, 1015.0476666666667, 194.93800000000002, 136.82833333333332, 9.9531566666666684, 12.073133333333333]
def func(x,p0,p1): # HERE WE DEFINE A FUNCTION THAT WE THINK WILL FOLLOW THE DATA DISTRIBUTION
return p0*(x**p1)
# Here you give the initial parameters for p0 which Python then iterates over to find the best fit
popt, pcov = curve_fit(func,xvalues,yvalues, p0=(1.0,1.0))#p0=(3107,0.944)) #THESE PARAMETERS ARE USER DEFINED
print(popt) # This contains your two best fit parameters
# Performing sum of squares
p0 = popt[0]
p1 = popt[1]
residuals = yvalues - func(xvalues,p0,p1)
fres = sum(residuals**2)
print 'chi-square'
print(fres) #THIS IS YOUR CHI-SQUARE VALUE!
xaxis = np.linspace(5e-4,20) # we can plot with xdata, but fit will not look good
curve_y = func(xaxis,p0,p1)
開始値はgnuplotとの適合からですが、それはもっともらしいですが、私はクロスチェックする必要があります。
これは、印刷出力(最初のP0、P1、その後、カイ二乗を装備)です、私はこれは難しい質問だと思い事前のため、多くのおかげで
[ 4.67885857e+03 6.24149549e-01]
chi-square
424707043.407
!
フィッティングcurve_fit
は和最適化
「シグマ」を使用していただきありがとうございました。私はそれがa)重要ではないと思っていたので、以前はそれを使用していませんでした。そして、b)xvaluesのエラーです。 (なぜ私は 'xvalues'にエラーのパラメータがないのですか?) また、推定誤差1は設計上の欠陥で、' 0.1 * value'のようなものが好きです。同意しますか?あなたはバグ報告を提出する価値があると思いますか?ご挨拶 – Fabi
実際には、コード内で私にとって最も驚きのないパスは、エラーが与えられなければエラーが一定であると仮定すべきです。それは通常、あなたが望むものでしょう。 [ドキュメントもここではっきりしています](http://docs.scipy.org/doc/scipy-0.17.0/reference/generated/scipy.optimize.curve_fit.html) –
わかりません。先験的には違いはないので、ポイントがどれほど重要であるかに影響を与えない方法でなければならないと私は常に考えていました。あなたは知っていますか? – Fabi