見出し画像

坂本選手は3,000本安打、安打数記録を塗り替えられるのか?

今シーズン坂本選手が右打者では歴代最速の2000本安打を達成しました。


右打者でありながらこの安打数を稼ぐのは、本当にヒットを打てるバッターと言えるでしょう。
左打者であれば、足が速い選手は内野安打も多くなりアベレージを稼げますが、右打者は内野安打はほとんどなくなることを考えるとこの安打数は驚異的でしょう。

まだ31歳ですので、さらに安打を増やして3000本も夢ではない気がします。
どこまで行けるのか気になってきます。
そこで今回は坂本選手の安打がどこまで伸びるか回帰分析により予測します。

分析の仕方

野球は他のスポーツと比べ、データが扱いやすいですし、集めやすいです。
色々なデータが使えるかと思いきや、今回は安打数を予測するため、未来に使えるデータがないというのが難しいところです。
当たり前ですが来シーズンのOPSとかわからないでしょう。
知っていたら、安打数もわかりますw
そのため、最低限仮定しなければいけないことがあります。
今回は打席数を説明変数、安打数を目的変数として単回帰分析をします。
予測するときは、打席数を仮定して予測します。

データの取得

いつもお世話になっております。
プロ野球Freakさんです。
いつもありがとうございます。

スクレイピングとしては簡単にこの一行でできます。

data = pd.read_html('https://baseball-data.com/player/g/%E5%9D%82%E6%9C%AC%E3%80%80%E5%8B%87%E4%BA%BA')

データ内容

坂本選手の通算成績とセイバーメトリクス、プロフィールデータが取れます。
今回はその中で打席数と安打のデータのみ使用します。
たくさんデータがあるとあれこれ使いたくなりますが、結果からどのようなことが言えるかの解釈性が難しくなりますので使うデータを絞ります(絞りすぎだろw)。​

今年は120試合と少ない中で115試合に出場し119安打となかなかの成績を残し、2000本安打も達成しました。

current_stats = data[1]
current_stats

結果:
試合	打席数	打数	得点	安打	二塁打	三塁打	本塁打	塁打	打点	...	犠打	犠飛	四球	敬遠	死球	三振	併殺打	打率	出塁率	長打率
115	479	412	64	119	28	1	19	206	65	...	1	4	62	7	0	85	9	0.289	0.379	0.5

回帰分析

打席数と安打数の回帰分析を行います。
予測する変数(目的変数)と予測するために使う変数(説明変数)が1つずつですので単回帰分析です。
y=ax+bの式に落とし込みます。
中学校で習った一次関数または比例ですね。

Pythonのプログラミング言語、ライブラリにscikit-learnで一行で回帰分析を行ってくれます。

regr = linear_model.LinearRegression()
regr.fit(np.array(train_x).reshape(-1,1),np.array(train_y).reshape(-1,1))

この回帰モデルがどれくらい直線式にフィッティングしているか確認します。
決定係数(R二乗値)の値で回帰式がデータにどれほど当てはまるかを見れます。

1であれば直線状にデータがすべてある状態になります。
1に近いほど回帰式の直線上にデータが近くなります。
すなわち、予測のブレがないことになります。
今回は単回帰ですし、打席数から安打数と完全に正相関にあるデータでの回帰モデルの作成ですので決定係数が高いほどよいです。​

test_pred = regr.predict(np.array(train_x).reshape(-1,1))
print('r^2score:',r2_score(train_y,test_pred))

結果:
r^2score: 0.9995875743686005

今回は打席数と安打数ですので当たり前ですがほぼ1ですね。

予測結果

これまでの成績を元に回帰式を作成し、今後8年の安打数を予測します。
どれだけの打席数が今後あるかは分からないので、平均550打席立っていることから、だいたい打席数が毎年550打席増えて、引退2年前からは300打席くらいに減らして、安打数を予測します。
データで言うと以下のように予測用のデータセットを作成します。

pred_x=[8255,8807,9359,9900,10450,11000,11300,11600,12000]

予測結果を出すためのコード例は以下のようになります。

pred_y = regr.predict(np.array(pred_x).reshape(-1,1))

グラフの背景がグレーの部分が予測している範囲になります。​

単回帰

この予測ですと、3092安打を出せる結果が出ています。
今後引退までに怪我もなく、レギュラーで居続けて試合に出ていれば、3000本安打、安打数の記録塗り替えも夢じゃないでしょう!

まとめ

これからもレギュラーで居続け試合出場できるなら3000本安打も夢じゃない!

記録を塗り替える可能性もあり得る!

この記事で使用したデータとコードはこちら!(有料)


今回分析したコード(ipynbファイル、Jupyter notebookファイル)をダウンロードできます。
どのような分析をしているか、細かな部分が見れます。

ここから先は

72字 / 2ファイル

¥ 200

よろしければサポートをよろしくお願いします。サポートいただいた資金は活動費に使わせていただきます。