2015-01-03 31 views
5

不確定我使用簡單polyfit 2階,以適應樣本數據的行:查找polyfit

np.polyfit(x, y, 2) 

它返回係數。

現在我想找到擬合線的不確定性,並試圖用cov參數,返回的3x3協方差矩陣:

np.polyfit(x, y, 2, cov=True) 

但我不知道如何計算其根據的不確定性,我谷歌搜索應該通過平方協方差矩陣的對角線來計算。

回答

4

這個問題由P.H.的"Estimating Errors in Least-Squares Fitting"解決。 Richter,1995年,TDA進展報告42-122。

從報表中,這一段可能已經足夠你

一審上述考慮,即確定 一個或多個擬合參數的誤差,具有在 方面給出一個簡單的答案擬合的協方差矩陣的對角元素,並且是公知的。

對角線元素您感興趣的是例如:

x = linspace(0,1,1000) 
# comment and uncomment the last term to see how the fit appears in the figure, 
# and how the covariances of the single polynomial coefficients vary in turn. 
y = cos(x)*x**2+x+sin(x-1.) #+(x*1.3)**6 
p,cov = polyfit(x,y,2,cov=True) 
plot(x,y,'b') 
plot(x,polyval(p,x),'r') 
print sqrt(diag(cov)) 

在一般更多,參考地址此錯誤在多項式係數怎麼也因變量y的誤差作爲函數的自變量x。從報告:

這是本文的討論上面的錯誤,並在 特別呈現的結果,將允許一個來確定合適的 標準誤差爲獨立的功能爲目的變量, 以及建立這些錯誤的置信限度。