[R] Robust nonlinear regression - better example
Spencer Graves
spencer.graves at pdf.com
Tue Feb 3 00:05:42 CET 2004
1. The question of "linear" vs. "nonlinear" means "linear in the
parameters to be estimated. All the examples you have given so far are
linear in the parameters to be estimated. The fact that they are
nonlinear in "x" is immaterial.
2. With this hint and the posting guide
"http://www.R-project.org/posting-guide.html", you may find more
information. A search there exposed much discussion of "robust
regression" and even "robust nonlinear regression", if you actually
still need that. In addition, I found useful information on robust
regression in Venables and Ripley (2002) Modern Applied Statistics with
S, 4th ed. (Springer).
hope this helps.
spencer graves
cstrato wrote:
> Dear all
>
> Here is a hopefully better example with regards to
> nonlinear robust fitting:
>
> # fitting a polynomial:
> x <- seq(-10,10,0.2)
> y <- 10*x + 4*x*x - 2*x*x*x
> plot(x,y)
> z <- jitter(y,amount=300)
> plot(x,z)
> df <- as.data.frame(cbind(x,z))
> nf <- nls(z ~ a*x + b*x*x + c*x*x*x, data=df,
> + start=list(a=4,b=2,c=1), trace = TRUE)
> 127697531 : 4 2 1
> 2974480 : 10.972123 3.793426 -1.942278
>
> # introducing outliers before fitting the polynomial:
> z1 <- z
> z1[c(16,22,23,34,36,42,67,69,72,76)] <-
> + c(2000,1900,2000,1900,1600,1600,500,-2000,-1700,-1800)
> plot(x,z1)
> df1 <- as.data.frame(cbind(x,z1))
> nf1 <- nls(z1 ~ a*x + b*x*x + c*x*x*x, data=df1,
> + start=list(a=4,b=2,c=1), trace = TRUE)
> 159359174 : 4 2 1
> 24098548 : -59.053288 4.169518 -1.072027
>
> # plotting the results:
> y1 <- 10.97*x + 3.79*x*x - 1.94*x*x*x
> y2 <- -59.05*x + 4.17*x*x - 1.07*x*x*x
> oldpar <- par(pty="s",mfrow=c(2,2),mar=c(5,5,4,1))
> plot(x,y)
> plot(x,z1)
> plot(x,y1)
> plot(x,y2)
> par(oldpar)
>
> In my opinion this fit could hardly be considered
> to be robust.
>
> Are there functions in R which can do robust fitting?
> (Sorrowly, at the moment I could not test the package
> nlrq mentioned by Roger Koenker)
>
> Best regards
> Christian
> _._._._._._._._._._._._._._._._
> C.h.i.s.t.i.a.n S.t.r.a.t.o.w.a
> V.i.e.n.n.a A.u.s.t.r.i.a
> _._._._._._._._._._._._._._._._
>
> ______________________________________________
> R-help at stat.math.ethz.ch mailing list
> https://www.stat.math.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide!
> http://www.R-project.org/posting-guide.html
More information about the R-help
mailing list