<<目次へ


対数線形モデルの回帰分析



 Y = a * b ^ Xという対数線形モデルにおいて、パラメータa,bを推定する。

> X <- c(1:5)
> Y <- c(7, 20, 55, 157, 450)
> t.Y <- log(Y) #Yを対数変換し
> result.tY <- lm(t.Y ~ X) #線形モデルとして分析
> result.tY

Call:
lm(formula = t.Y ~ X)

Coefficients:
(Intercept)            X  
     0.9067       1.0387

> result.Y <- nls(Y ~ a * b ^ X, start=c(a=0.9067, b=1.0387)) #lm()で得られた値を初期値として設定
> result.Y
Nonlinear regression model
  model:  Y ~ a * b^X 
   data:  parent.frame() 
    a     b 
2.352 2.860 
 residual sum-of-squares: 0.7701

Number of iterations to convergence: 11 
Achieved convergence tolerance: 3.1e-08 

 最終的に以下の関数式が得られる。

Y = 2.352 + 2.860 ^ X

 これを当てはめると下図のようになる。

> plot(X, Y, col="green", pch=19)
> X.jiku <- seq(1,5,0.01)
> points(X.jiku, 2.352 * 2.860 ^ X.jiku, pch=".")