Machine Learning Foundations for Product Managers Course Project: Modeling Options

2022-05-03

Introduction

Exhaustive Search Regression (ESR)

best.model <- lm(PE ~ AT + V + AP + RH, data = power_training)
summ(best.model)
## MODEL INFO:
## Observations: 7654
## Dependent Variable: PE
## Type: OLS linear regression 
## 
## MODEL FIT:
## F(4,7649) = 24925.15, p = 0.00
## R² = 0.93
## Adj. R² = 0.93 
## 
## Standard errors: OLS
## ---------------------------------------------------
##                       Est.    S.E.    t val.      p
## ----------------- -------- ------- --------- ------
## (Intercept)         460.08   10.91     42.15   0.00
## AT                   -1.99    0.02   -115.87   0.00
## V                    -0.23    0.01    -28.13   0.00
## AP                    0.06    0.01      5.35   0.00
## RH                   -0.16    0.00    -33.94   0.00
## ---------------------------------------------------

ESR Performance Metrics

predictions <- best.model %>% predict(power_training)
data.frame(
  R2 = R2(predictions, power_training$PE),
  RMSE = RMSE(predictions, power_training$PE),
  MAE = MAE(predictions, power_training$PE)
)
##          R2     RMSE      MAE
## 1 0.9287468 4.555574 3.615614

Stepwise Regression

power_intercept_only <- lm(PE ~ 1, data =power_training)
power_all <- lm(PE ~ ., data = power_training)
power_step <- stepAIC(power_intercept_only, 
                         direction=c("both","backward",'forward'), 
                         scope=list(lower=power_intercept_only, upper=power_all), 
                         trace=0)
summ(power_step)
## MODEL INFO:
## Observations: 7654
## Dependent Variable: PE
## Type: OLS linear regression 
## 
## MODEL FIT:
## F(4,7649) = 24925.15, p = 0.00
## R² = 0.93
## Adj. R² = 0.93 
## 
## Standard errors: OLS
## ---------------------------------------------------
##                       Est.    S.E.    t val.      p
## ----------------- -------- ------- --------- ------
## (Intercept)         460.08   10.91     42.15   0.00
## AT                   -1.99    0.02   -115.87   0.00
## RH                   -0.16    0.00    -33.94   0.00
## V                    -0.23    0.01    -28.13   0.00
## AP                    0.06    0.01      5.35   0.00
## ---------------------------------------------------

Stepwise Regression Performance Metrics

library(caret)
predictions <- power_step %>% predict(power_valid)
data.frame(
  R2 = R2(predictions, power_valid$PE),
  RMSE = RMSE(predictions, power_valid$PE),
  MAE = MAE(predictions, power_valid$PE)
)
##          R2     RMSE     MAE
## 1 0.9284334 4.564303 3.65499

Model Interpretation