R中的非线性LAD回归

时间:2018-08-26 15:06:24

标签: r non-linear-regression

我想用LAD回归估计非线性回归模型的参数。本质上,LAD估计器是M估计器。据我所知,不可能使用robustbase包来做到这一点。如何使用R进行LAD回归?我可以使用标准包装吗?

1 个答案:

答案 0 :(得分:0)

您可以使用内置的optim()函数

整理一些数据(确保x为正数,以便使a*x^b有意义-将负数提高为小数幂是有问题的):

set.seed(101)
a <- 1; b <- 2
dd <- data.frame(x=rnorm(1000,mean=7))
dd$y <- a*dd$x^b + rnorm(1000,mean=0,sd=0.1)

定义目标函数:

objfun <- function(p) {
  pred <- p[1]*dd$x^p[2]   ## a*x^b
  sum(abs(pred-dd$y))      ## least-absolute-deviation criterion
}

测试目标函数:

objfun(c(0,0))
objfun(c(-1,-1))
objfun(c(1,2))

优化:

o1 <- optim(fn=objfun, par=c(0,0), hessian=TRUE)

您确实需要指定起始值,并亲自处理任何数值/计算问题...

我不确定我是否知道如何计算标准误差:您可以使用sqrt(diag(solve(o1$hessian))),但我不知道它所基于的标准理论是否仍然适用...