I have to do statistical analyses on a data set. I would like to create all the possible models and to test them with the dredge function but it doesn't work.
Indeed, when I type:
glm1<-glm(presabs~dca1+dca2+se1+se2, family=binomial(logit))
dredge(glm1)
I got this error:
Erreur in dredge(glm1) :
'global.model''s 'na.action' argument is not set and options('na.action') is "na.omit"
Can someone help me?
I know this has been solved, however I came across the same issue and think there is a better way.
The issue with using options(na.action = "na.fail")
is that it changes the global settings of R. If you have a large script changing the global settings will potentially impact on other sections of your code where you implicitly rely on R's default settings. There are two ways to avoid this:
- After using
dredge
change the settings back via options(na.action = "na.omit")
.
OR the better way...
- Utilise the regression function's ability to "set the argument". In your case:
glm1<-glm(presabs~dca1+dca2+se1+se2, family=binomial(logit), na.action = "na.fail")
See ?dredge
:
# Example from Burnham and Anderson (2002), page 100:
data(Cement)
options(na.action = "na.fail") # prevent fitting models to different datasets
fm1 <- lm(y ~ ., data = Cement)
dd <- dredge(fm1)
If you skip the second line, your described error pops up, as the models are fitted to different datasets (due to removal of NAs).