Rで何かをしたり、読書をするブログ

政府統計の総合窓口のデータや、OECDやUCIやのデータを使って、Rの練習をしています。ときどき、読書記録も載せています。

ラグビー リーグワン のデータの分析3 - GAM(Generalized Additive Model)での予測

www.crosshyou.info

の続きです。前回の線形モデルではあまり良い予測はできなかったので、今回はGAM(Generalized Additive Model)を試してみます。

まず、mgcvパッケージの読み込みをします。

学習します。

tryやpgは有意な変数ですね。

予測値と実際の値の散布図を描いてみます。

線形モデルと同じような散布図ですね。

交互作用を加えてみます。

交互作用の項、te()のところを見ると、あまり改善していないようです。

散布図を描いてみます。

気持ちよくなった程度でしょうか。。。

GAM(Generalized Additive Model)でも個人の成績からチームの順位を予測するのは難しそうです。

今回は以上です。

次回は、

www.crosshyou.info

です。

 

はじめから読むには、

www.crosshyou.info

です。

今回のコードは以下になります。

#
# GAM(Generalized Additive Model)
# パッケージの読み込み
library(mgcv)
#
# 学習
gam_mod <- gam(target ~ s(rank) + s(point) + s(game) + s(try) + s(goal) + s(pg),
               data = df)
summary(gam_mod)
#
# 予測値と実際の値の散布図
tibble(
  target = df$target,
  estimate = predict(gam_mod)
) |> 
  ggplot(aes(x = target, y = estimate)) +
  geom_point() +
  geom_abline(color = "red") +
  labs(title = "GAM") +
  theme_minimal()
#
# 交互作用を加えたモデル
gam_mod2 <- update(gam_mod, . ~ . + te(try, pg) + te(point, try) + 
                     te(point, pg), data = df)
summary(gam_mod2)
#
# 予測値と実際の値の散布図
tibble(
  target = df$target,
  estimate = predict(gam_mod2)
) |> 
  ggplot(aes(x = target, y = estimate)) +
  geom_point() +
  geom_abline(color = "red") +
  labs(title = "GAM(交互作用を加えたモデル)") +
  theme_minimal()
#

(冒頭の画像は Bing Image Creator で生成しました。プロンプトは Landscape of natural foreign vast grass field, there are a lot of red flowers and yellow flowers, close up of one large  Rhododendron degronianum flower( Azuma-Shakunage in Japanese), photo です)