为什么计算的残差在 R 函数 `lm()` 和 `lm.fit()` 之间不同
Why do calculated residuals differ between R functions `lm()` and `lm.fit()`
我正在尝试从 lm()
切换到更快的 lm.fit()
以便更快地计算大型矩阵的 r² 值。 (我认为当 x 是矩阵时我不能使用 cor()
,根据 。)
为什么lm()
和lm.fit()
计算不同的拟合值和残差?
set.seed(0)
x <- matrix(runif(50), 10)
y <- 1:10
lm(y ~ x)$residuals
lm.fit(x, y)$residuals
我无法深入 lm()
源代码来找出导致差异的原因...
来自?lm.fit
x
“应该是n * p维的设计矩阵”,其中p
是系数的个数。因此,您必须为截距传递一个向量才能获得相同的模型。
这样估计
lm.fit(cbind(1,x), y)
将给出与
相同的参数
lm(y ~ x)
我正在尝试从 lm()
切换到更快的 lm.fit()
以便更快地计算大型矩阵的 r² 值。 (我认为当 x 是矩阵时我不能使用 cor()
,根据
为什么lm()
和lm.fit()
计算不同的拟合值和残差?
set.seed(0)
x <- matrix(runif(50), 10)
y <- 1:10
lm(y ~ x)$residuals
lm.fit(x, y)$residuals
我无法深入 lm()
源代码来找出导致差异的原因...
来自?lm.fit
x
“应该是n * p维的设计矩阵”,其中p
是系数的个数。因此,您必须为截距传递一个向量才能获得相同的模型。
这样估计
lm.fit(cbind(1,x), y)
将给出与
相同的参数lm(y ~ x)