Build regression model from a set of candidate predictor variables by removing predictors based on p values, in a stepwise manner until there is no variable left to remove any more.

ols_step_backward_p(model, ...)

# S3 method for default
ols_step_backward_p(model, prem = 0.3, details = FALSE,
  ...)

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

Arguments

model

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

...

Other inputs.

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_backward_p.

Value

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

model

final model; an object of class lm

steps

total number of steps

removed

variables removed from the model

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_step_backward() has been deprecated. Instead use ols_step_backward_p().

References

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

See also

Examples

# stepwise backward regression model <- lm(y ~ ., data = surgical) ols_step_backward_p(model)
#> Backward Elimination 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 eliminating variables based on p value... #> #> Variables Removed: #> #> <U+2716> alc_mod #> <U+2716> gender #> <U+2716> age #> #> No more variables satisfy the condition of p value = 0.3 #> #> #> 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 #> bcs 59.864 23.060 0.241 2.596 0.012 13.498 106.230 #> pindex 8.924 1.808 0.380 4.935 0.000 5.288 12.559 #> enzyme_test 9.748 1.656 0.521 5.887 0.000 6.419 13.077 #> 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 #> ------------------------------------------------------------------------------------------------
#> #> #> Elimination Summary #> -------------------------------------------------------------------------- #> Variable Adj. #> Step Removed R-Square R-Square C(p) AIC RMSE #> -------------------------------------------------------------------------- #> 1 alc_mod 0.7818 0.7486 7.0141 734.4068 199.2637 #> 2 gender 0.7814 0.7535 5.0870 732.4942 197.2921 #> 3 age 0.7809 0.7581 3.1925 730.6204 195.4544 #> --------------------------------------------------------------------------
# stepwise backward regression plot model <- lm(y ~ ., data = surgical) k <- ols_step_backward_p(model)
#> Backward Elimination 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 eliminating variables based on p value... #> #> Variables Removed: #> #> <U+2716> alc_mod #> <U+2716> gender #> <U+2716> age #> #> No more variables satisfy the condition of p value = 0.3 #> #> #> 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 #> bcs 59.864 23.060 0.241 2.596 0.012 13.498 106.230 #> pindex 8.924 1.808 0.380 4.935 0.000 5.288 12.559 #> enzyme_test 9.748 1.656 0.521 5.887 0.000 6.419 13.077 #> 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 #> ------------------------------------------------------------------------------------------------
plot(k)
# final model k$model
#> #> Call: #> lm(formula = paste(response, "~", paste(preds, collapse = " + ")), #> data = l) #> #> Coefficients: #> (Intercept) bcs pindex enzyme_test liver_test alc_heavy #> -1178.330 59.864 8.924 9.748 58.064 317.848 #>