# Load the data
nbaStats = read.csv("NBA_Stats202324.csv")
str(nbaStats)
## 'data.frame':    30 obs. of  19 variables:
##  $ TEAM : chr  "Washington" "Atlanta" "Utah" "Indiana" ...
##  $ PPG  : num  114 118 116 123 110 ...
##  $ oPPG : num  123 120 120 120 119 ...
##  $ pDIFF: num  -9.3 -2.2 -4.8 3.1 -9.1 -6.4 -6.5 0.6 -10.2 2.6 ...
##  $ PACE : num  102.6 100 99.4 101.7 99.8 ...
##  $ oEFF : num  110 117 116 121 110 ...
##  $ dEFF : num  120 119 120 118 119 ...
##  $ eDIFF: num  -9.1 -2.1 -4.9 3 -9.1 -6.4 -6.4 0.6 -10.5 2.6 ...
##  $ SOS  : num  1.06 -0.61 0.38 0.15 0.79 0.36 0.5 -0.08 0.86 -0.44 ...
##  $ SAR  : num  -8.04 -2.71 -4.52 3.15 -8.31 -6.04 -5.9 0.52 -9.64 2.16 ...
##  $ CONS : num  12.5 14.7 15.9 15.2 12 15.7 14.4 15 14.4 16.1 ...
##  $ A4F  : num  -0.052 -0.05 0.004 0.012 -0.01 -0.045 -0.015 0.026 -0.068 0.05 ...
##  $ W    : int  15 36 31 47 14 25 22 47 21 49 ...
##  $ L    : int  67 46 51 35 68 57 60 35 61 33 ...
##  $ WIN. : num  0.183 0.439 0.378 0.573 0.171 0.305 0.268 0.573 0.256 0.598 ...
##  $ eWIN.: num  0.234 0.443 0.379 0.578 0.224 0.342 0.329 0.516 0.233 0.564 ...
##  $ pWIN.: num  0.194 0.428 0.342 0.602 0.2 0.289 0.286 0.52 0.164 0.586 ...
##  $ ACH  : num  -0.051 -0.004 -0.001 -0.005 -0.053 -0.037 -0.061 0.057 0.023 0.034 ...
##  $ STRK : int  -6 -6 -1 1 -1 -4 2 2 1 -2 ...
# Explore the data
summary(nbaStats)
##      TEAM                PPG             oPPG           pDIFF          
##  Length:30          Min.   :105.8   Min.   :106.5   Min.   :-10.20000  
##  Class :character   1st Qu.:112.2   1st Qu.:110.9   1st Qu.: -4.32500  
##  Mode  :character   Median :114.5   Median :113.5   Median :  1.95000  
##                     Mean   :114.2   Mean   :114.2   Mean   :  0.01667  
##                     3rd Qu.:117.5   3rd Qu.:117.2   3rd Qu.:  3.10000  
##                     Max.   :123.3   Max.   :123.0   Max.   : 11.40000  
##       PACE             oEFF            dEFF           eDIFF        
##  Min.   : 95.20   Min.   :107.2   Min.   :109.0   Min.   :-10.500  
##  1st Qu.: 97.10   1st Qu.:113.2   1st Qu.:113.2   1st Qu.: -4.400  
##  Median : 98.20   Median :115.8   Median :115.3   Median :  1.950  
##  Mean   : 98.49   Mean   :115.3   Mean   :115.3   Mean   :  0.040  
##  3rd Qu.: 99.80   3rd Qu.:117.8   3rd Qu.:117.2   3rd Qu.:  3.175  
##  Max.   :102.60   Max.   :123.2   Max.   :120.5   Max.   : 11.600  
##       SOS               SAR              CONS            A4F          
##  Min.   :-1.3100   Min.   :-9.640   Min.   :12.00   Min.   :-0.06800  
##  1st Qu.:-0.4475   1st Qu.:-4.147   1st Qu.:14.07   1st Qu.:-0.03550  
##  Median :-0.0450   Median : 1.900   Median :15.05   Median : 0.00150  
##  Mean   :-0.0360   Mean   : 0.004   Mean   :14.98   Mean   :-0.00010  
##  3rd Qu.: 0.3425   3rd Qu.: 3.067   3rd Qu.:15.90   3rd Qu.: 0.02825  
##  Max.   : 1.0600   Max.   :10.870   Max.   :17.90   Max.   : 0.08000  
##        W               L              WIN.           eWIN.       
##  Min.   :14.00   Min.   :18.00   Min.   :0.171   Min.   :0.2240  
##  1st Qu.:31.25   1st Qu.:33.00   1st Qu.:0.381   1st Qu.:0.3912  
##  Median :46.50   Median :35.50   Median :0.567   Median :0.5480  
##  Mean   :41.00   Mean   :41.00   Mean   :0.500   Mean   :0.4981  
##  3rd Qu.:49.00   3rd Qu.:50.75   3rd Qu.:0.598   3rd Qu.:0.5903  
##  Max.   :64.00   Max.   :68.00   Max.   :0.780   Max.   :0.7680  
##      pWIN.             ACH                 STRK        
##  Min.   :0.1640   Min.   :-0.061000   Min.   :-6.0000  
##  1st Qu.:0.3578   1st Qu.:-0.015000   1st Qu.:-2.0000  
##  Median :0.5640   Median :-0.000500   Median : 0.0000  
##  Mean   :0.5006   Mean   : 0.001933   Mean   :-0.1333  
##  3rd Qu.:0.6020   3rd Qu.: 0.023000   3rd Qu.: 2.0000  
##  Max.   :0.8750   Max.   : 0.061000   Max.   : 8.0000
table(nbaStats$W, nbaStats$eDIFF)
##     
##      -10.5 -9.2 -9.1 -7.1 -6.4 -4.9 -2.9 -2.1 -1.4 0.6 1.1 1.8 2.1 2.2 2.4 2.6
##   14     0    0    1    0    0    0    0    0    0   0   0   0   0   0   0   0
##   15     0    0    1    0    0    0    0    0    0   0   0   0   0   0   0   0
##   21     1    1    0    0    0    0    0    0    0   0   0   0   0   0   0   0
##   22     0    0    0    0    1    0    0    0    0   0   0   0   0   0   0   0
##   25     0    0    0    0    1    0    0    0    0   0   0   0   0   0   0   0
##   27     0    0    0    1    0    0    0    0    0   0   0   0   0   0   0   0
##   31     0    0    0    0    0    1    0    0    0   0   0   0   0   0   0   0
##   32     0    0    0    0    0    0    1    0    0   0   0   0   0   0   0   0
##   36     0    0    0    0    0    0    0    1    0   0   0   0   0   0   0   0
##   39     0    0    0    0    0    0    0    0    1   0   0   0   0   0   0   0
##   41     0    0    0    0    0    0    0    0    0   0   1   0   0   0   0   0
##   46     0    0    0    0    0    0    0    0    0   0   0   2   0   0   0   0
##   47     0    0    0    0    0    0    0    0    0   1   0   0   1   0   0   0
##   48     0    0    0    0    0    0    0    0    0   0   0   0   0   0   1   0
##   49     0    0    0    0    0    0    0    0    0   0   0   0   0   0   0   1
##   50     0    0    0    0    0    0    0    0    0   0   0   0   0   1   0   0
##   51     0    0    0    0    0    0    0    0    0   0   0   0   0   0   0   0
##   56     0    0    0    0    0    0    0    0    0   0   0   0   0   0   0   0
##   57     0    0    0    0    0    0    0    0    0   0   0   0   0   0   0   0
##   64     0    0    0    0    0    0    0    0    0   0   0   0   0   0   0   0
##     
##      2.7 3 3.1 3.2 3.4 4.5 4.8 5.4 6.6 7.4 11.6
##   14   0 0   0   0   0   0   0   0   0   0    0
##   15   0 0   0   0   0   0   0   0   0   0    0
##   21   0 0   0   0   0   0   0   0   0   0    0
##   22   0 0   0   0   0   0   0   0   0   0    0
##   25   0 0   0   0   0   0   0   0   0   0    0
##   27   0 0   0   0   0   0   0   0   0   0    0
##   31   0 0   0   0   0   0   0   0   0   0    0
##   32   0 0   0   0   0   0   0   0   0   0    0
##   36   0 0   0   0   0   0   0   0   0   0    0
##   39   0 0   0   0   0   0   0   0   0   0    0
##   41   0 0   0   0   0   0   0   0   0   0    0
##   46   1 0   0   0   0   0   0   0   0   0    0
##   47   0 1   0   1   0   0   0   0   0   0    0
##   48   0 0   0   0   0   0   0   0   0   0    0
##   49   0 0   1   0   0   1   0   0   0   0    0
##   50   0 0   0   0   0   0   1   0   0   0    0
##   51   0 0   0   0   1   0   0   0   0   0    0
##   56   0 0   0   0   0   0   0   0   1   0    0
##   57   0 0   0   0   0   0   0   1   0   1    0
##   64   0 0   0   0   0   0   0   0   0   0    1
PointsReg = lm(W ~ PPG + oPPG + PACE + oEFF + dEFF, data=nbaStats)
summary(PointsReg)
## 
## Call:
## lm(formula = W ~ PPG + oPPG + PACE + oEFF + dEFF, data = nbaStats)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -4.4463 -0.9515  0.1856  1.4931  5.0362 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)   9.8005   129.9722   0.075 0.940518    
## PPG          16.5256     4.3546   3.795 0.000883 ***
## oPPG        -16.9674     4.4043  -3.853 0.000764 ***
## PACE          0.2176     1.3378   0.163 0.872143    
## oEFF        -14.0146     4.3169  -3.246 0.003432 ** 
## dEFF         14.5396     4.3440   3.347 0.002685 ** 
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 2.267 on 24 degrees of freedom
## Multiple R-squared:  0.9764, Adjusted R-squared:  0.9714 
## F-statistic: 198.2 on 5 and 24 DF,  p-value: < 2.2e-16
projW = lm(pWIN. ~ W + WIN. + eWIN., data=nbaStats)
summary(projW)
## 
## Call:
## lm(formula = pWIN. ~ W + WIN. + eWIN., data = nbaStats)
## 
## Residuals:
##       Min        1Q    Median        3Q       Max 
## -0.024355 -0.010277 -0.003582  0.005429  0.041551 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) -0.12040    0.01275  -9.446 6.85e-10 ***
## W            0.05316    0.16147   0.329    0.745    
## WIN.        -4.37275   13.24182  -0.330    0.744    
## eWIN.        1.26018    0.13125   9.602 4.91e-10 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.01731 on 26 degrees of freedom
## Multiple R-squared:  0.992,  Adjusted R-squared:  0.9911 
## F-statistic:  1072 on 3 and 26 DF,  p-value: < 2.2e-16