从r中的X和y生成值beta的向量的函数

我想编写一个函数,从 X 和 y 生成 beta 值的向量,我们得到

β = [(X^T)*X]^-1 * (X^T) * y

我写了一个这样的代码,但它把错误变成了 Error in t(X) * X : non-conformable arrays

请帮我解决一下这个。

代码:

set.seed(143)
X <- cbind(rep(1,50), rnorm(50,0,1), rnorm(50,0,1))
y <- 3 + -4*X[,2] + 2*X[,3] + rnorm(50,0,1)

BetaEstimator <- function(X, y){
Beta <- solve(t(X)*X) * t(X) * y
  return(Beta)}
BetaEstimator(X,y)

回答

您应该使用矩阵乘法的表示法,即使用%*%代替*

尝试:

BetaEstimator <- function(X, y) {
  solve(t(X) %*% X) %*% t(X) * y
}


以上是从r中的X和y生成值beta的向量的函数的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>