2011-07-23 62 views
0

我有這組變量:Matlab的多元迴歸

N = 250; 

% independent variables[0..10] 
x_1 = rand(N,1) * 10; 
x_2 = rand(N,1) * 10; 

y = ones(N,1); % regresssion variable 

y((x_1 + x_2 + rand(N,1) * 2) <= 11) = 2; 

我希望有兩個-VAR迴歸在MATLAB中,但不知道如何做到這一點,有人可以幫助我嗎?線性或多項式迴歸的結果必須是這兩個類之間的線,存儲在y中。

+0

是回答你剛纔的問題: http://stackoverflow.com/q/6796316/811335 有用嗎? –

+0

是的,這是,但問題是,我是一個matlab新手,我不懂英文閱讀書,它會花很多時間,至少我沒有。這就是爲什麼我需要一些幫助。 – Yekver

+0

做了你的嘗試polyfit功能嗎?例如, y = polyfit(x1,x2,1) –

回答

1

一個或多個「獨立」變量,它是相同的。只是作爲一個例子幾種方法來解決:

>>> X= [x_1 x_2]; 
>>> X\ y 
ans = 
    0.10867 
    0.11984 

>>> pinv(X)* y 
ans = 
    0.10867 
    0.11984 

詳見\pinv

Matlab確實有很多其他的方法來解決最小二乘。您可能想詳細說明您的具體情況,以找到最適合的情況。無論如何,上面的文檔對你來說是一個很好的起點。

編輯
least squares有價值的一般信息讀取的wikimathworks

+0

y - 這是類標籤(1或2),我認爲在沒有修改的情況下使用它是不正確的。但是我應該做些什麼修改? – Yekver

+0

@Yekver:首先請優化您的問題(或提出一個新問題)。沒有跡象表明你的問題與分類有關。一個簡單的ad hoc解決方案就像'y_hat = round([x_1 x_2] * b); y_hat(y_hat <1)= 1; y_hat(y_hat> 2)= 2;'。謝謝 – eat