【发布时间】:2020-05-12 20:21:46
【问题描述】:
我正在为一个主题的最终工作做一个用于多重线性回归的 R 包,并且我已经开始计算线性回归系数。
AjusteLineal <- function(y,x){
x <- cbind(rep(1,length(x)),x)
return (solve(t(x) %*% x) %*% (t(x) %*% y))
}
x <- seq(0,30,5)
y <- c(2,1.41,1.05,0.83,0.7,0.62,0.57)
X <- cbind(x,x^2)
X
y
AjusteLineal(y,X)
这向我显示了一个警告。
[,1]
1.946904762
x -0.105571429
0.002038095
Warning message:
In cbind(rep(1, length(x)), x) :
number of rows of result is not a multiple of vector length (arg 1)
我该如何解决这个问题?我认为系数很好,但这个警告让我很困扰。
谢谢!
【问题讨论】:
-
length(x)与矩阵的prod(dim(x))相同,而我假设您想要nrow(x)。我会将cbind(rep(1,length(x)),x)更改为cbind(1, x),因为nrow(x)对于向量会失败,但cbind(1, x)可以处理简单回归和多元回归
标签: r linear-regression