ロジスティック曲線へのあてはめ
下記のようなデータがあったときに、このデータの成長がどこで頭打ちになるかを調べる。
x | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 |
y | 2.9 | 5.2 | 9.1 | 15.5 | 25 | 37.8 | 52.6 | 66.9 | 78.6 | 87 | 92.4 | 95.7 | 97.6 | 98.6 | 99.2 |
x <- 1:15 y <- c(2.9, 5.2, 9.1, 15.5, 25, 37.8, 52.6, 66.9, 78.6, 87, 92.4, 95.7, 97.6, 98.6, 99.2) plot(x,y)
> f = data.frame(x=x, y=y) > f x y 1 1 2.9 2 2 5.2 3 3 9.1 4 4 15.5 5 5 25.0 6 6 37.8 7 7 52.6 8 8 66.9 > ans = nls(y~SSlogis(x, a, b, c), f) > ans Nonlinear regression model model: y ~ SSlogis(x, a, b, c) data: f a b c 99.890 6.824 1.663 residual sum-of-squares: 0.003256 Number of iterations to convergence: 1 Achieved convergence tolerance: 1.863e-08
求められた定数a,b,c に対して、
元のデータ
x <- 1:15 y <- c(2.9, 5.2, 9.1, 15.5, 25, 37.8, 52.6, 66.9, 78.6, 87, 92.4, 95.7, 97.6, 98.6, 99.2) x2 = 1:15 y2 = SSlogis(x, 99.89, 6.824, 1.663) plot(x, y) par(new=T) plot(x2, y2, type="l")
x3=1:100 y3 = SSlogis(x3, 99.89, 6.824, 1.663) plot(x3, y3, type="l")
このようにして、xが100まで行った時の曲線の様子を描画することができます。
18くらいの段階での成長が頭打ちになることが予測されます。