2012-04-12 236 views
1

我一直無法讓MATLAB根據2-D散點圖泄漏最小二乘迴歸線的斜率和截距。這看起來應該比實際情況要容易一些,但是MATLAB爲迴歸提供的所有現有工具都傾向於假設我正在做比我想要做的更復雜的事情。我應該能夠從像lsline這樣的工具中獲得它,但是IDE使用源代碼難以獲得。有沒有人知道一個快速和骯髒的方式來做到這一點?如何獲得MATLAB中最小二乘迴歸直線的斜率和截距?

回答

1

您是否只試圖從散點圖中直觀地估計迴歸?如果沒有,您可以使用polyfit()函數來獲得您的估計值。或者更好,只需編寫你自己的功能。如果您創建1的列,然後將您的獨立軸變量放入相鄰的列中,並調用該矩陣X,並將您的因變量存儲在名爲Y的列向量中,則只需計算beta = (X'*X)\(X'*Y)beta的第一個條目給出了截距,隨後的條目給出了迴歸變量的係數。

+0

我已經得到了源數據 - 我遇到的麻煩與我平常的來源是他們似乎假設我知道向量b的值在開始方程式A * x = b中。如果我知道計算A的僞逆並用它來獲得最小二乘參數估計是相當簡單的。但是直到我知道b是什麼(或者在你的例子中是Y),我不知道我該怎麼做。 – estanford 2012-04-12 21:19:17

+2

'Y'只是因變量的向量(無論你放在散點圖的y軸上)。如果你有源數據,它應該隱含在那個數據中'Y'是什麼。人們通常忘記的部分是用一列一列來增加'A'矩陣,這就是讓你計算截取項以及其他係數的權利。 – ely 2012-04-12 21:49:23

+0

您可以使用更簡單的公式來計算'beta':'beta = X \ Y'。 MATLAB將自動以最小二乘意義解決這個問題。 – m7913d 2017-05-06 17:08:41