2012-10-03 43 views
5

こんにちは、scipy.polyfit関数で計算される勾配と切片の誤差を計算したいと思います。私はydataについて(+/-)不確実性を持っているので、それを勾配と迎撃に不確実性を計算するためにどのように含めることができますか?私のコードは、あなたがscipy.optimize.curve_fit代わりのpolyfitを使用することができ、多項式近似(勾配と切片)の誤差を計算する方法

from scipy import polyfit 
import pylab as plt 
from numpy import * 

data = loadtxt("data.txt") 
xdata,ydata = data[:,0],data[:,1] 


x_d,y_d = log10(xdata),log10(ydata) 
polycoef = polyfit(x_d, y_d, 1) 
yfit = 10**(polycoef[0]*x_d+polycoef[1]) 


plt.subplot(111) 
plt.loglog(xdata,ydata,'.k',xdata,yfit,'-r') 
plt.show() 

どうもありがとう

答えて

4

です。 ydataのエラーにはパラメータsigmaがあります。あなたが順序yerror内のすべてのy値のためのあなたのエラーを持っている場合(yerrorあなたy_dシーケンスと同じ長さを有するように)あなたが行うことができます。代替のために

polycoef, _ = scipy.optimize.curve_fit(lambda x, a, b: a*x+b, x_d, y_d, sigma=yerror) 

はべき乗則にフィッティング段落を見ますエラーのデータはScipy Cookbookにあります。

+0

返信いただきありがとうございます。はい、私はその法則関数を見ましたが、私の+/-エラーとydataをどのように組み合わせることができますか?たとえば、私のydataは、Y = 5(+0.1、-0.4)、4.7(+ 0.7、-0.4)、..などのように見えます。 –

+0

@viralparekh値の非対称な偏差がありますか?前にそれを見たことはありません:)正の偏差が負の値と異なる理由を少し詳しく説明できますか? – halex

+0

信頼領域を示します。したがって、最初のY値は(5.09と4.59)の間にあります。 + ve(high)と-ve(low)のエラーが表示されます。 –

関連する問題