首页 > 解决方案 > 从 r 中的 X 和 y 生成值向量的函数

问题描述

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

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

我这样写了一个代码,但它把错误变成了 t(X) * X 中的错误:不符合的数组

请帮我解决一下这个。

代码:

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)

标签: r

解决方案


您应该使用矩阵乘法的符号,即使用%*%代替*.

尝试:

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

推荐阅读