我试着理解以下链接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
这一列的基础计算是什么?
如果有人能向我解释。
答案 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就是那些矢量来自的地方。