2011-07-23 16 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; 

私はMathWorks社のMATLABで2-VARの回帰を作りたいが、これを行う方法を知りませんが、することができます誰かが私を助け?線形または多項式の回帰の結果は、この2つのクラス間の線であり、yに格納されていなければなりません。

+0

あなたの前の質問への答えだった: http://stackoverflow.com/q/6796316/811335 は役に立ちましたか? –

+0

はい、それは問題でしたが、私はmatlabの初心者であり、私は英語が分かりません。だから私はいくつかの助けが必要です。 – Yekver

+0

あなたのpolyfit機能を試しましたか?例えば、 y = polyfit(x1、x2,1) –

答えて

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:まず質問を洗練してください(または新しい質問をしてください)。あなたの質問が分類に関連しているという示唆はありません。単純なアドホックな解決策は 'y_hat = round([x_1 x_2] * b); y_hat(y_hat <1)= 1; y_hat(y_hat> 2)= 2; '。ありがとう – eat