Implementacion de una funcion para Realizar Forward y Backward Stepwise Selection

Forward Stepwise Selection

library(leaps)
regfit.fwd <- regsubsets(y ~ x + I(x^2) + I(x^3) + I(x^4) + I(x^5) + I(x^6) + I(x^7) + I(x^8) + I(x^9) + I(x^10), data = data.full, nvmax = 10, method = "forward")
reg.summary.fwd <- summary(regfit.fwd)
par(mfrow = c(2, 2))
plot(reg.summary.fwd$cp, xlab = "Numero de variables", ylab = "C_p", type = "l")
points(which.min(reg.summary.fwd$cp), reg.summary.fwd$cp[which.min(reg.summary.fwd$cp)], 
       col = "red", cex = 2, pch = 20)
plot(reg.summary.fwd$bic, xlab = "Numero de variables", ylab = "BIC", type = "l")
points(which.min(reg.summary.fwd$bic), reg.summary.fwd$bic[which.min(reg.summary.fwd$bic)], 
       col = "red", cex = 2, pch = 20)
plot(reg.summary.fwd$adjr2, xlab = "Numero de variables", ylab = "Ajuste R^2", type = "l")
points(which.max(reg.summary.fwd$adjr2), reg.summary.fwd$adjr2[which.max(reg.summary.fwd$adjr2)], 
       col = "red", cex = 2, pch = 20)
mtext("Graficas de C_p, BIC y ajuste de R^2 Para forward stepwise selection", side = 3, line = -2, outer = TRUE)

coef(regfit.fwd, which.max(reg.summary.fwd$adjr2))
(Intercept)           x      I(x^2)      I(x^5) 
 2.07219472  3.44514720 -1.15676236  0.09022577 

De lo anterior podemos decir que selecionaremos el modelo de tres variables

coef(regfit.fwd, which.max(reg.summary.fwd$adjr2))
(Intercept)           x      I(x^2)      I(x^5) 
 2.07219472  3.44514720 -1.15676236  0.09022577 

Backward Stepwise Selection

library(leaps)
b0 <- 2
b1 <- 3
b2 <- -1
b3 <- 0.5
y <- b0 + b1 * x + b2 * x^2 + b3 * x^3 + eps
regfit.bwd <- regsubsets(y ~ x + I(x^2) + I(x^3) + I(x^4) + I(x^5) + I(x^6) + I(x^7) + I(x^8) + I(x^9) + I(x^10), data = data.full, nvmax = 10, method = "backward")
reg.summary.bwd <- summary(regfit.bwd)
par(mfrow = c(2, 2))
plot(reg.summary.bwd$cp, xlab = "Number of variables", ylab = "C_p", type = "l")
points(which.min(reg.summary.bwd$cp), reg.summary.bwd$cp[which.min(reg.summary.bwd$cp)], col = "red", cex = 2, pch = 20)
plot(reg.summary.bwd$bic, xlab = "Number of variables", ylab = "BIC", type = "l")
points(which.min(reg.summary.bwd$bic), reg.summary.bwd$bic[which.min(reg.summary.bwd$bic)], col = "red", cex = 2, pch = 20)
plot(reg.summary.bwd$adjr2, xlab = "Number of variables", ylab = "Adjusted R^2", type = "l")
points(which.max(reg.summary.bwd$adjr2), reg.summary.bwd$adjr2[which.max(reg.summary.bwd$adjr2)], col = "red", cex = 2, pch = 20)
mtext("Plots of C_p, BIC and adjusted R^2 for backward stepwise selection", side = 3, line = -2, outer = TRUE)

En base a lo anterior, selecionamos el modelo de tres variables

coef(regfit.bwd, which.max(reg.summary.bwd$adjr2))
(Intercept)           x      I(x^2)      I(x^5) 
 2.07219472  3.44514720 -1.15676236  0.09022577 

Selecionamos el modelo de tres variables con x, x^2 y x^5

LS0tDQp0aXRsZTogIiBIb2phIERlIFRyYWJham8gNiAtIENlc2FyIFRpbm9jbyBBbHZhcmV6IC0gMTMwMDMzODciDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQojIyBJbXBsZW1lbnRhY2lvbiBkZSB1bmEgZnVuY2lvbiBwYXJhIFJlYWxpemFyIEZvcndhcmQgeSBCYWNrd2FyZCBTdGVwd2lzZSBTZWxlY3Rpb24NCg0KIyMjIyBGb3J3YXJkIFN0ZXB3aXNlIFNlbGVjdGlvbg0KDQpgYGB7cn0NCg0KbGlicmFyeShsZWFwcykNCg0KYjAgPC0gMg0KYjEgPC0gMw0KYjIgPC0gLTENCmIzIDwtIDAuNQ0KeSA8LSBiMCArIGIxICogeCArIGIyICogeF4yICsgYjMgKiB4XjMgKyBlcHMNCg0KDQpyZWdmaXQuZndkIDwtIHJlZ3N1YnNldHMoeSB+IHggKyBJKHheMikgKyBJKHheMykgKyBJKHheNCkgKyBJKHheNSkgKyBJKHheNikgKyBJKHheNykgKyBJKHheOCkgKyBJKHheOSkgKyBJKHheMTApLCBkYXRhID0gZGF0YS5mdWxsLCBudm1heCA9IDEwLCBtZXRob2QgPSAiZm9yd2FyZCIpDQpyZWcuc3VtbWFyeS5md2QgPC0gc3VtbWFyeShyZWdmaXQuZndkKQ0KcGFyKG1mcm93ID0gYygyLCAyKSkNCnBsb3QocmVnLnN1bW1hcnkuZndkJGNwLCB4bGFiID0gIk51bWVybyBkZSB2YXJpYWJsZXMiLCB5bGFiID0gIkNfcCIsIHR5cGUgPSAibCIpDQpwb2ludHMod2hpY2gubWluKHJlZy5zdW1tYXJ5LmZ3ZCRjcCksIHJlZy5zdW1tYXJ5LmZ3ZCRjcFt3aGljaC5taW4ocmVnLnN1bW1hcnkuZndkJGNwKV0sIA0KICAgICAgIGNvbCA9ICJyZWQiLCBjZXggPSAyLCBwY2ggPSAyMCkNCnBsb3QocmVnLnN1bW1hcnkuZndkJGJpYywgeGxhYiA9ICJOdW1lcm8gZGUgdmFyaWFibGVzIiwgeWxhYiA9ICJCSUMiLCB0eXBlID0gImwiKQ0KcG9pbnRzKHdoaWNoLm1pbihyZWcuc3VtbWFyeS5md2QkYmljKSwgcmVnLnN1bW1hcnkuZndkJGJpY1t3aGljaC5taW4ocmVnLnN1bW1hcnkuZndkJGJpYyldLCANCiAgICAgICBjb2wgPSAicmVkIiwgY2V4ID0gMiwgcGNoID0gMjApDQpwbG90KHJlZy5zdW1tYXJ5LmZ3ZCRhZGpyMiwgeGxhYiA9ICJOdW1lcm8gZGUgdmFyaWFibGVzIiwgeWxhYiA9ICJBanVzdGUgUl4yIiwgdHlwZSA9ICJsIikNCnBvaW50cyh3aGljaC5tYXgocmVnLnN1bW1hcnkuZndkJGFkanIyKSwgcmVnLnN1bW1hcnkuZndkJGFkanIyW3doaWNoLm1heChyZWcuc3VtbWFyeS5md2QkYWRqcjIpXSwgDQogICAgICAgY29sID0gInJlZCIsIGNleCA9IDIsIHBjaCA9IDIwKQ0KbXRleHQoIkdyYWZpY2FzIGRlIENfcCwgQklDIHkgYWp1c3RlIGRlIFJeMiBQYXJhIGZvcndhcmQgc3RlcHdpc2Ugc2VsZWN0aW9uIiwgc2lkZSA9IDMsIGxpbmUgPSAtMiwgb3V0ZXIgPSBUUlVFKQ0KDQoNCmBgYA0KDQpEZSBsbyBhbnRlcmlvciBwb2RlbW9zIGRlY2lyIHF1ZSBzZWxlY2lvbmFyZW1vcyBlbCBtb2RlbG8gZGUgdHJlcyB2YXJpYWJsZXMNCg0KYGBge3J9DQpjb2VmKHJlZ2ZpdC5md2QsIHdoaWNoLm1heChyZWcuc3VtbWFyeS5md2QkYWRqcjIpKQ0KYGBgDQoNCiMjIyMgQmFja3dhcmQgU3RlcHdpc2UgU2VsZWN0aW9uDQoNCmBgYHtyfQ0KbGlicmFyeShsZWFwcykNCg0KYjAgPC0gMg0KYjEgPC0gMw0KYjIgPC0gLTENCmIzIDwtIDAuNQ0KeSA8LSBiMCArIGIxICogeCArIGIyICogeF4yICsgYjMgKiB4XjMgKyBlcHMNCg0KcmVnZml0LmJ3ZCA8LSByZWdzdWJzZXRzKHkgfiB4ICsgSSh4XjIpICsgSSh4XjMpICsgSSh4XjQpICsgSSh4XjUpICsgSSh4XjYpICsgSSh4XjcpICsgSSh4XjgpICsgSSh4XjkpICsgSSh4XjEwKSwgZGF0YSA9IGRhdGEuZnVsbCwgbnZtYXggPSAxMCwgbWV0aG9kID0gImJhY2t3YXJkIikNCnJlZy5zdW1tYXJ5LmJ3ZCA8LSBzdW1tYXJ5KHJlZ2ZpdC5id2QpDQpwYXIobWZyb3cgPSBjKDIsIDIpKQ0KcGxvdChyZWcuc3VtbWFyeS5id2QkY3AsIHhsYWIgPSAiTnVtZXJvIGRlIHZhcmlhYmxlcyIsIHlsYWIgPSAiQ19wIiwgdHlwZSA9ICJsIikNCnBvaW50cyh3aGljaC5taW4ocmVnLnN1bW1hcnkuYndkJGNwKSwgcmVnLnN1bW1hcnkuYndkJGNwW3doaWNoLm1pbihyZWcuc3VtbWFyeS5id2QkY3ApXSwgDQogICAgICAgY29sID0gInJlZCIsIGNleCA9IDIsIHBjaCA9IDIwKQ0KcGxvdChyZWcuc3VtbWFyeS5id2QkYmljLCB4bGFiID0gIk51bWVybyBkZSB2YXJpYWJsZXMiLCB5bGFiID0gIkJJQyIsIHR5cGUgPSAibCIpDQpwb2ludHMod2hpY2gubWluKHJlZy5zdW1tYXJ5LmJ3ZCRiaWMpLCByZWcuc3VtbWFyeS5id2QkYmljW3doaWNoLm1pbihyZWcuc3VtbWFyeS5id2QkYmljKV0sDQogICAgICAgY29sID0gInJlZCIsIGNleCA9IDIsIHBjaCA9IDIwKQ0KcGxvdChyZWcuc3VtbWFyeS5id2QkYWRqcjIsIHhsYWIgPSAiTnVtZXJvIGRlIHZhcmlhYmxlcyIsIHlsYWIgPSAiQWp1c3RlIFJeMiIsIHR5cGUgPSAibCIpDQpwb2ludHMod2hpY2gubWF4KHJlZy5zdW1tYXJ5LmJ3ZCRhZGpyMiksIHJlZy5zdW1tYXJ5LmJ3ZCRhZGpyMlt3aGljaC5tYXgocmVnLnN1bW1hcnkuYndkJGFkanIyKV0sIA0KICAgICAgIGNvbCA9ICJyZWQiLCBjZXggPSAyLCBwY2ggPSAyMCkNCm10ZXh0KCJHcmFmaWNhIGRlIENfcCwgQklDIHkgYWp1c3RlIFJeMiBwYXJhIGJhY2t3YXJkIHN0ZXB3aXNlIHNlbGVjdGlvbiIsIHNpZGUgPSAzLCBsaW5lID0gLTIsIG91dGVyID0gVFJVRSkNCmBgYA0KDQpFbiBiYXNlIGEgbG8gYW50ZXJpb3IsIHNlbGVjaW9uYW1vcyBlbCBtb2RlbG8gZGUgdHJlcyB2YXJpYWJsZXMNCg0KYGBge3J9DQpjb2VmKHJlZ2ZpdC5id2QsIHdoaWNoLm1heChyZWcuc3VtbWFyeS5id2QkYWRqcjIpKQ0KYGBgDQoNClNlbGVjaW9uYW1vcyBlbCBtb2RlbG8gZGUgdHJlcyB2YXJpYWJsZXMgY29uIHgsIHheMiB5IHheNQ0KDQo=