r——矩阵与标量相乘时的不一致性误差



我不明白为什么我在以下内容中出现不一致性错误:

data(mtcars)
x <- as.matrix(subset(mtcars, select = -c(disp)))
x <- cbind(x,rep(1, times = nrow(x)))
y <- as.matrix(mtcars$disp)
beta <- solve(t(x) %*% x) %*% t(x) %*% y
ehat <- y - x %*% beta
Var_OLS = ((1/(nrow(x) - ncol(x))) * (t(ehat) %*% ehat)) * (solve(t(x) %*% x))

术语((1/(nrow(x) - ncol(x))) * (t(ehat) %*% ehat))是标量。(solve(t(x) %*% x))本身运行良好。这是怎么回事?

((1/(nrow(x) - ncol(x))) * (t(ehat) %*% ehat))是矩阵,(solve(t(x) %*% x))也是矩阵。这里应用了矩阵乘法的规则。由于它不能满足它们,所以会得到不一致数组错误。

((1/(nrow(x) - ncol(x))) * (t(ehat) %*% ehat))更改为向量,因为它只有1个值,并且应该可以工作。

Var_OLS = ((1/(nrow(x) - ncol(x))) * (t(ehat) %*% ehat))[, 1] * (solve(t(x) %*% x))

最新更新