2024-11-15

Introduction

Simple Linear Regression is a method to model the relationship between two variables by fitting a linear equation to observed data.

Mathematically: \[ y = \beta_0 + \beta_1 x + \epsilon \]

Use Case in Statistics

  • Predicting outcomes based on observed values
  • Example: Predicting weight based on height
  • Common applications:
    • Economics (e.g., predicting sales)
    • Biology (e.g., growth rates)
    • Machine Learning (e.g., feature engineering)

Dataset Overview

We will use the mtcars dataset available in R.

summary(mtcars)
##       mpg             cyl             disp             hp       
##  Min.   :10.40   Min.   :4.000   Min.   : 71.1   Min.   : 52.0  
##  1st Qu.:15.43   1st Qu.:4.000   1st Qu.:120.8   1st Qu.: 96.5  
##  Median :19.20   Median :6.000   Median :196.3   Median :123.0  
##  Mean   :20.09   Mean   :6.188   Mean   :230.7   Mean   :146.7  
##  3rd Qu.:22.80   3rd Qu.:8.000   3rd Qu.:326.0   3rd Qu.:180.0  
##  Max.   :33.90   Max.   :8.000   Max.   :472.0   Max.   :335.0  
##       drat             wt             qsec             vs        
##  Min.   :2.760   Min.   :1.513   Min.   :14.50   Min.   :0.0000  
##  1st Qu.:3.080   1st Qu.:2.581   1st Qu.:16.89   1st Qu.:0.0000  
##  Median :3.695   Median :3.325   Median :17.71   Median :0.0000  
##  Mean   :3.597   Mean   :3.217   Mean   :17.85   Mean   :0.4375  
##  3rd Qu.:3.920   3rd Qu.:3.610   3rd Qu.:18.90   3rd Qu.:1.0000  
##  Max.   :4.930   Max.   :5.424   Max.   :22.90   Max.   :1.0000  
##        am              gear            carb      
##  Min.   :0.0000   Min.   :3.000   Min.   :1.000  
##  1st Qu.:0.0000   1st Qu.:3.000   1st Qu.:2.000  
##  Median :0.0000   Median :4.000   Median :2.000  
##  Mean   :0.4062   Mean   :3.688   Mean   :2.812  
##  3rd Qu.:1.0000   3rd Qu.:4.000   3rd Qu.:4.000  
##  Max.   :1.0000   Max.   :5.000   Max.   :8.000

Scatterplot code with Linear Fit

library(ggplot2)

# Scatterplot with ggplot
ggplot(mtcars, aes(x = wt, y = mpg)) +
  geom_point(size = 3, color = "darkblue") +
  geom_smooth(method = "lm", col = "blue") +
  labs(title = "Scatterplot of Weight vs MPG",
       x = "Weight of the car",
       y = "Miles Per Gallon (MPG)") +
  theme(plot.title = element_text(size = 16),
        axis.title = element_text(size = 14),
        axis.text = element_text(size = 12))

Scatter plot

Model Summary

\[ y = \beta_0 + \beta_1 x \]

## 
## Call:
## lm(formula = mpg ~ wt, data = mtcars)
## 
## Residuals:
##     Min      1Q  Median      3Q     Max 
## -4.5432 -2.3647 -0.1252  1.4096  6.8727 
## 
## Coefficients:
##             Estimate Std. Error t value Pr(>|t|)    
## (Intercept)  37.2851     1.8776  19.858  < 2e-16 ***
## wt           -5.3445     0.5591  -9.559 1.29e-10 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
## 
## Residual standard error: 3.046 on 30 degrees of freedom
## Multiple R-squared:  0.7528, Adjusted R-squared:  0.7446 
## F-statistic: 91.38 on 1 and 30 DF,  p-value: 1.294e-10

Residual Plot (ggplot2)

Correlation Heatmap

Conclusion

Key Insights:

Weight (wt) has a strong negative correlation with Miles Per Gallon (mpg), as shown in the scatterplot and confirmed by the regression model. The linear regression model captures the overall trend, but residuals suggest potential for improvement by adding more variables.