I indeed have a many-with-1 design, with supervisors rating their employees, and vice versa. I aim to assess the impact of a supervisor's directive leadership style (rated by the employee) on an employee's performance and creativity (rated by the supervisor). Eventually I would also look at contextual determinants of directive leadership to make it a mediation model.
But taking it step by step, I started with the second step of the mediation, and tried to add covariates to a RI-CLPM. I used the riclpmr package to generate lavaan syntax, and I manually added covariates by regressing the observed variables on the covariates (constrained over time; based on Mulder & Hamaker, 2021). This is the lavaan model I came up with:
"
ri_w =~ 1*W1_E_Directive + 1*W2_E_Directive + 1*W3_E_Directive
ri_x =~ 1*W1_Perf + 1*W2_Perf + 1*W3_Perf
ri_y =~ 1*W1_Crea + 1*W2_Crea + 1*W3_Crea
ri_w ~~ ri_w
ri_x ~~ ri_x
ri_y ~~ ri_y
ri_w ~~ ri_x + ri_y
ri_x ~~ ri_y
W1_E_Directive ~ W1_E_Directive_mu*1
W2_E_Directive ~ W2_E_Directive_mu*1
W3_E_Directive ~ W3_E_Directive_mu*1
W1_Perf ~ W1_Perf_mu*1
W2_Perf ~ W2_Perf_mu*1
W3_Perf ~ W3_Perf_mu*1
W1_Crea ~ W1_Crea_mu*1
W2_Crea ~ W2_Crea_mu*1
W3_Crea ~ W3_Crea_mu*1
lat_w1 =~ 1*W1_E_Directive
lat_w2 =~ 1*W2_E_Directive
lat_w3 =~ 1*W3_E_Directive
lat_x1 =~ 1*W1_Perf
lat_x2 =~ 1*W2_Perf
lat_x3 =~ 1*W3_Perf
lat_y1 =~ 1*W1_Crea
lat_y2 =~ 1*W2_Crea
lat_y3 =~ 1*W3_Crea
lat_w1 ~~ lat_x1 + lat_y1
lat_w2 ~~ r_wx*lat_x2 + r_wy*lat_y2
lat_w3 ~~ r_wx*lat_x3 + r_wy*lat_y3
lat_x1 ~~ lat_y1
lat_x2 ~~ r_xy*lat_y2
lat_x3 ~~ r_xy*lat_y3
lat_w2 ~ w_w*lat_w1 + w_x*lat_x1 + w_y*lat_y1
lat_w3 ~ w_w*lat_w2 + w_x*lat_x2 + w_y*lat_y2
lat_x2 ~ x_w*lat_w1 + x_x*lat_x1 + x_y*lat_y1
lat_x3 ~ x_w*lat_w2 + x_x*lat_x2 + x_y*lat_y2
lat_y2 ~ y_w*lat_w1 + y_x*lat_x1 + y_y*lat_y1
lat_y3 ~ y_w*lat_w2 + y_x*lat_x2 + y_y*lat_y2
lat_w1 ~~ lat_w1
lat_w2 ~~ e_w*lat_w2
lat_w3 ~~ e_w*lat_w3
lat_x1 ~~ lat_x1
lat_x2 ~~ e_x*lat_x2
lat_x3 ~~ e_x*lat_x3
lat_y1 ~~ lat_y1
lat_y2 ~~ e_y*lat_y2
lat_y3 ~~ e_y*lat_y3
# New code added:
#
https://jeroendmulder.github.io/RI-CLPM/lavaan.html#Ext_1:_time-invariant_predictor# Control for W1 Covariates at W1, W2, W3
W1_E_Directive + W2_E_Directive + W3_E_Directive ~ c1*L_Age + c2*E_Age + c3*L_Sex + c4*E_Sex + c5*L_Educ.Low + c6*L_Educ.High + c7*Level.Low + c8*Level.High +
c9*E_Educ.Low + c10*E_Educ.High + c11*L_PosTenure + c12*E_PosTenure + c13*L_Hoursworked + c14*E_Hoursworked+ c15*WFHPotentialHigh + c17*Master
W1_Perf + W2_Perf + W3_Perf ~ c1*L_Age + c2*E_Age + c3*L_Sex + c4*E_Sex + c5*L_Educ.Low + c6*L_Educ.High + c7*Level.Low + c8*Level.High +
c9*E_Educ.Low + c10*E_Educ.High + c11*L_PosTenure + c12*E_PosTenure + c13*L_Hoursworked + c14*E_Hoursworked+ c15*WFHPotentialHigh + c17*Master
W1_Crea + W2_Crea + W3_Crea ~ c1*L_Age + c2*E_Age + c3*L_Sex + c4*E_Sex + c5*L_Educ.Low + c6*L_Educ.High + c7*Level.Low + c8*Level.High +
c9*E_Educ.Low + c10*E_Educ.High + c11*L_PosTenure + c12*E_PosTenure + c13*L_Hoursworked + c14*E_Hoursworked+ c15*WFHPotentialHigh + c17*Master
"
This syntax seems to work, but I wonder if any of you could check that for me.
The next step I want to take is to account for the fact that the same supervisor appears in multiple dyads, by defining a level for the dyad and for the supervisor.
Without covariates, I came up with the following lavaan model. I followed this resource
https://lavaan.ugent.be/tutorial/multilevel.html, specifically the part about "
if you do not have a model in mind for level 2, you can specify a saturated level by adding all variances and covariances of the endogenous variables".
"
# Dyad level
level: 1
ri_w =~ 1*W1_E_Directive + 1*W2_E_Directive + 1*W3_E_Directive
ri_x =~ 1*W1_Perf + 1*W2_Perf + 1*W3_Perf
ri_y =~ 1*W1_Crea + 1*W2_Crea + 1*W3_Crea
ri_w ~~ ri_w
ri_x ~~ ri_x
ri_y ~~ ri_y
ri_w ~~ ri_x + ri_y
ri_x ~~ ri_y
W1_E_Directive ~ W1_E_Directive_mu*1
W2_E_Directive ~ W2_E_Directive_mu*1
W3_E_Directive ~ W3_E_Directive_mu*1
W1_Perf ~ W1_Perf_mu*1
W2_Perf ~ W2_Perf_mu*1
W3_Perf ~ W3_Perf_mu*1
W1_Crea ~ W1_Crea_mu*1
W2_Crea ~ W2_Crea_mu*1
W3_Crea ~ W3_Crea_mu*1
lat_w1 =~ 1*W1_E_Directive
lat_w2 =~ 1*W2_E_Directive
lat_w3 =~ 1*W3_E_Directive
lat_x1 =~ 1*W1_Perf
lat_x2 =~ 1*W2_Perf
lat_x3 =~ 1*W3_Perf
lat_y1 =~ 1*W1_Crea
lat_y2 =~ 1*W2_Crea
lat_y3 =~ 1*W3_Crea
lat_w1 ~~ lat_x1 + lat_y1
lat_w2 ~~ r_wx*lat_x2 + r_wy*lat_y2
lat_w3 ~~ r_wx*lat_x3 + r_wy*lat_y3
lat_x1 ~~ lat_y1
lat_x2 ~~ r_xy*lat_y2
lat_x3 ~~ r_xy*lat_y3
lat_w2 ~ w_w*lat_w1 + w_x*lat_x1 + w_y*lat_y1
lat_w3 ~ w_w*lat_w2 + w_x*lat_x2 + w_y*lat_y2
lat_x2 ~ x_w*lat_w1 + x_x*lat_x1 + x_y*lat_y1
lat_x3 ~ x_w*lat_w2 + x_x*lat_x2 + x_y*lat_y2
lat_y2 ~ y_w*lat_w1 + y_x*lat_x1 + y_y*lat_y1
lat_y3 ~ y_w*lat_w2 + y_x*lat_x2 + y_y*lat_y2
lat_w1 ~~ lat_w1
lat_w2 ~~ e_w*lat_w2
lat_w3 ~~ e_w*lat_w3
lat_x1 ~~ lat_x1
lat_x2 ~~ e_x*lat_x2
lat_x3 ~~ e_x*lat_x3
lat_y1 ~~ lat_y1
lat_y2 ~~ e_y*lat_y2
lat_y3 ~~ e_y*lat_y3
# Supervisor level
level: 2
W1_E_Directive ~~ W1_E_Directive + W2_E_Directive + W3_E_Directive + W1_Perf + W2_Perf + W3_Perf + W1_Crea + W2_Crea + W3_Crea
W2_E_Directive ~~ W2_E_Directive + W3_E_Directive + W1_Perf + W2_Perf + W3_Perf + W1_Crea + W2_Crea + W3_Crea
W3_E_Directive ~~ W3_E_Directive + W1_Perf + W2_Perf + W3_Perf + W1_Crea + W2_Crea + W3_Crea
W1_Perf ~~ W1_Perf + W2_Perf + W3_Perf + W1_Crea + W2_Crea + W3_Crea
W2_Perf ~~ W2_Perf + W3_Perf + W1_Crea + W2_Crea + W3_Crea
W3_Perf ~~ W3_Perf + W1_Crea + W2_Crea + W3_Crea
W1_Crea ~~ W1_Crea + W2_Crea + W3_Crea
W2_Crea ~~ W2_Crea + W3_Crea
W3_Crea ~~ W3_Crea
"
However, estimating this model, adding the argument cluster = Supervisorid, the model does not converge. The warnings indicate that there is no variation within clusters for both directive leadership as employee performance/creativity. I checked what would happen if I removed those cases, but the model still did not converge. Is my specification correct?
I also noticed that if I do not specify a level 1 and 2 model, but do add cluster = Supervisorid argument, in the output it indicates that the Standard errors are Robust.cluster, rather than Standard. Would this approach be an alternative to modeling the two levels, if I cannot get a multi-level model to converge?
Best,
Wout