0
x = [1970:1:2000]
y = [data]
size(x) = [30,1]
size(y) = [30,1]
我想:
% Yl = kx + m, where
[k,m] = polyfit(x,y,1)
出於某種原因,我必須使用 「迴歸」 這一點。
使用k = regress(x,y)給出了一些完全隨機的值,我不知道它來自哪裏。它怎麼樣?
x = [1970:1:2000]
y = [data]
size(x) = [30,1]
size(y) = [30,1]
我想:
% Yl = kx + m, where
[k,m] = polyfit(x,y,1)
出於某種原因,我必須使用 「迴歸」 這一點。
使用k = regress(x,y)給出了一些完全隨機的值,我不知道它來自哪裏。它怎麼樣?
您在「k」中獲得的輸出數量取決於輸入X的大小,因此只需將x和y直接放入,就不會同時得到m
和k
。從文檔:
b = regress(y,X)爲y中的預測變量的y中的響應的多線性迴歸返回係數估計值的p-1向量b。X是n-在n個觀測值中的每一個觀測值處的p個預測值的逐個p矩陣。 y是觀察到的響應的n乘1矢量。
它並沒有完全說明,但幫助文檔中使用carsmall
內置數據集的示例向您展示瞭如何設置它。對於你的情況,你會想:那麼
X = [ones(size(x)) x]; % make sure this is 30 x 2
b = regress(y,X); % y should be 30 x 1, b should be 2 x 1
b(1)
應該是你m
,並b(2)
你k
。
regress
還可以提供額外的輸出,如置信區間,殘差統計數據,如R平方等輸入保持不變,你只需要改變輸出:
[b,bint,r,rint,stats] = regress(y,X);
如果你看看在['regress'](http://www.mathworks.com/help/stats/regress.html)的文檔中,它表示適當的形式是'k = regress(y,X)'。你確定你在使用正確的表單嗎?另外,你怎麼知道它是一個完全隨機的價值? – darthbith