6

我用線性擬合擬合一些數據。我想重量誤差棒。到目前爲止,我一直在使用鬥牛犬fitting.py。他們的linear_fit使加權線性迴歸非常容易。不幸的是,我正在使用的數據在X和Y方向都有錯誤。帶有多個誤差線的Python線性擬合

我想知道,實際上(在Python中)和理論上(在統計學上)如何做到這一點。

+2

理論上,這是[總最小二乘](http://en.wikipedia.org/wiki/Total_least_squares) - 稱爲[Deming regression](http://en.wikipedia.org/wiki/Deming_regression)in 2變量的情況。 – tiwo 2012-08-01 02:17:30

回答

3

有兩個選擇:

  1. scipy.optimize.leastsq(爲total least squares
  2. scipy.odr(爲Deming regression)。

這兩種解決方案都將解決X和Y方向上的獨立誤差(odr中的scld數組)。

+1

leastsq如何在x和y方向上獲取錯誤。我找不到參數。 – sauerburger 2013-09-05 19:43:41

+0

是xtol嗎?抱歉,我真的應該改進這個答案來舉個例子。 – 2013-09-05 20:08:14

+0

我認爲xtol只是一個很小的值來決定何時停止算法。我想它只適用於scipy.odr。 – sauerburger 2013-09-05 20:14:14

0

您可以使用scipy.optimize.fmin()函數(see this example)來最小化計算x方向和y方向上的平方偏差的評價函數(您必須定義)。

+0

以上由Stefano Messina提供的示例鏈接已被打破。 – Rohit 2013-07-09 17:38:29

+0

@aging_gorrila對不起,我不知道爲什麼,我修復了這個鏈接,現在它帶到了scipy.optimize教程頁面。 – 2013-07-17 09:50:46