矩阵乘以标量时的不一致误差
Non-conformability error in multiplication of a matrix by a scalar
我不明白为什么会出现以下不符合性错误:
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))
我不明白为什么会出现以下不符合性错误:
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))