対数線形モデルの回帰分析
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=".")