2011-07-23 60 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