グネグネしすぎると外れ値の影響がすっごくひびいちゃうな。グネグネしすぎないほうがいいな。この2つの条件はトレードオフの関係にあります。トレードオフとはどちらか片方を良くすればもう片方が悪くなるということです。いう貴重な知見を見失ってしまいます。そこで、「どのくらいグネグネにするか」を決めたうえで、その「グネグネ度」に従って「ほどほどにニョロニョロ」な線を引っ張ることになります。みにグネグネ度のことは平滑化パラメータと呼ばれます。)グネグネ度(平滑化パラメータ)を推定するでは、ちょうど良いグネグネ度はどのようにして見つければよいのでしょうか。(GCV)を使います。GCVはちょっと難しいのでCVについて説明します。CVのやり方はすごく単純です。そのときまずは1番目のデータを取り除いた状態でモデルを作ります。作られたモデルでさっき除外していた1番目のデータを予測する。その予測誤差を求める。次は2番目のデータを除外してモデルを作ってからそのモデルを使って2番目のデータを予測する。対してやっていき、最終的に求められる予測誤差、これが小さいモデルが良いモデルだとみなします。補間の悪い点として「21度の時に桜が咲いていたのは今年だけかもしれない。そんな状況を無視して予測してしまう」というのがありました。手持ちのデータを信頼しすぎてしまっていたんですね。テストしてやることで「未知データへの予測精度」をある程度高められるモデルを作ることができるだろうということです。Rによる平滑化スプライン実際にRでやってみます。やり方はいろいろあるんですが、今回はmgcvというパッケージを使います。パッケージをダウンロードした後で、library(mgcv)としてやれば準備OKです。いうものを使いました。6というような環境データです。これを用いてTempでOzoneを予測するモデルを作ってみます。平滑化スプラインgam()というのは後で説明する加法モデルを推定する関数ですが、平滑化スプラインもできるので、まとめてこれでやってしまいます。計算はとても簡単で1行で済んでしまいます。書き方も線形回帰の時とほとんど同じです。s()がついていると平滑化をしてくれます。ついていないと単なる線形回帰と同じことをします。やっても同じ結果が得られます。中身を取り出してみます。116線形回帰をやった時には傾きが約2.43となっていました。気温が高くなるとオゾンも高くなるようです。