[R-meta] Meta-analysis of within-subject experimental designs with multiple treatment factors?
Schlüter, Elmar
E|m@r@Sch|ueter @end|ng |rom @ow|@un|-g|e@@en@de
Thu Sep 14 09:49:45 CEST 2023
Dear Listmembers,
I am planning to conduct a meta-analysis based on data from a series of factorial survey studies. The factorial survey studies I'd like to analyze correspond to within-subject experimental designs with multiple treatment factors. However, there seem to be very few, if any, meta-analyses using data from factorial survey studies or related designs. I thus lack examples corresponding to the design I need to ask some questions about below. So here's a brief description of my data in general terms:
A factorial survey, also known as a vignette study or factorial vignette design, is a research method used to study how individuals make judgments or decisions in complex situations by presenting them with a series of hypothetical scenarios (vignettes) that vary systematically across multiple factors or attributes. For example, respondents might be asked how likely they would vote for a candidate of a political party who is
- male vs. female, (factor 1)
- has a leftwing vs. rightwing orientation (factor 2)
- and �is perceived to be very empathic/somewhat empathic/not empathic (factor 3).
This results in a 2 x 2 x 3 factorial design with 12 different vignettes.
Let�s assume that in the original data, the factor levels were measured using dummy variables. The results are unstandardised regression slopes plus standard errors. Accordingly, I'd like to meta-analyse 4 unstandardised regression slopes:
- the slope of the dummy variable for factor A (the average effect of �male� vs. �female�),
- the slope of the dummy variable for factor B (the average effect of "rightwing" vs. leftwing orientation), plus
- the two slopes of the two dummy variables for factor C (�somewhat empathic� vs �very empathic� and �not empathic� vs �very empathic�).
With one dependent variable, all studies were conducted as full or fractional factorial within-subjects designs. Therefore, I believe it would be best to account for any potential non-independence in the data, given that each respondent rated multiple (up to 12) vignettes. What I find a bit challenging here is that there is not just one average effect to examine, but four in total. Furthermore, these four average slopes result from three orthogonal factors. I (think I) have been able to combine clubSandwich and metafor to examine this data - but I would be very happy to hear if you think my approach is adequate, or if there are alternative ways to analyse this data?
Here's an illustration/sample of the data � restricted to 5 studies only, the �real� dataset will comprise of approx. 20 studies. Notice that I arranged all coefficient values in one column:
Data (df) for illustration:
study
coeff_name
coeff_value
v
coeff_index
study_1
cgenderMale
-0.07
0.000113
1
study_1
cRightwing
0.17
0.000344
2
study_1
cSomewhatEmpathic
-0.08
0.000160
3
study_1
cNotEmpathic
-0.12
0.000171
4
study_2
cgenderMale
-0.08
0.000179
5
study_2
cRightwing
0.18
0.000504
6
study_2
cSomewhatEmpathic
-0.06
0.000309
7
study_2
cNotEmpathic
-0.14
0.000435
8
study_3
cgenderMale
-0.06
0.000097
9
study_3
cRightwing
0.16
0.000319
10
study_3
cSomewhatEmpathic
-0.07
0.000150
11
study_3
cNotEmpathic
-0.11
0.000152
12
study_4
cgenderMale
-0.03
0.000107
13
study_4
cRightwing
0.15
0.000452
14
study_4
cSomewhatEmpathic
-0.05
0.000198
15
study_4
cNotEmpathic
-0.10
0.000196
16
study_5
cgenderMale
-0.04
0.000123
17
study_5
cRightwing
0.15
0.000366
18
study_5
cSomewhatEmpathic
-0.11
0.000193
19
study_5
cNotEmpathic
-0.18
0.000205
20
And here's the code I used:
library(metafor)
library(clubSandwich)
# Create sampling variance covariance matrix
V_mat <- impute_covariance_matrix(Testdata$v, cluster = df$study, r = 0.6)
# model in metafor
mod <- rma.mv(coeff_value ~ 0 + coeff_name, V = V_mat, #coeff_name contains all coefficients as factor levels
random = ~ 1 | study / coeff_index, #coefficients are nested in studies
data = df)
# clustered SEs and CIs
conf_int(mod, vcov = "CR2")
And here are the results:
Coef.
Estimate
SE
d.f.
Lower_95%CI
Upper_95%CI
coeff_namecgenderMale
-0.0553
0.00924
3.99
-0.081
-0.0296
coeff_namecRightwing
0.1623
0.0057
3.97
0.146
0.1782
coeff_namecSomewhatEmpathic
-0.0739
0.01044
3.97
-0.103
-0.0448
coeff_namecNotEmpathic
-0.1289
0.01465
3.92
-0.17
-0.0879
The code seems to works. But as I outlined at the beginning, it is not clear to if one might arrange the data in long format with all coefficients of interest in one column as I did. I thus highly appreciate your advice and any comments �
Best,
Elmar Schlueter
[[alternative HTML version deleted]]
More information about the R-sig-meta-analysis
mailing list