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.

ols_step_both_p(model, ...)

# S3 method for default
ols_step_both_p(model, pent = 0.1, prem = 0.3,
  details = FALSE, ...)

# S3 method for ols_step_both_p
plot(x, model = NA, ...)

Arguments

model

An object of class lm; the model should include all candidate predictor variables.

...

Other arguments.

pent

p value; variables with p value less than pent will enter into the model.

prem

p value; variables with p more than prem will be removed from the model.

details

Logical; if TRUE, will print the regression result at each step.

x

An object of class ols_step_both_p.

Value

ols_step_both_p returns an object of class "ols_step_both_p". An object of class "ols_step_both_p" is a list containing the following components:

model

final model; an object of class lm

orders

candidate predictor variables according to the order by which they were added or removed from the model

method

addition/deletion

steps

total number of steps

predictors

variables retained in the model (after addition)

rsquare

coefficient of determination

aic

akaike information criteria

sbc

bayesian information criteria

sbic

sawa's bayesian information criteria

adjr

adjusted r-square

rmse

root mean square error

mallows_cp

mallow's Cp

indvar

predictors

Deprecated Function

ols_stepwise() has been deprecated. Instead use ols_step_both_p().

References

Chatterjee, Samprit and Hadi, Ali. Regression Analysis by Example. 5th ed. N.p.: John Wiley & Sons, 2012. Print.

Examples

# stepwise regression model <- lm(y ~ ., data = surgical) ols_step_both_p(model)
#> Stepwise Selection Method #> --------------------------- #> #> Candidate Terms: #> #> 1. bcs #> 2. pindex #> 3. enzyme_test #> 4. liver_test #> 5. age #> 6. gender #> 7. alc_mod #> 8. alc_heavy #> #> We are selecting variables based on p value... #> #> Variables Entered/Removed: #> #> <U+2714> liver_test #> <U+2714> alc_heavy #> <U+2714> enzyme_test #> <U+2714> pindex #> <U+2714> bcs #> #> No more variables to be added/removed. #> #> #> Final Model Output #> ------------------ #> #> Model Summary #> ----------------------------------------------------------------- #> R 0.884 RMSE 195.454 #> R-Squared 0.781 Coef. Var 27.839 #> Adj. R-Squared 0.758 MSE 38202.426 #> Pred R-Squared 0.700 MAE 137.656 #> ----------------------------------------------------------------- #> RMSE: Root Mean Square Error #> MSE: Mean Square Error #> MAE: Mean Absolute Error #> #> ANOVA #> ----------------------------------------------------------------------- #> Sum of #> Squares DF Mean Square F Sig. #> ----------------------------------------------------------------------- #> Regression 6535804.090 5 1307160.818 34.217 0.0000 #> Residual 1833716.447 48 38202.426 #> Total 8369520.537 53 #> ----------------------------------------------------------------------- #> #> Parameter Estimates #> ------------------------------------------------------------------------------------------------ #> model Beta Std. Error Std. Beta t Sig lower upper #> ------------------------------------------------------------------------------------------------ #> (Intercept) -1178.330 208.682 -5.647 0.000 -1597.914 -758.746 #> liver_test 58.064 40.144 0.156 1.446 0.155 -22.652 138.779 #> alc_heavy 317.848 71.634 0.314 4.437 0.000 173.818 461.878 #> enzyme_test 9.748 1.656 0.521 5.887 0.000 6.419 13.077 #> pindex 8.924 1.808 0.380 4.935 0.000 5.288 12.559 #> bcs 59.864 23.060 0.241 2.596 0.012 13.498 106.230 #> ------------------------------------------------------------------------------------------------
#> #> Stepwise Selection Summary #> ------------------------------------------------------------------------------------------ #> Added/ Adj. #> Step Variable Removed R-Square R-Square C(p) AIC RMSE #> ------------------------------------------------------------------------------------------ #> 1 liver_test addition 0.455 0.444 62.5120 771.8753 296.2992 #> 2 alc_heavy addition 0.567 0.550 41.3680 761.4394 266.6484 #> 3 enzyme_test addition 0.659 0.639 24.3380 750.5089 238.9145 #> 4 pindex addition 0.750 0.730 7.5370 735.7146 206.5835 #> 5 bcs addition 0.781 0.758 3.1920 730.6204 195.4544 #> ------------------------------------------------------------------------------------------
# stepwise regression plot model <- lm(y ~ ., data = surgical) k <- ols_step_both_p(model)
#> Stepwise Selection Method #> --------------------------- #> #> Candidate Terms: #> #> 1. bcs #> 2. pindex #> 3. enzyme_test #> 4. liver_test #> 5. age #> 6. gender #> 7. alc_mod #> 8. alc_heavy #> #> We are selecting variables based on p value... #> #> Variables Entered/Removed: #> #> <U+2714> liver_test #> <U+2714> alc_heavy #> <U+2714> enzyme_test #> <U+2714> pindex #> <U+2714> bcs #> #> No more variables to be added/removed. #> #> #> Final Model Output #> ------------------ #> #> Model Summary #> ----------------------------------------------------------------- #> R 0.884 RMSE 195.454 #> R-Squared 0.781 Coef. Var 27.839 #> Adj. R-Squared 0.758 MSE 38202.426 #> Pred R-Squared 0.700 MAE 137.656 #> ----------------------------------------------------------------- #> RMSE: Root Mean Square Error #> MSE: Mean Square Error #> MAE: Mean Absolute Error #> #> ANOVA #> ----------------------------------------------------------------------- #> Sum of #> Squares DF Mean Square F Sig. #> ----------------------------------------------------------------------- #> Regression 6535804.090 5 1307160.818 34.217 0.0000 #> Residual 1833716.447 48 38202.426 #> Total 8369520.537 53 #> ----------------------------------------------------------------------- #> #> Parameter Estimates #> ------------------------------------------------------------------------------------------------ #> model Beta Std. Error Std. Beta t Sig lower upper #> ------------------------------------------------------------------------------------------------ #> (Intercept) -1178.330 208.682 -5.647 0.000 -1597.914 -758.746 #> liver_test 58.064 40.144 0.156 1.446 0.155 -22.652 138.779 #> alc_heavy 317.848 71.634 0.314 4.437 0.000 173.818 461.878 #> enzyme_test 9.748 1.656 0.521 5.887 0.000 6.419 13.077 #> pindex 8.924 1.808 0.380 4.935 0.000 5.288 12.559 #> bcs 59.864 23.060 0.241 2.596 0.012 13.498 106.230 #> ------------------------------------------------------------------------------------------------
plot(k)
# final model k$model
#> #> Call: #> lm(formula = paste(response, "~", paste(preds, collapse = " + ")), #> data = l) #> #> Coefficients: #> (Intercept) liver_test alc_heavy enzyme_test pindex bcs #> -1178.330 58.064 317.848 9.748 8.924 59.864 #>