I have a linear regression model:

$Y~X_1+X_2+X_3+X_4+X_5+X_6+X_7+X_8+X_9$ and I need to create a function that find all possible models (e.g.

  • $Y = X_1+X_2+X_3+X_4$

  • $Y = X_2+X_3+X_4$

  • $Y = X_1+X_3+X_4+X_5+X_6$ etc) and then calculates each model's DIC values.

Can someone help me since I'm not experienced at programming?

  • 1
    $\begingroup$ Just out of curiousity, why do you want this technique? Is it to find the most overfit model? $\endgroup$
    – IWS
    Apr 4 '17 at 7:29
  • $\begingroup$ It's in the context of my internship project where I have to use different model selection criteria for a given dataset $\endgroup$
    – j.erm
    Apr 4 '17 at 9:35
  • $\begingroup$ See the dredge function in package MuMIn. $\endgroup$
    – Roland
    Apr 4 '17 at 12:48
  • 1
    $\begingroup$ R has a package for all possible subsets: leaps (on CRAN) $\endgroup$ Sep 21 '18 at 15:36

Just use a backward or forward method to do so.

Forward: Just add and remove all your independent variables and see how each variable affect the model. Then keep adding and subtracting variables until you got a good model.

Backward: Add all variables and then remove them one by one and readd them to evaluate your model.

  • 2
    $\begingroup$ On could argue that "just use" should rather be replaced with "don't use": stats.stackexchange.com/questions/20836/… $\endgroup$
    – Tim
    Apr 4 '17 at 8:17
  • $\begingroup$ Fitting every model and using a criterion (AIC, BIC, BICc) is a valid way to do model selection for a small number of predictors. Backwards and forward variable selection have fallen out of favor because they produce highly variable results. $\endgroup$
    – Eli
    Sep 21 '18 at 15:41
  • $\begingroup$ This algorithm does not explore the "all possible subsets" of models requested in the question. $\endgroup$
    – whuber
    Sep 21 '18 at 15:42

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.