【发布时间】:2019-11-21 03:12:48
【问题描述】:
我在这里的第一个问题。这个问题已经从我的生活中偷走了很多天。我知道,这并不重要,但同时:我需要知道!我知道有很多很好的回归公式。但是当我尝试使用古老的算术来掌握它的窍门时,我在测试版上得到了荒谬的答案。
Beta 向量应该是 (X'X)^(-1)X'y(其中 X 是回归矩阵,y 是答案向量)。我举一个例子(它不适合 OLS 是无关紧要的 - 我只想要 b:s 这里):
X <- matrix(1:10)
y <- matrix(2:11)
b <- (t(X) %*% X)^(-1) %*% t(X) %*% y
这给出 b = 1.142857,而 summary(lm(y~X)) 给出 beta = 1 和截距 1。我向 X 添加一个常数以获得截距:X
【问题讨论】:
-
正确的语法是
b <- solve(t(X) %*% X) %*% t(X) %*% y,因为solve给出了矩阵的逆矩阵t(X)%*%X
标签: r regression