【问题标题】:OLS Estimator FunctionOLS 估计函数
【发布时间】:2014-04-30 19:38:39
【问题描述】:

我正在尝试在 R 中重建 lm() 函数作为练习。这是我目前正在使用的代码(你会看到函数中唯一的 return() 值是 b,但是一旦我修复了整个函数,我会改变它):

OLS <- function(y,X){
    df <- nrow(X) - ncol(X);
    b <- solve(t(X) %*% X) %*% (t(X) %*% y);
    se_whole <- as.numeric(sqrt((t(y - X %*% b)%*%(y - X %*% b))/df));
    se_beta <- se_whole * solve(t(X) %*% X);
    return(b)
    }

当我运行该函数时,我得到的 b 只是一个 NA 的列向量。为什么会这样?我认为这与我在函数中对 b 的定义有关,但我似乎无法弄清楚我哪里出错了。也许有人可以启发我!

谢谢!

【问题讨论】:

  • yX 为函数提供了什么?
  • 它对我有用:with(mtcars, OLS(mpg, cbind(1, wt))); lm(mpg ~ wt, data = mtcars)

标签: r function na lm


【解决方案1】:

我应用了您的代码,它似乎对我有用。但是,为什么只返回 b?你对s.e不感兴趣吗?也一样?

以下站点逐步在 R 中手动派生 OLS。总的来说,代码似乎是相同的。

http://economictheoryblog.com/2016/02/20/rebuild-ols-estimator-manually-in-r

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-11-25
    • 2017-11-29
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 1970-01-01
    • 2016-11-30
    相关资源
    最近更新 更多