小编g3l*_*3lo的帖子

如何在R中进行约束回归

假设我有一个简单的回归方程

lm(y~., newdata=df)

我知道如果我想把截距减少到0,我写

lm(y+0., newdata=df)

然而,有没有一种方法可以产生逐步回归,同时将每个系数限制在特定范围内?例如:

step(lm(y~.>1000, newdata=df)

上面的方法不起作用,但是有没有办法说生成一个基本上产生最佳拟合并强制每个系数大于 1,000 的回归?或者,小于指定范围。

#as per Gautam    
minfunc <- function(coefs){
      out <- sum(sapply(3:314, function(z) return(coefs[z]*test2[, z])))
      return(out)
    }


    par = c(1, 1, 30) # initial value
    lb = c(-1, -1, -300000) # lower bound for coefs
    ub = c(30, 30, 30000) # upper bound 

    result <- hjkb(par = par, fn = minfunc, lower = lb, upper = ub)
Run Code Online (Sandbox Code Playgroud)

谢谢你,

regression r

5
推荐指数
1
解决办法
3529
查看次数

标签 统计

r ×1

regression ×1