====== Linear Mixed Effects Regression ======
<2014.2.10>
AC's attempts at learning to do this in R.
Added package **lme4** to R.
http://cran.r-project.org/web/packages/lme4/lme4.pdf
Also added **plyr** package, because it has a rename() function for renaming columns in a data frame:
(http://www.cookbook-r.com/Manipulating_data/Renaming_columns_in_a_data_frame/)
However, I found it easier to do this:
colnames(x) <- c("name1","name2"...)
based on guidance from:
https://stat.ethz.ch/R-manual/R-devel/library/base/html/colnames.html
and from
http://cran.r-project.org/doc/manuals/r-devel/R-data.html
>Column names can be given explicitly via the col.names; explicit names override the header line (if present).
Added **arm** package:
http://cran.r-project.org/web/packages/arm/index.html
>''arm: Data Analysis Using Regression and Multilevel/Hierarchical Models''
>
>R functions for processing lm, glm, svy.glm, merMod and polr outputs.
**arm** package provides the ''coefplot'' function for plotting the regression coefficient values and std. errors.
Need to specify that subjects is a nominal variable, using the ''factor'' command:
http://www.statmethods.net/input/datatypes.html
>Tell R that a variable is nominal by making it a factor. The factor stores the nominal values as a vector of integers in the range [ 1... k ] (where k is the number of unique values in the nominal variable), and an internal vector of character strings (the original values) mapped to these integers.
===== Interpretation of glmer output =====
A nice description from:
https://stat.ethz.ch/pipermail/r-sig-mixed-models/2011q1/015590.html
>In this case the coefficient corresponds to one of the
>terms in the model and I would advocate performing a likelihood ratio
>test comparing the two models
>
>
>fm <- glmer(SameSite~BreedSuc1+Sex+(1|Bird), family="binomial")
>fm0 <- glmer(SameSite~Sex+(1|Bird), family="binomial") # the null
>hypothesis model
>anova(fm0, fm)
>
>Even though the function is called anova it will, in this case,
>perform a likelihood ratio test (LRT). It also prints the values of
>AIC and BIC if you prefer to compare models according to one of those
>criteria but I prefer using the likelihood ratio for nested models.
>However, before doing that comparison you should ask yourself whether
>you want to compare models that have the, apparently unnecessary term
>for Sex in them. The way I would approach the model building is first
>to reduce the model to
>
>fm1 <- lmer(SameSite~BreedSuc1+(1|Bird), family="binomial")
>
>You could then compare
>
>anova(fm1, fm)
>
>which I presume will give a large p-value for the LRT, so we prefer
>the simpler model, fm1. After that, I would compare
>
>fm2 <- lmer(SameSite ~ 1 + (1|Bird), family="binomial")
>