R 中的非线性 LAD 回归

Nonlinear LAD regression in R

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

您可以使用内置的 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)

定义objective函数:

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

测试objective函数:

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

优化:

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

您确实需要指定起始值,并自行处理任何 numerical/computational 问题...

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