library(xlsx)
## Loading required package: rJava
## Loading required package: xlsxjars
library(jpeg)
a<-read.xlsx("CMW&ALL.xlsx",sheetIndex=1)
head(a)
## PITCHER H.9 HR.9 BB.9 K.9 WHIP ERA
## 1 CMW 10.1 1.0 3.0 5.1 1.463 4.22
## 2 ALL 8.8 1.2 3.1 8.1 1.325 4.18
#ERA的計算公式=(分數/局數)*9
a<-25 #分數
b<-53.3 #局數
c<-(a/b)*9
round(c,digits=2) #王建民的ERA
## [1] 4.22
TB=read.csv('50IP.csv')
lmfit=lm(ERA~FIP,data=TB)
summary(lmfit)
##
## Call:
## lm(formula = ERA ~ FIP, data = TB)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.5441 -0.5401 -0.1342 0.5513 2.7914
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) -0.06372 0.37992 -0.168 0.867
## FIP 0.98796 0.09268 10.660 <2e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.9287 on 98 degrees of freedom
## Multiple R-squared: 0.537, Adjusted R-squared: 0.5322
## F-statistic: 113.6 on 1 and 98 DF, p-value: < 2.2e-16
windows()
plot(ERA~FIP,data=TB)
abline(lmfit) #100位投50局以上投手的ERA與FIP
TB=read.csv('100IP.csv')
lmfit=lm(ERA~FIP,data=TB)
summary(lmfit)
##
## Call:
## lm(formula = ERA ~ FIP, data = TB)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1.43632 -0.51410 -0.04584 0.40619 1.65565
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 0.65811 0.38300 1.718 0.0889 .
## FIP 0.87024 0.08922 9.754 4.14e-16 ***
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 0.6348 on 98 degrees of freedom
## Multiple R-squared: 0.4926, Adjusted R-squared: 0.4874
## F-statistic: 95.14 on 1 and 98 DF, p-value: 4.144e-16
windows()
plot(ERA~FIP,data=TB)
abline(lmfit) #100位投100局以上投手的ERA與FIP
a<-6 #HR
b<-18 #BB
c<-2 #HBP
d<-0 #IBB
e<-30 #K
f<-53.3 #IP
g<-(13*a+3*(b+c+d)-2*e)/f+3
round(g,digits=3) #王建民的FIP
## [1] 4.463
a<-4.61 #王建民經過球場校正過後(ERA)的FIP
##比賽的勝負不是比投手的自責失分,是比總失分
##若要算出WAR就要把ERA轉換成RA
##聯盟失分率與自責失分率比=0.925
b<-a/0.925 #王建民的FIP轉換回總失分率FIP(RA)為4.98
round(b,digits=2)
## [1] 4.98
c<-53.3/38
round(c,digits=2) #計算出王建民平均出賽一場投幾局
## [1] 1.4
##一場棒球比賽投手要投18局,如果王建民投1.4局,其他平均程度的投手要投剩下的16.6局
d<-4.52 #聯盟平均投手的FIP(RA)
e<-(d*16.6+b*1.4)/18 #(平均投手投16.6局+王建民投1.4局)除以18局
round(e,digits=3) #王建民出賽時,整場比賽的平均失分率。
## [1] 4.556
##專家提供公式,計算投手每省下幾分,可以為球隊帶來一勝
f<-(e+2)*1.5
round(f,digits=3) #平均王建民每一場省下幾分,可以為球隊帶來一勝
## [1] 9.834
g<-d-b
round(g,digits=2) #王建民每投9局會比聯盟平均投手投9局多掉幾分
## [1] -0.46
h<-g/f
round(h,digits=3) #多掉0.46分相當於王建民讓球隊少了多少勝率
## [1] -0.047
i<-0.5+(-0.047)
i #平均為0.500勝率的球隊降低0.047勝率
## [1] 0.453
#0.500勝率的球隊中,拿一個平均程度投手換成王建民,球隊的勝率會降為0.453
#大聯盟計算聯盟平均後援投手的勝率為0.470
j<-i-0.47
j
## [1] -0.017
#王建民每取代一位平均程度投手投一場球會讓球隊少贏0.017場球
k<-j*(53.3/9)
round(k,digits=1) #用王建民投球總局數換算一季共投了5.92場球(一場九局)
## [1] -0.1