contextual effects in 3-level models
I haven't looked at this carefully but I wonder if this is relevant: van de Pol, M., and J. Wright. ?A Simple Method for Distinguishing Within-versus between-Subject Effects Using Mixed Models.? Animal Behaviour 77, no. 3 (2009): 753?58.
On 9/9/21 11:53 AM, Thierry Onkelinx via R-sig-mixed-models wrote:
Dear Timothy, This won't work as your averaged X's will be highly correlated with each other and with the original X. I often find it easier to reason on a mathematical model. How would you translate your 'contextual' effects into an equation? Or at least clarify what a 'contextual' effect is. Best regards, ir. Thierry Onkelinx Statisticus / Statistician Vlaamse Overheid / Government of Flanders INSTITUUT VOOR NATUUR- EN BOSONDERZOEK / RESEARCH INSTITUTE FOR NATURE AND FOREST Team Biometrie & Kwaliteitszorg / Team Biometrics & Quality Assurance thierry.onkelinx at inbo.be Havenlaan 88 bus 73, 1000 Brussel www.inbo.be /////////////////////////////////////////////////////////////////////////////////////////// To call in the statistician after the experiment is done may be no more than asking him to perform a post-mortem examination: he may be able to say what the experiment died of. ~ Sir Ronald Aylmer Fisher The plural of anecdote is not data. ~ Roger Brinner The combination of some data and an aching desire for an answer does not ensure that a reasonable answer can be extracted from a given body of data. ~ John Tukey /////////////////////////////////////////////////////////////////////////////////////////// <https://www.inbo.be> Op do 9 sep. 2021 om 17:38 schreef Timothy MacKenzie <fswfswt at gmail.com>:
Dear Colleagues,
I'm revising my question for better clarity. Suppose we have two
nested grouping variables (ID1 and ID2). The data structure looks like
below.
To obtain the contextual effects for ID1 and ID2, I wonder which
option is appropriate?
#-- Option 1: Create mean of X across ID1 (X_ave_ID1) and mean of X
across ID2 *ignoring* ID1 (X_ave_ID2)
#-- Option 2: Create mean of X across ID1 (X_ave_ID1) and mean of X
across ID2 *within* ID1 (X_ave_ID2)
For both options, then, I will fit (in lme4::lmer()):
y ~ X + X_ave_ID1 + X_ave_ID2 + (1 | ID1 / ID2)
Thank you,
Tim
#------ DATA STRUCTURE AND R CODE:
ID1 ID2 X y
1 1 0.474111397 1.9534671
1 1 -0.712228120 0.9355230
1 2 -0.009957293 1.1088756
1 2 -1.237918646 0.8675550
2 1 -0.554944765 2.7831133
2 1 -0.320668268 0.1479290
2 2 1.066993108 0.1688187
2 2 -1.084870417 1.0536264
library(dplyr)
#-- Option 1:
data %>%
group_by(ID1) %>%
mutate(X_ave_ID1 = mean(X)) %>%
group_by(ID2) %>%
mutate(X_ave_ID2 = mean(X))
#-- Option 2:
data %>%
group_by(ID1) %>%
mutate(X_ave_ID1 = mean(X)) %>%
group_by(ID2, .add = TRUE) %>%
mutate(X_ave_ID2 = mean(X))
On Mon, Sep 6, 2021 at 1:31 PM Timothy MacKenzie <fswfswt at gmail.com>
wrote:
Dear All,
Suppose X is a continuous predictor that can vary within and between
two nested grouping variables in a 3-level linear mixed model:
effect.size ~ X + (1 | studies/outcomes)
How can I obtain the within effect of X, contextual effect of X at
level 2, and contextual effect of X at level 3?
I can think of two options but wonder which one makes more sense
(below)? For both options, I will fit:
effect.size ~ X + X_ave_study + X_ave_outcome + (1 | studies/outcomes)
Thank you,
Tim
library(dplyr)
#-- Option 1:
data %>%
group_by(study) %>%
mutate(X_ave_study = mean(X)) %>%
group_by(outcome) %>% ## Here mean of
outcome *ignoring* studies is computed
mutate(X_ave_outcome = mean(X))
#-- Option 2:
data %>%
group_by(study) %>%
mutate(X_ave_study = mean(X)) %>%
group_by(outcome, .add = TRUE) %>% ## Here mean of outcome
*within* each study is computed
mutate(X_ave_outcome = mean(X))
_______________________________________________ R-sig-mixed-models at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-sig-mixed-models
[[alternative HTML version deleted]]
_______________________________________________ R-sig-mixed-models at r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-sig-mixed-models
Dr. Benjamin Bolker Professor, Mathematics & Statistics and Biology, McMaster University Director, School of Computational Science and Engineering Graduate chair, Mathematics & Statistics