YouTube “Multiple Regression” videos

Route Delivery Schedule is as followed:

rds <- data.frame(miles=c(89,66,78,111,44,77,80,66,109,76),
                  numDelivers=c(4,1,3,6,1,3,3,2,5,3),
                  gasPrice=c(3.84,3.19,3.78,3.89,3.57,3.57,3.03,3.51,3.54,3.25),
                  travelTime=c(7,5.4,6.6,7.4,4.8,6.4,7,5.6,7.3,6.4))
rds  
##    miles numDelivers gasPrice travelTime
## 1     89           4     3.84        7.0
## 2     66           1     3.19        5.4
## 3     78           3     3.78        6.6
## 4    111           6     3.89        7.4
## 5     44           1     3.57        4.8
## 6     77           3     3.57        6.4
## 7     80           3     3.03        7.0
## 8     66           2     3.51        5.6
## 9    109           5     3.54        7.3
## 10    76           3     3.25        6.4

Regression Analysis: Travel Time versus Miles Travelled

Single variable linear regression

fit.miles <- lm(travelTime ~ miles, data=rds)
summary(fit.miles)
## 
## Call:
## lm(formula = travelTime ~ miles, data = rds)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -0.4425 -0.2512 -0.0211  0.2124  0.5939 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept) 3.185560   0.466951   6.822 0.000135 ***
## miles       0.040257   0.005706   7.055 0.000107 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.3423 on 8 degrees of freedom
## Multiple R-squared:  0.8615, Adjusted R-squared:  0.8442 
## F-statistic: 49.77 on 1 and 8 DF,  p-value: 0.0001067

Estimate travel time for 84 miles trip (95% confidence interval):

predict(fit.miles, data.frame(miles=84), interval="predict")
##       fit      lwr      upr
## 1 6.56713 5.737214 7.397046

Regression Analysis: Travel Time versus Number of Deliveries

Single variable linear regression

fit.numdel <- lm(travelTime ~ numDelivers, data=rds)
summary(fit.numdel)
## 
## Call:
## lm(formula = travelTime ~ numDelivers, data = rds)
## 
## Residuals:
##      Min       1Q   Median       3Q      Max 
## -0.54367 -0.19061  0.05808  0.13614  0.65983 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  4.84541    0.26535  18.261 8.32e-08 ***
## numDelivers  0.49825    0.07692   6.478 0.000193 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 0.3681 on 8 degrees of freedom
## Multiple R-squared:  0.8399, Adjusted R-squared:  0.8199 
## F-statistic: 41.96 on 1 and 8 DF,  p-value: 0.0001926

Estimate travel time for 4 deliveries (95% confidence interval):

predict(fit.numdel, data.frame(numDelivers=4), interval="predict")
##        fit      lwr      upr
## 1 6.838428 5.933978 7.742878

Regression Analysis: Travel Time versus Gas Price

Single variable linear regression

fit.gas <- lm(travelTime ~ gasPrice, data=rds)
summary(fit.gas)
## 
## Call:
## lm(formula = travelTime ~ gasPrice, data = rds)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -1.6330 -0.5518  0.1116  0.6175  1.0051 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)
## (Intercept)   3.5365     3.6490   0.969    0.361
## gasPrice      0.8113     1.0345   0.784    0.455
## 
## Residual standard error: 0.8864 on 8 degrees of freedom
## Multiple R-squared:  0.0714, Adjusted R-squared:  -0.04467 
## F-statistic: 0.6151 on 1 and 8 DF,  p-value: 0.4555

Compare various single variable regression models

data <- sapply(list(fit.miles, fit.numdel, fit.gas), function(f) {
  s <- summary(f)
  formula_name <- gsub("travelTime ~ ", "", deparse(f$call$formula))
  p_value <- pf(s$fstat[1], s$fstat[2], s$fstat[3], lower.tail=F)
  
  list(name=formula_name,
       fstat=s$fstatistic[1],      
       pvalue=p_value,
       sigma=s$sigma,
       adj.rsq=s$adj.r.squared)
})
t(data)
##      name          fstat     pvalue       sigma     adj.rsq    
## [1,] "miles"       49.76813  0.0001066757 0.3423088 0.8442047  
## [2,] "numDelivers" 41.95894  0.0001926088 0.3680914 0.8198521  
## [3,] "gasPrice"    0.6151381 0.4554534    0.8864028 -0.04467275

```