73. 非線形回帰分析


非線形回帰分析

関数 nls() を用いることによって非線形回帰分析を行うことが出来る.

 
 f <- function(x) 1/(1+exp(-3-0.5*x))
 x <- seq(0,10,0.1);   y <- f(jitter(x, amount=0.2))
 ( result <- nls(y ~ a/(1+exp(-b-c*x)), start=c(a=2,b=1,c=0.1)) )

Nonlinear regression model
  model:  y ~ a/(1 + exp(-b - c * x)) 
   data:  parent.frame() 
        a         b         c 
1.0000121 3.0203203 0.4931959 

非線形混合モデルはパッケージ nlme 中の関数 nlme() で実行できる.

データに対して当てはめ曲線を描くことも出来る.

 
 predict.c <- predict(result)
 plot(x, y, ann=F, xlim=c(0,10), ylim=c(0.95,1));   par(new=T)
 plot(x, predict.c, type="l", xlim=c(0,10), ylim=c(0.95,1))