I have multilevel data (with nested random effects: (1 | cluster-of-cluster/cluster)
in lme4 syntax) where the response is a continuous variable between $[0, 1]$ (i.e., including 0 and 1).
Usually, I'd model this data using a generalized linear mixed-effects model (e.g., with glmmTMB
: https://cran.r-project.org/web/packages/glmmTMB/index.html), possibly after transforming the response as in Smithson and Verkuilen, 2006 (the "better lemon squeezer" paper: https://doi.apa.org/doiLanding?doi=10.1037%2F1082-989X.11.1.54), where $y' = \frac{y * (N - 1) + (1/2)}{N}$.
I want to model the data using recursive partitioning. glmertree
(https://cran.r-project.org/web/packages/glmertree/index.html) is the closest to what I need. I'd be using models similar to the one in section 2 of the glmertree vignette (https://cran.r-project.org/web/packages/glmertree/vignettes/glmertree.pdf), where the node-specific model is just an intercept, and in section 3, where a discrete-level treatment effect is fitted in the nodes.
My questions are:
Do I gain anything using Smithson and Verkuilen's transformation? I am not fitting a beta model.
I am using a gaussian linear-mixed effects model underneath. Are there better options?
I thought about using
ctree
, frompartykit
(https://cran.r-project.org/web/packages/partykit/index.html), with the default identity function for influence, which I think makes no particular distributional assumptions for this case. But I have multilevel data, and different partitioning variables are measured at different levels (observation, clusters of observations, and clusters of clusters), and using thecluster
argument inctree
precludes finding splits in variables measured at the cluster and 'cluster of cluster' levels (I've run some toy examples, and in p. 28 of the vignette, https://cran.r-project.org/web/packages/partykit/vignettes/ctree.pdf says: "the variance of the test statistics used for variable selection and also splitting is computed separately, leading to stratified permutation tests (in the sense that only observations within clusters are permuted)").lmertree
also accepts acluster
argument but I am not sure I really should use it. Toy examples I have simulated show that using it vs. not using it does not affect like inctree
and generally has minor effects but its usage is discussed in section 4 of the vignette and in Maaike Jorink's MSc's thesis (https://openaccess.leidenuniv.nl/bitstream/handle/1887/69342/Jorink%2C%20Maaike-s1907387-MA%20Thesis%20MS-2018.pdf).