# NOT RUN {
data("wafers")
data("scotlip") ## loads 'scotlip' data frame, but also 'Nmatrix'
## Linear model
fitme(y ~ X1, data=wafers)
## GLM
fitme(y ~ X1, family=Gamma(log), data=wafers)
fitme(cases ~ I(log(population)), data=scotlip, family=poisson)
## Non-spatial GLMMs
fitme(y ~ 1+(1|batch), family=Gamma(log), data=wafers)
fitme(cases ~ 1+(1|gridcode), data=scotlip, family=poisson)
#
# Random-slope model (mind the output!)
fitme(y~X1+(X2|batch),data=wafers, method="REML")
## Spatial, conditional-autoregressive GLMM
if (spaMM.getOption("example_maxtime")>2) {
fitme(cases ~ I(log(population))+adjacency(1|gridcode), data=scotlip, family=poisson,
adjMatrix=Nmatrix) # with adjacency matrix provided by data("scotlip")
}
# see ?adjacency for more details on these models
## Spatial, geostatistical GLMM:
# see e.g. examples in ?fitme, ?corrHLfit, ?Loaloa, or ?arabidopsis;
# see examples in ?Matern for group-specific spatial effects.
## Hierachical GLMs with non-gaussian random effects
data("salamander")
if (spaMM.getOption("example_maxtime")>1) {
# both gaussian and non-gaussian random effects
fitme(cbind(Mate,1-Mate)~1+(1|Female)+(1|Male),family=binomial(),
rand.family=list(gaussian(),Beta(logit)),data=salamander)
# Random effect of Male nested in that of Female:
fitme(cbind(Mate,1-Mate)~1+(1|Female/Male),
family=binomial(),rand.family=Beta(logit),data=salamander)
# [ also allowed is cbind(Mate,1-Mate)~1+(1|Female)+(1|Male %in% Female) ]
}
## Modelling residual variance ( = structured-dispersion models)
# GLM response, fixed effects for residual variance
fitme( y ~ 1,family=Gamma(log),
resid.model = ~ X3+I(X3^2) ,data=wafers)
#
# GLMM response, and mixed effects for residual variance
if (spaMM.getOption("example_maxtime")>1.5) {
fitme(y ~ 1+(1|batch),family=Gamma(log),
resid.model = ~ 1+(1|batch) ,data=wafers)
}
## Elementary multivariate-response model (see fitmv() for less elementary ones)
# Data preparation
fam <- rep(c(1,2),rep(6,2)) # define two biological 'families'
ID <- gl(6,2) # define 6 'individuals'
resp <- as.factor(rep(c("x","y"),6)) # distinguishes two responses per individual
set.seed(123)
toymv <- data.frame(
fam = as.factor(fam), ID = ID, resp = resp,
y = 1 + (resp=="x") + rnorm(4)[2*(resp=="x")+fam] + rnorm(12)[6*(resp=="x")+as.integer(ID)],
respX = as.numeric(resp=="x"),
respY = as.numeric(resp=="y")
)
#
# fit response-specific variances of random effect and residuals:
(fitme(y ~ resp+ (0+respX|fam)+ (0+respY|fam), resid.model = ~ 0+resp ,data=toymv))
# }
Run the code above in your browser using DataLab