No.17311 Re: 関数のあてはめ 【青木繁伸】 2012/08/18(Sat) 06:34
simplex 法での当てはめにおいて,plot.flag=TRUE を指定してあるので,当てはめ結果の図が表示されたと思いますが,それを見てどう思いましたか?
何通りかの答えが出ても,見た目は同じような曲線(直線に近いが)が表示されたと思いますが?
x=1970〜2000 の範囲で,得られたパラメータの推定値で 横軸を x,縦軸に exp((x+a4)/a3) を描くと,どのような場合でもほとんど直線になります。相関係数を求めるとほとんど 1 ということになりますね。従って実際には y = a1+a2*x の直線回帰をしているのとほとんど同じになります。この観点からいえば,「この程度の違いは【このモデル式を採用する限りは】許容範囲」ということになる でしょう。
a1〜a4 のパラメータ全部を使ってあてはめをした場合には,わずかに「上に凸」の曲線になりますね。しかし,実際のデータは「下に凸」のようです。これではちゃん と当てはまる(パラメータが妥当に推定できる)ということはないでしょう。なぜこのモデル式が出てきたのか分かりませんが,もしデータに合うような任意の 曲線でよければ,下に凸であるモデル式を探索した方がよいでしょう。例えば,以下のような曲線によくフィットします。ans <- nls(y~a*b^(x-1970)+c, data=d, start=list(a=1, b=0.9,c=1))
x2 <- seq(1970, 2000, length=100)
nd <- data.frame(x=x2)
y2 <- predict(ans, nd)
plot(d)
lines(x2, y2)
No.17316 Re: 関数のあてはめ 【マッカラン】 2012/08/18(Sat) 12:23
ご回答,ありがとうございました。
確かに当てはめた結果の図はほぼ同じでした。若干,凸の度合いが違うときもありましたが。
あと,どうしてこの関数を当てはめようとしたかですが,これは死亡率予測モデルの一種で,yは死亡率の改善度を表しています。
(いわゆるLee-Carterモデルのktです)
平均寿命は今後も改善していくという考えと,改善は穏やかになるという考えがあるため,指数関数と対数関数を当てはめて,その和半で将来の死亡率を予想しようとするモデルです。
対数関数の当てはめは"nls"で求めることができたので,今回の書き込みでは省略しておりました。
ただし,データをみると明らかな下に凸なので,モデルどおり和半するのがいいのかも含めて,もう少し検討してみます。
ありがとうございました。
● 「統計学関連なんでもあり」の過去ログ--- 045 の目次へジャンプ
● 「統計学関連なんでもあり」の目次へジャンプ
● 直前のページへ戻る