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

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

2010年から2024年のプロ野球の成績のデータの分析 6 - 試合巧者のチームはどこか?

www.crosshyou.info

の続きです。

前回の分析で、勝率 = 0.25 + 0.04 * 安打数 + 0.09 + 本塁打数 + 0.06 * 盗塁数 + 0.01 * 奪三振数 - 0.07 * 失点数 というモデルを推計しました。

今回はこのモデルで推定した勝率と実際の勝率を比較して、モデルの推定値よりも実際の勝率が良いチーム、その反対に悪いチームはどこかを調べてみましょう。

est_win_rateがモデルで予測した勝率で、spreadが実際の勝率と予測の勝率の差です。

spreadの値がプラスということは、実際の勝率がモデルの予測よりもよい、ということです。

では、一番、spreadが大きなチーム・年はどれかみてみます。

2011年の東京ヤクルトスワローズが一番ですね。予測では勝率は 0.414しかないのに、実際は0.543と勝ち越ししています。

その反対に、spreadが一番小さいチーム・年はどこでしょうか?

2010年の広島東洋カープが一番spreadが小さいです。モデルの予測では0.556なのに、実際の勝率は0.408しかありませんでした。上位陣は2010年のセリーグのチームですね。

中日ドラゴンズ以外の5チームが顔を出しています。

今度は、チームごとの平均値で比べてみます。

いま、気がつきましたが、ベイスターズは、横浜DeNAベイスターズと横浜ベイスターズという2つの名前があったのですね。

千葉ロッテマリーンズがspreadの平均値が一番大きいですね。

千葉ロッテマリーンズは、安打数、本塁打数、盗塁数、奪三振数、失点数のわりには勝率が高く、試合巧者といえるかもしれません。

今回は以上です。

次回は

www.crosshyou.info

です。

 

はじめから読むには、

www.crosshyou.info

です。

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

#
# 実際の勝率とモデル予測の勝率を合わせる
df <- df |> 
  mutate(est_win_rate = predict(lm_r,newdata = df)) |> 
  mutate(spread = win_rate - est_win_rate) |> 
  relocate(team, win_rate, est_win_rate, spread)
df
#
# spreadが一番大きなチーム・年
df |> 
  arrange(desc(spread))
#
# spreadが一番小さなチーム・年
df |> 
  arrange(spread)
#
# チームごとの平均値
df |> 
  group_by(team) |> 
  summarize(
    avg = mean(spread),
    med = median(spread),
    min = min(spread),
    max = max(spread),
    std = sd(spread),
    n = n()
  ) |> 
  arrange(desc(avg))
#

 

 

(冒頭の画像は Bing Image Creator で生成しました。プロンプトは Close up of yellow Jasmine flowers, flowering all over the ground, under the blue sky. Photo です。)