Я пытаюсь использовать пакет R glmulti для оценки важности 21 переменной в прогнозировании моего двоичного ответа.Этот пакет эффективно "строит все возможные уникальные модели, включающие эти переменные".Тем не менее, некоторые из моих предикторных переменных сильно коррелированы и поэтому их не следует включать в одни и те же модели.Мне известно, что традиционно одна из этих коррелированных переменных просто исключается из моделей, но мне любопытно, есть ли способ включить их оба в качестве предикторов, но указать, что модели, содержащие оба, в конечном итоге не должны рассматриваться.
glmulti примет настраиваемый список подгоненных объектов модели, но, учитывая, что у меня 21 переменная, я не в восторге от идеи создания списка всех возможных комбинаций и последующей фильтрациис коррелированными переменными;это полу-поражение цели запуска glmulti .
На странице справки glmulti также имеется код, демонстрирующий, как включить некоторые переменные во все модели, но я не уверен, что это можно изменить для моих целей.
Этот вопрос задавался ранее в 2015 году ( glmulti: исключая комбинации коррелированных предикторных переменных из наборов-кандидатов моделей glm, использующих glmulti ), но ответы так и не были даны.Буду очень признателен за любую помощь или предложения!
Ниже приведена формула, которую я бы использовал для стандартного glmulti вызова:
test <- glmulti(response, predictors, data = data, family = binomial, method = "h", intercept = TRUE, plotty = FALSE, crit = "aicc", level = 1)
Это пример наСтраница справки R, которая показывает, как включить некоторые переменные во все модели-кандидаты:
# B. This shows how to include some terms in ALL the models
# As above, we just prepare a wrapper of the fitting function
glm.redefined = function(formula, data, always="", ...) {
glm(as.formula(paste(deparse(formula), always)), data=data, ...)
}
# we then use this fitting function in glmulti
glmulti(vy2~va,level=1,fitfunc=glm.redefined,always="+vb")-> bab
# va will be shuffled but vb is always included in the models