Dunbar, Michael J.
2012-Jan-17 09:51 UTC
[R] MuMIn package, problem using model selection table from manually created list of models
The subject says it all really.
Question 1.
Here is some code created to illustrate my problem, can anyone spot where
I'm going wrong?
Question 2.
The reason I'm following a manual specification of models relates to the
fact that in reality I am using mgcv::gam, and I'm not aware that dredge is
able to separate individual smooth terms out of say s(a,b). Hence an additional
request, if anyone has example code for using gam in a multimodel inference
framework, especially with bivariate smooths, I'd be most grateful.
Cheers and Thanks in Advance
Mike
require(MuMIn)
data(Cement)
# option 1, create model.selection object using dredge
fm0 <- lm(y ~ ., data = Cement)
print(dd <- dredge(fm0))
fm1 <- lm(formula = y ~ X1 + X2, data = Cement)
fm2 <- lm(formula = y ~ X1 + X2 + X4, data = Cement)
fm3 <- lm(formula = y ~ X1 + X2 + X3, data = Cement)
fm4 <- lm(formula = y ~ X1 + X4, data = Cement)
fm5 <- lm(formula = y ~ X1 + X3 + X4, data = Cement)
# ranked with AICc by default
# obviously this works
model.avg(get.models(dd, delta < 4))
# option 2: the aim is to produce a model selection object comparable to that
from get.models(dd, delta < 4)
# but from a manually-specified list of models
my.manual.selection <- mod.sel(list(fm1, fm2, fm3, fm4, fm5))
# works
model.avg(list(fm1, fm2, fm3, fm4, fm5)) # or jut model.avg(fm1, fm2, fm3, fm4,
fm5)
# doesn't work
model.avg(my.manual.selection)
# hence this doesn't work
get.models(my.manual.selection, delta < 4)
--
This message (and any attachments) is for the recipient ...{{dropped:8}}
Kamil BartoĊ
2012-Jan-17 10:11 UTC
[R] MuMIn package, problem using model selection table from manually created list of models
Dnieper 2012-01-17 10:51, Dunbar, Michael J. piste:> > The subject says it all really. > > Question 1. > Here is some code created to illustrate my problem, can anyone spot where I'm going wrong? > > Question 2. > The reason I'm following a manual specification of models relates to the fact that in reality I am using mgcv::gam, and I'm not aware that dredge is able to separate individual smooth terms out of say s(a,b). Hence an additional request, if anyone has example code for using gam in a multimodel inference framework, especially with bivariate smooths, I'd be most grateful.You can model average the coefficients, but not the terms.> > Cheers and Thanks in Advance > Mike > > require(MuMIn) > data(Cement) > # option 1, create model.selection object using dredge > fm0<- lm(y ~ ., data = Cement) > print(dd<- dredge(fm0)) > fm1<- lm(formula = y ~ X1 + X2, data = Cement) > fm2<- lm(formula = y ~ X1 + X2 + X4, data = Cement) > fm3<- lm(formula = y ~ X1 + X2 + X3, data = Cement) > fm4<- lm(formula = y ~ X1 + X4, data = Cement) > fm5<- lm(formula = y ~ X1 + X3 + X4, data = Cement) > # ranked with AICc by default > # obviously this works > model.avg(get.models(dd, delta< 4)) > > # option 2: the aim is to produce a model selection object comparable to that from get.models(dd, delta< 4) > # but from a manually-specified list of models > my.manual.selection<- mod.sel(list(fm1, fm2, fm3, fm4, fm5)) > # works > model.avg(list(fm1, fm2, fm3, fm4, fm5)) # or jut model.avg(fm1, fm2, fm3, fm4, fm5) > # doesn't work > model.avg(my.manual.selection)> # hence this doesn't work > get.models(my.manual.selection, delta< 4)There is no need to recreate the models (which is what get.models does) once you have them already as a list. models <- list(fm1, fm2, fm3, fm4, fm5) my.manual.selection <- mod.sel(models) model.avg(models[ my.manual.selection$delta < 4 ])