打順を変える続き。
パワーヒッターの打順をチーム内でいろいろ変えたときの得点分布を作成する。
プログラムの概要。
パワーヒッターの効果が出やすいように、パワーヒッターは必ずHRを打つように設定する。
2010年の阪神のデータから、パワーヒッターが1番、2番、…、9番の仮想チームアレイを作成する。
1イニング中に打席に立ちうる打者人数を、累積確率がcutを超えるまで考える。
アウトとヒットパターンをすべて地味に発生させる。
これで1イニングあたりに取れる得点の確率が得られる。
これを、仮想チーム内のすべての打者を先頭打者にしたときについて行う。
次に、1イニングに立ちうる打者人数の確率から、誰があるイニングで先頭打者になるかの確率を計算する。
これをもとに、あるイニングでの先頭打者の比重をつけた、1イニングあたりの得点確率推移行列アレイを作成する。
これを決められたイニング繰り返し、1試合の得点とする。
こんな感じでいこう。
# 上のリンクで、cut<- 0.99としたうえで… # でもこれを不用意にやると2時間かかった。 xg<- max(unlist(lapply(data,length))) xg<- 25 yg<- max(unlist(lapply(data,max))) xx<- 0:(xg-1) color<- c("black","red","orange","yellow","green","blue","skyblue","purple","violet") lty<- c(2,2,2,2,2,1,1,1,1) lwd<- c(4,4,4,4,5,3,3,3,3) for(pl in people:1){ plot(xx,data[[pl]][1:xg],type="l",lwd=lwd[pl],frame=F,lty=lty[pl], xlim=c(0,xg),ylim=c(0,yg),col=color[pl], xlab="score",ylab="probability",main="One Game Score Probability" ) par(new=T) } axis(1:2) legend(20,yg,c("1st","2nd","3rd","4th","5th","6th","7th","8th","9th"), col=color,lty=1,lwd=3)
# どの順番が同じ計算結果か調べる。 library(gtools) cmb<- combinations(9,2) Iden<- rep(0,nrow(cmb)) for(i in 1:nrow(cmb)){ Iden[i]<- sum(data[[cmb[i,1]]] == data[[cmb[i,2]]]) } cmb[(Iden!=0),] [,1] [,2] [1,] 1 9 [2,] 2 5 [3,] 2 8 [4,] 3 7 [5,] 4 6 [6,] 5 8
こいつらはかぶっているらしい…
統計推定量を使ってみようか。
library(e1071) analy<- function(vec){ DATA<- rep(0,5) DATA[1]<- mean(vec) DATA[2]<- sd(vec) DATA[3]<- median(vec) DATA[4]<- skewness(vec) DATA[5]<- kurtosis(vec) names(DATA)<- c("mean","sd","median","skewness","kurtosis") return(DATA) }
しまったこれでは確率の最大値とかそういうの出してる…
まあまたなんか違うやつで評価しよう。
いやあやっぱ山を見ても勝ちやすいのかよくわからん。
対戦シミュレーションをしてみよう…かな?