Untitled

head(cars)
  speed dist
1     4    2
2     4   10
3     7    4
4     7   22
5     8   16
6     9   10
# Get a summary of the dataset
summary(cars)
     speed           dist       
 Min.   : 4.0   Min.   :  2.00  
 1st Qu.:12.0   1st Qu.: 26.00  
 Median :15.0   Median : 36.00  
 Mean   :15.4   Mean   : 42.98  
 3rd Qu.:19.0   3rd Qu.: 56.00  
 Max.   :25.0   Max.   :120.00  
covariance_speed_dist <- cov(cars$speed, cars$dist)

# Calculate the variance of speed
variance_speed <- var(cars$speed)

# Calculate the slope parameter using the formula
beta1_calculated <- covariance_speed_dist / variance_speed

# Print the calculated slope
print(beta1_calculated)
[1] 3.932409
# Run the linear regression model
# The formula is dist ~ speed
model <- lm(dist ~ speed, data = cars)

# Print the summary of the model to see the regression coefficients
summary(model)

Call:
lm(formula = dist ~ speed, data = cars)

Residuals:
    Min      1Q  Median      3Q     Max 
-29.069  -9.525  -2.272   9.215  43.201 

Coefficients:
            Estimate Std. Error t value Pr(>|t|)    
(Intercept) -17.5791     6.7584  -2.601   0.0123 *  
speed         3.9324     0.4155   9.464 1.49e-12 ***
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 15.38 on 48 degrees of freedom
Multiple R-squared:  0.6511,    Adjusted R-squared:  0.6438 
F-statistic: 89.57 on 1 and 48 DF,  p-value: 1.49e-12
# Extract the slope coefficient from the model summary
# The slope for speed is labeled as "speed" in the coefficients table
beta1_regression <- coef(model)["speed"]

# Print the slope from the regression model
print(beta1_regression)
   speed 
3.932409 
# Check if the two calculated values are equal
are_equal <- all.equal(beta1_calculated, as.numeric(beta1_regression))

print(paste("The slope calculated by cov(speed,dist)/var(speed) is:", beta1_calculated))
[1] "The slope calculated by cov(speed,dist)/var(speed) is: 3.93240875912409"
print(paste("The slope from the lm() function is:", as.numeric(beta1_regression)))
[1] "The slope from the lm() function is: 3.93240875912409"
print(paste("Are the two values equal?", are_equal))
[1] "Are the two values equal? TRUE"