Nohe15 | R Documentation |
The data sets include two lists of correlation matrices of panel studies between
work-family conflict and strain reported in Table A1 (Nohe15A1
)
and Table A2 (Nohe15A2
) by Nohe et al. (2015).
data(Nohe15A1)
data(Nohe15A2)
A list of data with the following structure:
A list of studies of correlation matrices. The
variables are W1, S1, W2, and S2 in
Nohe15A1
and F1, S1, F2, and S2 in
Nohe15A2
A vector of sample sizes
The reliabilities of W1, S1, W2 and
S2 in Nohe15A1
and the reliabilities of F1
S1, F2 , and S2 in Nohe15A2
Percentage of female participants
Whether the studies were published (P) or unpublished (U)
Time lag between the coded measurement waves in months
Nohe, C., Meier, L. L., Sonntag, K., & Michel, A. (2015). The chicken or the egg? A meta-analysis of panel studies of the relationship between work-family conflict and strain. Journal of Applied Psychology, 100(2), 522-536.
#### TSSEM
## Set seed for replicability
set.seed(23891)
## Table A1
randA1a <- tssem1(Nohe15A1$data, Nohe15A1$n, method="REM", RE.type="Diag")
summary(randA1a)
model1 <- 'W2 ~ w2w*W1 + s2w*S1
S2 ~ w2s*W1 + s2s*S1
W1 ~~ w1WITHs1*S1
W2 ~~ w2WITHs2*S2
W1 ~~ 1*W1
S1 ~~ 1*S1
W2 ~~ Errw2*W2
S2 ~~ Errs2*S2'
## Display the model
plot(model1, layout="spring")
RAM1 <- lavaan2RAM(model1, obs.variables=c("W1", "S1", "W2", "S2"))
RAM1
randA1b <- tssem2(randA1a, Amatrix=RAM1$A, Smatrix=RAM1$S)
summary(randA1b)
## Display the model with the parameter estimates
plot(randA1b, layout="spring")
## Table A2
randA2a <- tssem1(Nohe15A2$data, Nohe15A2$n, method="REM", RE.type="Diag")
## Rerun to remove error code
randA2a <- rerun(randA2a)
summary(randA2a)
model2 <- 'F2 ~ f2f*F1 + s2F*S1
S2 ~ f2s*F1 + s2s*S1
F1 ~~ f1WITHs1*S1
F2 ~~ f2WITHs2*S2
F1 ~~ 1*F1
S1 ~~ 1*S1
F2 ~~ Errf2*F2
S2 ~~ Errs2*S2'
## Display the model
plot(model2, layout="spring")
RAM2 <- lavaan2RAM(model2, obs.variables=c("F1", "S1", "F2", "S2"))
RAM2
randA2b <- tssem2(randA2a, Amatrix=RAM2$A, Smatrix=RAM2$S)
summary(randA2b)
## Display the model with the parameter estimates
plot(randA2b, layout="spring")
## Estimate the heterogeneity of the parameter estimates
tssemParaVar(randA1a, randA2b)
## Parametric bootstrap based on Yu et al. (2016)
## I assume that you know what you are doing!
## Set seed for reproducibility
set.seed(39128482)
## Average the correlation coefficients with the univariate-r approach
uni1 <- uniR1(Nohe15A1$data, Nohe15A1$n)
uni1
## Generate random correlation matrices
boot.cor <- bootuniR1(uni1, Rep=50)
## Display the quality of the generated correlation matrices
summary(boot.cor)
## Proposed saturated model
model1 <- 'W2 + S2 ~ W1 + S1'
## Use the harmonic mean of the sample sizes as n in SEM
n <- uni1$n.harmonic
boot.fit1 <- bootuniR2(model=model1, data=boot.cor, n=n)
summary(boot.fit1)
## Proposed model with equal regression coefficients
model2 <- 'W2 ~ Same*W1 + Cross*S1
S2 ~ Cross*W1 + Same*S1'
boot.fit2 <- bootuniR2(model=model2, data=boot.cor, n=n)
summary(boot.fit2)
#### OSMASEM
## Calculate the sampling variance-covariance matrix of the correlation matrices.
my.df <- Cor2DataFrame(Nohe15A1)
## Standardize the moderator "Lag"
my.df$data$Lag <- scale(my.df$data$Lag)
head(my.df$data)
## Proposed model
model1 <- 'W2 ~ w2w*W1 + s2w*S1
S2 ~ w2s*W1 + s2s*S1
W1 ~~ w1WITHs1*S1
W2 ~~ w2WITHs2*S2
W1 ~~ 1*W1
S1 ~~ 1*S1
W2 ~~ Errw2*W2
S2 ~~ Errs2*S2'
plot(model1)
## Convert it into RAM specification
RAM1 <- lavaan2RAM(model1, obs.variables=c("W1", "S1", "W2", "S2"))
RAM1
## Create vechs of the model implied correlation matrix
## with implicit diagonal constraints
## M0 <- create.vechsR(A0=RAM1$A, S0=RAM1$S)
## Create heterogeneity variances
## RE.type= either "Diag" or "Symm"
##
## Transform= either "expLog" or "sqSD" for better estimation on variances
## T0 <- create.Tau2(RAM=RAM1, RE.type="Diag")
##
## Fit the model
## fit0 <- osmasem(model.name="No moderator", Mmatrix=M0, Tmatrix=T0, data=my.df)
## Fit the model
fit0 <- osmasem(model.name="No moderator", RAM=RAM1, data=my.df)
summary(fit0)
## Get the SRMR
osmasemSRMR(fit0)
## Get the transformed variance component of the random effects
VarCorr(fit0)
## "lag" as a moderator on A matrix
A1 <- matrix(c(0,0,0,0,
0,0,0,0,
"0*data.Lag","0*data.Lag",0,0,
"0*data.Lag","0*data.Lag",0,0),
nrow=4, ncol=4, byrow=TRUE)
## M1 <- create.vechsR(A0=RAM1$A, S0=RAM1$S, Ax=A1)
##
## Fit the nodel
## fit1 <- osmasem(model.name="Lag as a moderator for Amatrix", Mmatrix=M1,
## Tmatrix=T0, data= my.df)
fit1 <- osmasem(model.name="Lag as a moderator for Amatrix",
RAM=RAM1, Ax=A1, data= my.df)
summary(fit1)
VarCorr(fit1)
## Compare the models with and without the moderator "lag"
anova(fit1, fit0)
## Calculate the R2
osmasemR2(fit0, fit1)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.