clock menu more-arrow no yes mobile

Filed under:

Penalty Kill Save Percentage

I expanded my look at save percentages to penalty kill data. Once again I calculated logits from the save percentages. I removed goalies with logits that were infinity or undefined. Compared to even strength, the penalty kill data is a real muddle. The best model explains only about 13% of the variability seen. About 87% of the variability remains unexplained.

Penalty Kill versus Even Strength

There is a small correlation between even strength save percentage and penalty kill save percentage. Penalty kill save percentage is converted to "PKLogit" and even strength save percentage is converted to "RawLogit".

 



Pkraw_medium

 

 

> cor.test(RawLogit, PKLogit, alternative="two.sided", method="pearson")
Pearson's product-moment correlation
data: RawLogit and PKLogit
t = 7.4081, df = 868, p-value = 3.035e-13
alternative hypothesis: true correlation is not equal to 0 
95 percent confidence interval:
0.1803148 0.3053741
sample estimates:
      cor
0.2438580

> LinearModel.10 <- lm(PKLogit ~
RawLogit, Data=PKxxx, weights=PKSA)
> anova(LinearModel.10)
Analysis of Variance Table
Response: PKLogit
                Df Sum Sq Mean Sq F value    Pr(>F)    
RawLogit    1  497.5  497.54  48.466 6.629e-12 ***
Residuals 868 8910.7   10.27                      

 

 

Year Effect

Unlike even strength, there does not seem to be a year effect. The dotted line is the mean. The solid line is the least squares best fit.

 

 

 

Pklogityear_medium

 

> LinearModel.11 <- lm(PKLogit ~ Year, Data=PKxxx, weights=PKSA)
> anova(LinearModel.11)
Analysis of Variance Table
Response: PKLogit
             Df Sum Sq Mean Sq F value Pr(>F)
Year         1    9.2  9.1984  0.8495 0.3570
Residuals  868 9399.1 10.8284 

 

Team Effect

Taken by itself, there is a small team effect.

 

> LinearModel.12 <- lm(PKLogit ~ Team, Data=PKxxx, weights=PKSA)
> anova(LinearModel.12)

Analysis of Variance Table
Response: PKLogit
            Df Sum Sq Mean Sq F value   Pr(>F) 
Team        29  566.1  19.521  1.8545 0.004252 **
Residuals  840 8842.1  10.526 

 

Goalie Effect

Taken by itself, there does not seem to be a goalie effect.

 

> LinearModel.13 <- lm(PKLogit ~ GoalieName, Data=PKxxx, weights=PKSA)
> anova(LinearModel.13)

Analysis of Variance Table
Response: PKLogit
                 Df Sum Sq Mean Sq F value Pr(>F)
GoalieName      220 2535.4  11.525  1.0883 0.2148
Residuals       649 6872.8  10.590 

 

Multiple Effects

Looking at Team, Year, and Goalie.

 

> LinearModel.16 <- lm(PKLogit ~ Year + Team + lastfirst, data=PKData, weights=PKSA)
> anova(LinearModel.16)

Analysis of Variance Table
Response: PKLogit
           Df Sum Sq Mean Sq F value   Pr(>F) 
Year        1    9.2  9.1984  0.9051 0.341786 
Team       29  566.3 19.5272  1.9215 0.002828 **
lastfirst 220 2542.1 11.5548  1.1370 0.118023 
Residuals 619 6290.7 10.1627 

 

 

Since goalie doesn't add to the model, let's take it out.

Looking at Team and Year.

 

> LinearModel.14 <- lm(PKLogit ~ Year+Team, data=PKData, weights=PKSA)
> anova(LinearModel.14)
Analysis of Variance Table

Response: PKLogit
           Df Sum Sq Mean Sq F value   Pr(>F) 
Year        1    9.2  9.1984  0.8737 0.350194 
Team       29  566.3 19.5272  1.8548 0.004243 **
Residuals 839 8832.8 10.5277 

 

Finally, looking at Team, Year, and Team*Year interaction.

 

> LinearModel.15 <- lm(PKLogit ~ Year*Team, data=PKData, weights=PKSA)
> anova(LinearModel.15)

Analysis of Variance Table
Response: PKLogit
           Df Sum Sq Mean Sq F value    Pr(>F) 
Year        1    9.2  9.1984  0.9124 0.3397687 
Team       29  566.3 19.5272  1.9369 0.0023447 ** 
Year:Team  29  666.6 22.9845  2.2798 0.0001598 ***
Residuals 810 8166.2 10.0817 

 

For the coefficients of this model, see the Appendix below.

 

Comparing the two models shows we have not lost anything.

 

> anova(LinearModel.15,LinearModel.16)
Analysis of Variance Table

Model 1: PKLogit ~ Year * Team
Model 2: PKLogit ~ Year + Team + lastfirst
Res.Df RSS Df Sum of Sq F Pr(>F)
1    810 8166.2 
2    590 5870.4 220    2295.8 1.0488 0.3283

 

Conclusions

 

Penalty kill save percentage is best predicted by Team and a Team*Year interaction term. Goaltenders do not seem to differ significantly and do not add resolving power to the model. The model predicts only about 13% of the total variability seen in the data.

 

Appendix

 

> summary(LinearModel.15)

Call:
lm(formula = PKData$PKLogit ~ Year * Team, data = PKData, weights = PKSA)

Residuals:
Min      1Q  Median      3Q     Max 
-8.0952 -2.3457 -0.5473  1.7953  9.7120 

Coefficients:
Estimate Std. Error t value Pr(>|t|) 
(Intercept)      -23.986591  22.206924  -1.080  0.28040 
Year               0.012944   0.011086   1.168  0.24329 
Team[T.ATL]      -10.523932  35.026909  -0.300  0.76391 
Team[T.BOS]       14.805245  32.815465   0.451  0.65199 
Team[T.BUF]       27.982456  31.241862   0.896  0.37069 
Team[T.CAR]       71.411711  32.527856   2.195  0.02842 * 
Team[T.CBJ]       29.715859  39.199665   0.758  0.44863 
Team[T.CGY]      -11.023374  30.860942  -0.357  0.72104 
Team[T.CHI]        6.342364  32.909471   0.193  0.84723 
Team[T.COL]       83.106082  31.357718   2.650  0.00820 **
Team[T.DAL]       77.805340  33.163387   2.346  0.01921 * 
Team[T.DET]       78.066731  32.214720   2.423  0.01560 * 
Team[T.EDM]       23.276299  31.503776   0.739  0.46022 
Team[T.FLA]       -5.228478  31.574171  -0.166  0.86852 
Team[T.LAK]       75.850056  31.358441   2.419  0.01579 * 
Team[T.MIN]      -31.303930  40.540374  -0.772  0.44024 
Team[T.MTL]       20.734570  32.961644   0.629  0.52949 
Team[T.NJD]       11.933600  33.733418   0.354  0.72361 
Team[T.NSH]       25.535574  34.270177   0.745  0.45641 
Team[T.NYI]       49.159100  33.088931   1.486  0.13776 
Team[T.NYR]      -21.016443  32.208480  -0.653  0.51426 
Team[T.OTT]       33.700302  32.921507   1.024  0.30630 
Team[T.PHI]       39.878339  33.149079   1.203  0.22933 
Team[T.PHX]       20.381213  33.090162   0.616  0.53811 
Team[T.PIT]       24.266255  31.996114   0.758  0.44842 
Team[T.SJS]      -14.503204  32.040726  -0.453  0.65092 
Team[T.STL]      -15.382665  32.119666  -0.479  0.63213 
Team[T.TBL]       35.760341  32.690079   1.094  0.27432 
Team[T.TOR]       98.249645  32.546095   3.019  0.00262 **
Team[T.VAN]       29.383455  32.439625   0.906  0.36532 
Team[T.WSH]       89.971782  30.869225   2.915  0.00366 **
Year:Team[T.ATL]   0.005163   0.017480   0.295  0.76781 
Year:Team[T.BOS]  -0.007405   0.016381  -0.452  0.65137 
Year:Team[T.BUF]  -0.013926   0.015597  -0.893  0.37221 
Year:Team[T.CAR]  -0.035679   0.016237  -2.197  0.02828 * 
Year:Team[T.CBJ]  -0.014835   0.019559  -0.758  0.44839 
Year:Team[T.CGY]   0.005478   0.015407   0.356  0.72227 
Year:Team[T.CHI]  -0.003197   0.016428  -0.195  0.84574 
Year:Team[T.COL]  -0.041499   0.015656  -2.651  0.00819 **
Year:Team[T.DAL]  -0.038867   0.016556  -2.348  0.01913 * 
Year:Team[T.DET]  -0.038944   0.016083  -2.421  0.01568 * 
Year:Team[T.EDM]  -0.011641   0.015727  -0.740  0.45939 
Year:Team[T.FLA]   0.002624   0.015761   0.166  0.86783 
Year:Team[T.LAK]  -0.037921   0.015655  -2.422  0.01564 * 
Year:Team[T.MIN]   0.015664   0.020228   0.774  0.43893 
Year:Team[T.MTL]  -0.010338   0.016453  -0.628  0.52996 
Year:Team[T.NJD]  -0.005968   0.016839  -0.354  0.72311 
Year:Team[T.NSH]  -0.012764   0.017106  -0.746  0.45579 
Year:Team[T.NYI]  -0.024568   0.016514  -1.488  0.13722 
Year:Team[T.NYR]   0.010468   0.016079   0.651  0.51519 
Year:Team[T.OTT]  -0.016838   0.016433  -1.025  0.30583 
Year:Team[T.PHI]  -0.019930   0.016547  -1.204  0.22877 
Year:Team[T.PHX]  -0.010213   0.016520  -0.618  0.53662 
Year:Team[T.PIT]  -0.012158   0.015972  -0.761  0.44673 
Year:Team[T.SJS]   0.007222   0.015995   0.452  0.65175 
Year:Team[T.STL]   0.007655   0.016033   0.477  0.63319 
Year:Team[T.TBL]  -0.017942   0.016318  -1.100  0.27186 
Year:Team[T.TOR]  -0.049103   0.016249  -3.022  0.00259 **
Year:Team[T.VAN]  -0.014681   0.016193  -0.907  0.36487 
Year:Team[T.WSH]  -0.044899   0.015410  -2.914  0.00367 **