Matlab - 线性回归 - 通过添加一列

时间:2015-10-06 21:56:38

标签: matlab linear-regression

我试着理解以下链接linear regression关系y = beta0 + beta1 x的系数beta0和beta1的计算。

我理解beta1的第一次计算实际上是一个简单的最小二乘回归,但只有一个参数可以找到(斜率系数)?

在“事故”的例子中,为什么他们在x数组中附加一列1来计算2个系数:

X = [ones(length(x),1) x];
b = X\y

结果:

b =

   1.0e+02 *

   1.427120171726537
   0.000001256394274

这一列的基础计算是什么?

如果有人能向我解释。

3 个答案:

答案 0 :(得分:2)

这更像是评论。但我不允许这样做,所以写作答案。

他们正在添加一列,以使其适合矩阵乘法。你有y = beta0 + beta1*x。在矩阵乘法形式中,它可以写成:y = [1 x]* [beta0 beta1]'。请注意在beta矩阵上转置标志。

由于我不熟悉的原因,在Matlab和R中鼓励变量的矢量化。据我所知,矢量化有望减少资源消耗。

答案 1 :(得分:0)

经常添加一些来引入"偏见"。在您的情况下,尝试可视化此等式:

y = w1 * x + c

添加的代表另一个输入,但总是一个。

y = w1 * x1 + c * x2(which is 1)

因此,为了对具有常数(偏差)的方程进行建模,将其中一些加到输入中。

答案 2 :(得分:0)

因为在等式y = beta0 + beta1 * x中,beta0隐含地乘以1。 换句话说考虑 ith (x,y)对:

y[i] = beta0     + beta1 * x[i]
     = beta0 * 1 + beta1 * x[i]

任何 i 乘以beta0的那个1就是那些矢量来自的地方。