我试图理解以下链接线性回归系数beta0和beta1的计算y = beta0 + beta1 x。
我理解beta1的第一次计算,这实际上是一个简单的最小二乘回归,但只有一个参数要找到(斜率系数)?
在"事故"的例子中,为什么他们在x数组中添加一列1来计算两个系数:
X = [ones(length(x),1) x];
b = Xy
结果:b =
1.0e+02 *
1.427120171726537
0.000001256394274
这列1的底层计算是什么?
如果有人能给我解释一下。
这更像是注释。但我不允许这样做,所以写作为一个答案。
他们正在添加一列,使其适合矩阵乘法。有y = beta0 + beta1*x
。在矩阵乘法形式下,它可以写成:y = [1 x]* [beta0 beta1]'
。请注意矩阵上的转置符号。
由于我不知道的原因,在Matlab和r中鼓励对变量进行向量化。据我所知,向量化有望减少资源消耗。
1通常用来表示"偏见"。在您的情况下,尝试可视化这个等式:
y = w1 * x + c
加1表示另一个输入,但总是1。
y = w1 * x1 + c * x2(which is 1)
因此,为了对含有常数(偏差)的方程进行建模,需要在输入中添加常数。
因为在方程y = beta0 + beta1 * x中,beta0隐式地乘以1。换句话说,考虑与 (x,y)对:
y[i] = beta0 + beta1 * x[i]
= beta0 * 1 + beta1 * x[i]
对任意i乘以a0的1就是1向量的来源