I can use glmulti with lmer models, but am struggling to make it work for a GEE. Here is an example showing an lmer version which works, and a GEE version I'm stuck on.
library(tidyverse)
library(lme4)
library(geepack)
library(glmulti)
data <- mtcars %>% as_tibble() %>%
mutate(cyl = factor(cyl))
# lmer version
basic_lmm <- lmer(mpg ~ hp + disp + wt + (1|cyl), data)
# use glmulti to find the best parameters
# custom fit function
lmer.glmulti <- function (formula, data, random = "", ...) {
lmer(paste(deparse(formula), random), data = data, REML=F, ...)
}
res_glmulti <- glmulti(
mpg ~ hp + disp + wt, data = data, fitfunc = lmer.glmulti, random = "+(1|cyl)",
crit="aicc", method = "h", confsetsize = 20, level = 1)
print(res_glmulti)
# gee version
basic_gee <- geeglm(mpg ~ hp + disp + wt, id = cyl, data = data, family = gaussian, corstr = "independence")
gee.glmulti <- function (formula, data, id, ...) {
geeglm(paste(deparse(formula)), data = data, family = gaussian, corstr = "independence", id = "cyl", ...)
}
res_gee <- glmulti(
mpg ~ hp + disp + wt, data = data, fitfunc = gee.glmulti, id = "cyl",
crit="aicc", method = "h", confsetsize = 20, level = 1)
print(res_gee)
I think this may have worked - It runs without error, but doesn't exactly give a result that makes sense.