You can use the following syntax to extract the root mean square error (RMSE) from the lm() function in R:
sqrt(mean(model$residuals^2))
The following example shows how to use this syntax in practice.
Related: How to Interpret Root Mean Square Error (RMSE)
Example: Extract RMSE from lm() in R
Suppose we fit the following multiple linear regression model in R:
#create data frame df frame(rating=c(67, 75, 79, 85, 90, 96, 97), points=c(8, 12, 16, 15, 22, 28, 24), assists=c(4, 6, 6, 5, 3, 8, 7), rebounds=c(1, 4, 3, 3, 2, 6, 7)) #fit multiple linear regression model model
We can use the summary() function to view the entire summary of the regression model:
#view model summary
summary(model)
Call:
lm(formula = rating ~ points + assists + rebounds, data = df)
Residuals:
1 2 3 4 5 6 7
-1.5902 -1.7181 0.2413 4.8597 -1.0201 -0.6082 -0.1644
Coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 66.4355 6.6932 9.926 0.00218 **
points 1.2152 0.2788 4.359 0.02232 *
assists -2.5968 1.6263 -1.597 0.20860
rebounds 2.8202 1.6118 1.750 0.17847
---
Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
Residual standard error: 3.193 on 3 degrees of freedom
Multiple R-squared: 0.9589, Adjusted R-squared: 0.9179
F-statistic: 23.35 on 3 and 3 DF, p-value: 0.01396
To only extract the root mean square error (RMSE) of the model, we can use the following syntax:
#extract RMSE of regression model
sqrt(mean(model$residuals^2))
[1] 2.090564
The RMSE of the model is 2.090564.
This represents the average distance between the predicted values from the model and the actual values in the dataset.
Note that the lower the RMSE, the better a given model is able to “fit” a dataset.
When comparing several different regression models, the model with the lowest RMSE is said to be the one that “fits” the dataset the best.
Additional Resources
The following tutorials explain how to perform other common tasks in R:
How to Perform Simple Linear Regression in R
How to Perform Multiple Linear Regression in R
How to Create a Residual Plot in R