本日フリーゲーム夢現に初コメントが付いたのでワクワクして見ました。
#————————————————————-#
フリーゲーム夢現の’名将と呼ばれた者達’にコメントが投稿されました。
運営が公開処理するまでこのコメントは表示されません。(※投稿されてから約1日程度)
————————-
[コメント投稿者] 匿名
■ コメント内容 ■
左投げ右打ちの選手が出過ぎでちょっと気持ち悪いです
————————-
【投稿されたページを見る】
https://freegame-mugen.jp/simulation/game_7374.html
#————————————————————-#
お・・・おう・・・。そうか。
というわけで、どれくらい気持ち悪いのか数値化してみます。
やること
- コード確認
- データ把握
- あるべき姿(論文等)の調査
- 現状とあるべき姿の比較
- 改善点
- まとめ
コード確認
選手生成のコードを確認。
1 2 3 4 5 | // 投 if (mt_rand(1, 1000) >= 115){ $CD [ 'side_p' ] = 'R' ; } else { $CD [ 'side_p' ] = 'L' ; } // 打 if (mt_rand(1, 100) >= 35){ $CD [ 'side_b' ] = 'R' ; } else { $CD [ 'side_b' ] = 'L' ; } |
投、打はどちらも独立に判定される。
投:88.5(=100-11.5)%で右投、その他(11.5%)で左投
打:65(=100-35)%で右打、その他(35%)で左打
このコードから、それぞれが起こる可能性は以下の通りです。
(全体合計は1。ただかけ合わせるだけです。)
右投 | 左投 | |
---|---|---|
右打 | 0.57525 | 0.07475 |
左打 | 0.30975 | 0.04025 |
※検算済み
約7.5%で左投右打ちが出てくる計算です。
データ把握
実際データはどうなってるの?ということで計算してみました。
データセットは[Meisyo]ビッグデータから学ぶ試合の基礎設計4のモノを使用しています。
*このデータで注意すべきは2点。成績準拠なので、「試合に出場した選手のみのデータが記録されていること」「任意でデータを削除できること」ですね。
データセット結果:
Total:6558
RR:3778(0.576)
RL:1991(0.304)
LR:527(0.080)
LL:262(0.040)
コードでの指定:
右投 | 左投 | |
---|---|---|
右打 | 0.57525 | 0.07475 |
左打 | 0.30975 | 0.04025 |
0.005分LRが上に、RLが下にぶれています。
6.7%程度の変動ですね。
これ分散値とか計算できるのか?
おおよそコードとデータは違っていないと判断します。(判断基準があいまい)
計算には実データを使っていきます。
計算コード:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | # -*- coding: utf-8 -*- import os, sys, csv import pandas as pd import numpy as np import matplotlib.pyplot as plt # 基礎設定 file_name = 'meisyo_b 20181217.csv' # CSV読み込み df = pd.read_csv(file_name, encoding = 'utf-8' ) # 基礎設定 an = pd.DataFrame(index = [], columns = []) # 投/打把握 an[ 'side_p' ] = df[ 'side_p' ] an[ 'side_b' ] = df[ 'side_b' ] # print(an) # 集計 date = { 'RR' : 0 , 'RL' : 0 , 'LR' : 0 , 'LL' : 0 } for index, row in df.iterrows(): key = row[ 'side_p' ] + row[ 'side_b' ] date[key] + = 1 # 表示 print ( "Total:" + str ( len (an))) for key in date.keys(): print ( str (key) + ":" + str (date[key])) |
あるべき姿(論文等)の調査
野球の右投左投等のデータがありそうな論文と言えば、セイバーメトリクス関係か右/左打でどれだけ成績が変わるのか的な論文だと思いました。ということで調べました。
The Success of Sinister Right-Handers in Baseball(October 26, 2017)
超日本語訳:野球で成功したいなら右打ちはやめとけ
Abstract:
This new analysis of data on 17,564 professional baseball players shows a distinct advantage in hitting for those who bat left-handed but throw right-handed. The findings argue against any advantage due to hemispheric lateralization.
Abstract超日本語訳:
17,564人ものプロ野球選手のデータから分析した結果は、左バッターが右バッターに比べて優位(有意)なアドバンテージを持っていることを示した。この発見は他の全てのアドバンテージを跳ね返す力を持っている。
わースポーツ医学の論文カナー・・・
Table1に結果が載ってました。
結果:
All recorder major league players(N=5663)
Percent of Players
RR:63.2%
RL:19.0%
LL:12.3%
RB:4.7%
LR:0.5%
LB:0.3%
(B=両打ち)
現状とあるべき姿の比較
現状とあるべき姿のデータが取れたので比較し、相関関係を確認します。
データセット結果:
Total:6558
RR:57.6%
RL:30.4%
LR:8.0%
LL:4.0%
あるべき姿の結果:
All recorder major league players(N=5663)
Percent of Players
RR:63.2%
RL:19.0%
LL:12.3%
RB:4.7%
LR:0.5%
LB:0.3%
(B=両打ち)
0.5%であるべきところが、8.0%って・・・。差が大きくないか・・・?たしかに気持ち悪い。
以下、両打を無視して計算します。
あるべき姿:
右投:
右打:左打=63.2:19.0(ALL82.2)
=77:23
左投:
右打:左打=0.5:12.3(ALL12.8)
=4:96
現状は投げ・打ちは互いに独立ですが、あるべき姿では関連性ありですねー。
改善点
コードはこんな感じかなと。
1 2 3 4 5 6 7 | if (mt_rand(1, 100) >= 13){ $CD [ 'side_p' ] = 'R' ; if (mt_rand(1, 100) >= 23){ $CD [ 'side_b' ] = 'R' ; } else { $CD [ 'side_b' ] = 'L' ; } } else { $CD [ 'side_p' ] = 'L' ; if (mt_rand(1, 100) >= 96){ $CD [ 'side_b' ] = 'R' ; } else { $CD [ 'side_b' ] = 'L' ; } } |
まとめ
確かに気持ち悪い量の左投げ右打ちの選手が生成されていました。
よく考えてみると、プロ野球選手でも左投げ右打ちの選手いないですね。
野球エリートだと幼い内に左投右打なら左打に矯正されるし、そっちのほうが結果もいいみたいだし。
まあ生涯打率で1割違ったらねえ・・・。
今回MLBのデータを使いましたが、それでもLL>>LRなのでそういうものなんですね。
諸説では「あちら(米国)のほうが個人の意思を優先する」とのことですが、ここまではっきりとした差(LL24:LR1)ならしょうがないね。
コメントありがとうございました!