
ChatGPTで大谷翔平のホームランを可視化する
こんにちは、ChatGPT部員の山口征啓(やまぐち ゆきひろ)です。
大谷翔平選手のホームランの勢いがとまりませんね。これを書いている6月30日現在でMLBのトップを独走しています。このままの調子で打ちまくるとどこまでいくのかとてもワクワクしますね。
そこで今日はChatGPTを使って大谷翔平選手のホームランを可視化してみました。環境はChatGPT4にwebpilotとNoteableのpluginを使っています。
まずはWebsiteを検索
日別のホームランの推移を見てみたいので、そのようなデータがあるサイトを探してもらいます。


こちらのサイトはホームラン以外も詳細な日別のデータが揃っていました。こちらのデータを使うことにします。

NoteableでRのコードを書く
noteable プラグインはGoogle colabのようなnotebook機能を提供してくれます。デフォルトではPythonが使えるようになっているのですが、実はRも動かすことが出来ます。
ChatGPTにこのデータを読み込んでもらいます。

Rを使うにはNoteableのメニューバーのKernel → Change Kernelでカーネルを変更します。


何回か試行錯誤して読み込み成功!コードを見るとwebsiteの上から順に探しているようです。
前処理
次にデータのクリーニングをやらないといけませんが、これは細かく指示しないと難しい様子でした。まずDateを日付型に変換しますが、年のデータが入っていないので、"2023"を先頭に加えてから、lubridate packageのymd()関数を使用するように指示します。次に余計な行を指定して削除します。またホームランの累計数がほしいのでHR_cumsumという列をcumsum()関数を使って作成します。
これらの作業はChatGPTを使って出来なくはないですが、何回も試行錯誤をする必要があるので、慣れている人なら直接Noteableにコードを書いたほうが早いです。
グラフ化
ここでこれまでのホームラン数を見てみます。

前半はかなり不調で、6月になって好調だったイメージですが、可視化してみるとそれほど勾配が変わっているわけではありませんでした。

ホームラン数の予測
さてそれでは今季のホームラン数の予測をやっていきましょう。まずはシンプルに以下のように聞いてみました
「大谷翔平の今年のホームラン数を予測したいです。 以下のURLに今年のこれまでのホームラン数があります。これから今季の162試合目のホームラン数を予測してください」

あらあら、単純に現在の比率を162試合に当てはめてしまいました。これだと58本になります。「より精度の高い方法」があるそうなので、それについて聞いてみます。

3つ方法をあげてくれました。1つ目は時間順序分析と書いてありますが、どうやら時系列分析のようです。こちらについて聞いてみます。
「1のARIMAモデルのやり方を教えてください データフレームはすでにあるので、コードからで結構です。」
なんと、3行で終わってしまいました!
今後の試合数毎に予測されるホームラン数(Point Forecast)と80%信頼区間、95%信頼区間が表示されているようです。

データの最後を見てみると、今季のホームラン数の予測は75本!! 昨年のジャッジを大幅に上回るMLB新記録です(笑)ただし、80%信頼区間でも52本から99本とかなり幅が広く、正確な予測は難しいようです。
こちらのグラフも書いてもらいました。

6月は驚異的なペースでホームランを打っていて、このまま10月まで打ち続けるということは考えにくいのですが、線形に予測をするとこういう結果になるのでしょう。
今回はNoteableプラグインを使って、ホームラン数の予想に挑戦してみました。予想はうまくいきませんでしたが、Notealbe+ChatGPTには大きな可能性を感じました。
ここからは逆向きにこの結果を使ってARIMAモデルについて勉強してみようと思います。1回使ってみると具体的にイメージできるし、学んだことをすぐに自分のデータに反映できます。「先に実践してから、振り返って学ぶ」のがChatGPT時代の学習法じゃないかなと思ってます。