Permalink
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
144 lines (102 sloc) 4.25 KB
---
title: "Introduction to olsrr"
output: rmarkdown::html_vignette
vignette: >
%\VignetteIndexEntry{Introduction to olsrr}
%\VignetteEngine{knitr::rmarkdown}
%\VignetteEncoding{UTF-8}
---
## Introduction
The olsrr package provides following tools for teaching and learning OLS regression using R:
- comprehensive regression output
- residual diagnostics
- measures of influence
- heteroskedasticity tests
- collinearity diagnostics
- model fit assessment
- variable contribution assessment
- variable selection procedures
```{r, echo=FALSE, message=FALSE}
library(olsrr)
library(dplyr)
library(ggplot2)
library(gridExtra)
library(purrr)
library(tibble)
library(nortest)
library(goftest)
```
This document is a quickstart guide to the tools offered by **olsrr**. Other vignettes provide more details on specific topics:
- Residual Diagnostics: Includes plots to examine residuals to validate OLS assumptions
- Variable selection: Differnt variable selection procedures such as all possible regression, best subset regression, stepwise regression, stepwise forward regression and stepwise backward regression
- Heteroskedasticity: Tests for heteroskedasticity include bartlett test, breusch pagan test,
score test and f test
- Measures of influence: Includes 10 different plots to detect and identify influential observations
- Collinearity diagnostics: VIF, Tolerance and condition indices to detect collinearity and plots for assessing mode fit and contributions of variables
## Regression
```{r regress}
ols_regress(mpg ~ disp + hp + wt + qsec, data = mtcars)
```
In the presence of interaction terms in the model, the predictors are
scaled and centered before computing the standardized betas. `ols_regress()` will detect interaction terms automatically but in case you have created a new variable instead of using the inline function `*`, you can indicate the presence of interaction terms by setting `iterm` to `TRUE`.
## Residual vs Fitted Values Plot
Plot to detect non-linearity, unequal error variances, and outliers.
```{r rvsfplot, fig.width=5, fig.height=5, fig.align='center'}
model <- lm(mpg ~ disp + hp + wt + qsec, data = mtcars)
ols_plot_resid_fit(model)
```
## DFBETAs Panel
DFBETAs measure the difference in each parameter estimate with and without the influential observation.
`dfbetas_panel` creates plots to detect influential observations using DFBETAs.
```{r dfbpanel, fig.width=7, fig.height=7, fig.align='center'}
model <- lm(mpg ~ disp + hp + wt, data = mtcars)
ols_plot_dfbetas(model)
```
## Residual Fit Spread Plot
Plot to detect non-linearity, influential observations and outliers.
```{r rfsplot, fig.width=10, fig.height=5, fig.align='center'}
model <- lm(mpg ~ disp + hp + wt + qsec, data = mtcars)
ols_plot_resid_fit_spread(model)
```
## Breusch Pagan Test
Breusch Pagan test is used to test for herteroskedasticity (non-constant error variance). It tests whether the variance of the errors from a regression is dependent on the values of the independent variables. It is a $\chi^{2}$ test.
```{r bp1}
model <- lm(mpg ~ disp + hp + wt + drat, data = mtcars)
ols_test_breusch_pagan(model)
```
## Collinearity Diagnostics
```{r colldiag}
model <- lm(mpg ~ disp + hp + wt + qsec, data = mtcars)
ols_coll_diag(model)
```
## Stepwise Regression
Build regression model from a set of candidate predictor variables by entering and removing predictors based on
p values, in a stepwise manner until there is no variable left to enter or remove any more.
### Variable Selection
```{r stepwise1}
# stepwise regression
model <- lm(y ~ ., data = surgical)
ols_step_both_p(model)
```
### Plot
```{r stepwise2, fig.width=10, fig.height=15, fig.align='center'}
model <- lm(y ~ ., data = surgical)
k <- ols_step_both_p(model)
plot(k)
```
## Stepwise AIC Backward Regression
Build regression model from a set of candidate predictor variables by removing predictors based on
Akaike Information Criteria, in a stepwise manner until there is no variable left to remove any more.
### Variable Selection
```{r stepaicb1}
# stepwise aic backward regression
model <- lm(y ~ ., data = surgical)
k <- ols_step_backward_aic(model)
k
```
### Plot
```{r stepaicb2, fig.width=5, fig.height=5, fig.align='center'}
model <- lm(y ~ ., data = surgical)
k <- ols_step_backward_aic(model)
plot(k)
```