1 PREPARATION

1.1 Merge

#- Within variables
Wdata=import("C:/Users/Eason Zhang/Dropbox/social impact project/Final analysis/employeedata.sav")%>%as.data.table()
numerical_variable_names <- names(Wdata)[sapply(Wdata, is.numeric)]
Wdata=group_mean_center(Wdata, numerical_variable_names,by="FactoryAssessedID", add.suffix=".GroC")
added(Wdata, {
  wage.SD = sd(wage, na.rm = TRUE)
  stress.SD = sd(stress, na.rm = TRUE)
  mentalhealth.SD = sd(mentalhealth, na.rm = TRUE)},by=FactoryAssessedID)    
#-- Within data check
matching_variables.W <- cc("mentalhealth,stress,wage,migrant10.GroC,
                           mentalhealth.SD,stress.SD,wage.SD")
contains_variables.W <- names(Wdata) %in% matching_variables.W
matching_variables.W <- names(Wdata)[contains_variables.W]
matching_variables.W

#- Between variables
#-- BA data
BAdata=import("C:/Users/Eason Zhang/Dropbox/social impact project/Final analysis/BA20.1920.finalanalysis.sav")%>%as.data.table()
#-- BM data
BMdata<- import("C:/Users/Eason Zhang/Dropbox/social impact project/Final analysis/managerdata.sav")%>%as.data.table()
BMdata1=BMdata[year == 2019]
BMdata2=BMdata[year == 2020]
BMdata_mean <- BMdata[, .SD, .SDcols = sapply(BMdata, is.numeric)]
BMdata_mean <- BMdata_mean[, lapply(.SD, mean, na.rm = TRUE), by = .(FactoryAssessedID)]
B.Aggregated <- unique(Wdata[, .(FactoryAssessedID, mentalhealth_mean, stress_mean, wage_mean, mentalhealth.SD, stress.SD, wage.SD)], by = "FactoryAssessedID")
#--- Cobmine BM data
setnames(BMdata1, old = names(BMdata1), new = paste0("BM19.", names(BMdata1)))
setnames(BMdata2, old = names(BMdata2), new = paste0("BM20.", names(BMdata2)))
setnames(BMdata_mean, old = names(BMdata_mean), new = paste0("BM.", names(BMdata_mean)))
setnames(BMdata_mean, "BM.FactoryAssessedID", "FactoryAssessedID")
setnames(BMdata1, "BM19.FactoryAssessedID", "FactoryAssessedID")
setnames(BMdata2, "BM20.FactoryAssessedID", "FactoryAssessedID")
Bdata<- Reduce(function(x, y) merge(x, y, by = "FactoryAssessedID", all = TRUE),list(BMdata_mean, BMdata1, BMdata2))
Bdata <- merge(BAdata, Bdata, by = "FactoryAssessedID", all = T)
Bdata2 <- merge(Bdata, B.Aggregated, by = "FactoryAssessedID", all = T)
#-- Between data check
matching_variables.B <- cc("BM.responsiblesourcing,BM19.responsiblesourcing,BM20.responsiblesourcing,BA1920FOApractices,BA20FOApractices,BA1920discriminate4prac,BA20discriminate4prac,BA1920targetedpractices,BA20targetedpractices,FactoryAssessedID, mentalhealth_mean, stress_mean, wage_mean, mentalhealth.SD, stress.SD, wage.SD")
contains_variables.B <- names(Bdata2) %in% matching_variables.B
matching_variables.B <- names(Bdata2)[contains_variables.B]
matching_variables.B
#- Full data
Bdata2=Bdata2[, c("mentalhealth_mean", "stress_mean", "wage_mean", 
          "mentalhealth.SD", "stress.SD", "wage.SD") := NULL]
BWdata2 <- merge(Bdata2, Wdata, by = "FactoryAssessedID", all = T)
BWdata2$clus <- BWdata2$FactoryAssessedID

#- Export
export(Bdata2,"Bdata3.sav")
export(BWdata2,"BWdata3.sav")

1.2 Loading data

There is a lot of missing data in our database.

dat=import("BWdata3.sav")%>%as.data.table() 
Bdata<- import("Bdata3.sav")%>%as.data.table()
dat3=dat[round == 3]

1.3 Model

Theoretical model
Theoretical model
Statistical model
Statistical model

2 OVERVIEW

Freq(dat$round)
## Frequency Statistics:
## ───────────────
##          N    %
## ───────────────
## 1     1730 33.5
## 2     1666 32.3
## 3     1756 34.0
## (NA)    12  0.2
## ───────────────
## Total N = 5,164
## Valid N = 5,152

One-round analysis: A. 3; B. 2 C. 1

Two-round analysis: D. 3&2; E. 3&1; F. 2&1

Three-round analysis: G. 3&2&1

3 A. 3rd ROUND DATA

data=dat[round == 3]

3.1 I check for cw2: Cross-level interaction of M

3.1.1 BA1920FOApractices

mentalhealth.BA1920FOApractices=lmer(mentalhealth~BA1920FOApractices*migrant10+migrant10_mean*BA1920FOApractices+ (migrant10|clus), na.action = na.exclude, data = data, control=lmerControl(optimizer="bobyqa"))
stress.BA1920FOApractices=lmer(stress~BA1920FOApractices*migrant10+migrant10_mean*BA1920FOApractices+ (migrant10|clus), na.action = na.exclude, data = data, control=lmerControl(optimizer="bobyqa"))
wage.BA1920FOApractices=lmer(wage~BA1920FOApractices*migrant10+migrant10_mean*BA1920FOApractices+ (migrant10|clus), na.action = na.exclude, data = data, control=lmerControl(optimizer="bobyqa"))

model_summary(list(mentalhealth.BA1920FOApractices, stress.BA1920FOApractices, wage.BA1920FOApractices))
## 
## Model Summary
## 
## ────────────────────────────────────────────────────────────────────────────
##                                    (1) mentalhealth  (2) stress  (3) wage   
## ────────────────────────────────────────────────────────────────────────────
## (Intercept)                           3.098             3.745      378.106 *
##                                      (1.701)           (2.417)    (147.512) 
## BA1920FOApractices                    0.011            -0.034       -7.288  
##                                      (0.086)           (0.123)      (7.477) 
## migrant10                             6.805 *          -2.403      281.488 *
##                                      (2.750)           (2.570)    (125.870) 
## migrant10_mean                       -4.163            -0.669     -506.045  
##                                      (3.615)           (4.352)    (286.715) 
## BA1920FOApractices:migrant10         -0.346 *           0.157      -15.141 *
##                                      (0.141)           (0.132)      (6.467) 
## BA1920FOApractices:migrant10_mean     0.205             0.009       24.703  
##                                      (0.183)           (0.222)     (14.500) 
## ────────────────────────────────────────────────────────────────────────────
## Marginal R^2                          0.012             0.030        0.040  
## Conditional R^2                       0.181             0.060        0.360  
## AIC                                3933.788          6059.325    17848.612  
## BIC                                3985.815          6113.650    17902.788  
## Num. obs.                          1343              1690         1665      
## Num. groups: clus                    66                66           66      
## Var: clus (Intercept)                 0.021             0.173      695.328  
## Var: clus migrant10                   0.388             0.298     1264.509  
## Cov: clus (Intercept) migrant10      -0.055            -0.223     -288.457  
## Var: Residual                         0.999             2.026     2389.298  
## ────────────────────────────────────────────────────────────────────────────
## Note. * p < .05, ** p < .01, *** p < .001.
interact_plot(mentalhealth.BA1920FOApractices, modx = BA1920FOApractices, pred = migrant10)

interact_plot(stress.BA1920FOApractices, modx = BA1920FOApractices, pred = migrant10)

interact_plot(wage.BA1920FOApractices, modx = BA1920FOApractices, pred = migrant10)

3.1.2 BA20FOApractices

mentalhealth.BA20FOApractices=lmer(mentalhealth~BA20FOApractices*migrant10+migrant10_mean*BA20FOApractices+ (migrant10|clus), na.action = na.exclude, data = data, control=lmerControl(optimizer="bobyqa"))
stress.BA20FOApractices=lmer(stress~BA20FOApractices*migrant10+migrant10_mean*BA20FOApractices+ (migrant10|clus), na.action = na.exclude, data = data, control=lmerControl(optimizer="bobyqa"))
wage.BA20FOApractices=lmer(wage~BA20FOApractices*migrant10+migrant10_mean*BA20FOApractices+ (migrant10|clus), na.action = na.exclude, data = data, control=lmerControl(optimizer="bobyqa"))

model_summary(list(mentalhealth.BA20FOApractices, stress.BA20FOApractices, wage.BA20FOApractices))
## 
## Model Summary
## 
## ───────────────────────────────────────────────────────────────────────────
##                                  (1) mentalhealth  (2) stress  (3) wage    
## ───────────────────────────────────────────────────────────────────────────
## (Intercept)                         4.988 **          3.701      337.226 * 
##                                    (1.838)           (2.855)    (168.468)  
## BA20FOApractices                   -0.088            -0.035       -5.244   
##                                    (0.092)           (0.145)      (8.489)  
## migrant10                          12.968 **         -6.416 *    396.245 * 
##                                    (4.925)           (3.131)    (155.001)  
## migrant10_mean                    -11.243 *           3.366     -432.188   
##                                    (4.472)           (5.656)    (384.388)  
## BA20FOApractices:migrant10         -0.650 **          0.361 *    -20.503 **
##                                    (0.247)           (0.158)      (7.841)  
## BA20FOApractices:migrant10_mean     0.566 *          -0.191       20.901   
##                                    (0.224)           (0.285)     (19.243)  
## ───────────────────────────────────────────────────────────────────────────
## Marginal R^2                        0.028             0.052        0.051   
## Conditional R^2                     0.264             0.094        0.434   
## AIC                              2246.304          3465.962    10086.196   
## BIC                              2292.948          3514.735    10134.855   
## Num. obs.                         784               970          959       
## Num. groups: clus                  44                44           44       
## Var: clus (Intercept)               0.017             0.218      789.517   
## Var: clus migrant10                 0.601             0.338     1318.768   
## Cov: clus (Intercept) migrant10    -0.050            -0.271     -255.259   
## Var: Residual                       0.909             1.967     1910.987   
## ───────────────────────────────────────────────────────────────────────────
## Note. * p < .05, ** p < .01, *** p < .001.
interact_plot(mentalhealth.BA20FOApractices, modx = BA20FOApractices, pred = migrant10)

interact_plot(stress.BA20FOApractices, modx = BA20FOApractices, pred = migrant10)

interact_plot(wage.BA20FOApractices, modx = BA20FOApractices, pred = migrant10)

3.1.3 BA1920discriminate4prac

mentalhealth.BA1920discriminate4prac=lmer(mentalhealth~BA1920discriminate4prac*migrant10+migrant10_mean*BA1920discriminate4prac+ (migrant10|clus), na.action = na.exclude, data = data, control=lmerControl(optimizer="bobyqa"))
stress.BA1920discriminate4prac=lmer(stress~BA1920discriminate4prac*migrant10+migrant10_mean*BA1920discriminate4prac+ (migrant10|clus), na.action = na.exclude, data = data, control=lmerControl(optimizer="bobyqa"))
wage.BA1920discriminate4prac=lmer(wage~BA1920discriminate4prac*migrant10+migrant10_mean*BA1920discriminate4prac+ (migrant10|clus), na.action = na.exclude, data = data, control=lmerControl(optimizer="bobyqa"))

model_summary(list(mentalhealth.BA1920discriminate4prac, stress.BA1920discriminate4prac, wage.BA1920discriminate4prac))
## 
## Model Summary
## 
## ──────────────────────────────────────────────────────────────────────────────────
##                                         (1) mentalhealth  (2) stress  (3) wage    
## ──────────────────────────────────────────────────────────────────────────────────
## (Intercept)                                1.126             2.163      406.518 **
##                                           (1.789)           (1.778)    (141.449)  
## BA1920discriminate4prac                    0.552             0.219      -43.798   
##                                           (0.452)           (0.454)     (35.815)  
## migrant10                                 -0.138             0.956       29.345   
##                                           (1.326)           (1.261)     (62.273)  
## migrant10_mean                             2.834             0.550     -280.043   
##                                           (2.834)           (2.481)    (207.741)  
## BA1920discriminate4prac:migrant10          0.045            -0.084      -11.093   
##                                           (0.342)           (0.328)     (16.211)  
## BA1920discriminate4prac:migrant10_mean    -0.752            -0.230       65.974   
##                                           (0.716)           (0.637)     (52.670)  
## ──────────────────────────────────────────────────────────────────────────────────
## Marginal R^2                               0.002             0.027        0.032   
## Conditional R^2                            0.186             0.058        0.368   
## AIC                                     3932.120          6056.879    17846.788   
## BIC                                     3984.147          6111.204    17900.964   
## Num. obs.                               1343              1690         1665       
## Num. groups: clus                         66                66           66       
## Var: clus (Intercept)                      0.031             0.169      714.091   
## Var: clus migrant10                        0.443             0.282     1391.197   
## Cov: clus (Intercept) migrant10           -0.076            -0.211     -316.643   
## Var: Residual                              0.998             2.028     2389.350   
## ──────────────────────────────────────────────────────────────────────────────────
## Note. * p < .05, ** p < .01, *** p < .001.
interact_plot(mentalhealth.BA1920discriminate4prac, modx = BA1920discriminate4prac, pred = migrant10)

interact_plot(stress.BA1920discriminate4prac, modx = BA1920discriminate4prac, pred = migrant10)

interact_plot(wage.BA1920discriminate4prac, modx = BA1920discriminate4prac, pred = migrant10)

3.1.4 BA20discriminate4prac

mentalhealth.BA20discriminate4prac=lmer(mentalhealth~BA20discriminate4prac*migrant10+migrant10_mean*BA20discriminate4prac+ (migrant10|clus), na.action = na.exclude, data = data, control=lmerControl(optimizer="bobyqa"))
stress.BA20discriminate4prac=lmer(stress~BA20discriminate4prac*migrant10+migrant10_mean*BA20discriminate4prac+ (migrant10|clus), na.action = na.exclude, data = data, control=lmerControl(optimizer="bobyqa"))
wage.BA20discriminate4prac=lmer(wage~BA20discriminate4prac*migrant10+migrant10_mean*BA20discriminate4prac+ (migrant10|clus), na.action = na.exclude, data = data, control=lmerControl(optimizer="bobyqa"))

model_summary(list(mentalhealth.BA20discriminate4prac, stress.BA20discriminate4prac, wage.BA20discriminate4prac))
## 
## Model Summary
## 
## ────────────────────────────────────────────────────────────────────────────────
##                                       (1) mentalhealth  (2) stress  (3) wage    
## ────────────────────────────────────────────────────────────────────────────────
## (Intercept)                              1.263             3.424      578.933 **
##                                         (2.418)           (2.209)    (183.368)  
## BA20discriminate4prac                    0.495            -0.124      -87.203   
##                                         (0.608)           (0.562)     (46.228)  
## migrant10                                1.418            -1.023      109.091   
##                                         (2.429)           (1.818)     (85.307)  
## migrant10_mean                           0.851             1.269     -557.822   
##                                         (4.114)           (3.150)    (290.183)  
## BA20discriminate4prac:migrant10         -0.361             0.445      -30.599   
##                                         (0.619)           (0.469)     (22.017)  
## BA20discriminate4prac:migrant10_mean    -0.186            -0.398      136.462   
##                                         (1.035)           (0.807)     (73.253)  
## ────────────────────────────────────────────────────────────────────────────────
## Marginal R^2                             0.005             0.045        0.056   
## Conditional R^2                          0.271             0.092        0.431   
## AIC                                   2246.134          3465.777    10080.336   
## BIC                                   2292.778          3514.550    10128.995   
## Num. obs.                              784               970          959       
## Num. groups: clus                       44                44           44       
## Var: clus (Intercept)                    0.034             0.209      765.758   
## Var: clus migrant10                      0.757             0.405     1515.093   
## Cov: clus (Intercept) migrant10         -0.107            -0.288     -356.668   
## Var: Residual                            0.909             1.972     1911.968   
## ────────────────────────────────────────────────────────────────────────────────
## Note. * p < .05, ** p < .01, *** p < .001.
interact_plot(mentalhealth.BA20discriminate4prac, modx = BA20discriminate4prac, pred = migrant10)

interact_plot(stress.BA20discriminate4prac, modx = BA20discriminate4prac, pred = migrant10)

interact_plot(wage.BA20discriminate4prac, modx = BA20discriminate4prac, pred = migrant10)

3.1.5 BA1920targetedpractices

mentalhealth.BA1920targetedpractices=lmer(mentalhealth~BA1920targetedpractices*migrant10+migrant10_mean*BA1920targetedpractices+ (migrant10|clus), na.action = na.exclude, data = data, control=lmerControl(optimizer="bobyqa"))
stress.BA1920targetedpractices=lmer(stress~BA1920targetedpractices*migrant10+migrant10_mean*BA1920targetedpractices+ (migrant10|clus), na.action = na.exclude, data = data, control=lmerControl(optimizer="bobyqa"))
wage.BA1920targetedpractices=lmer(wage~BA1920targetedpractices*migrant10+migrant10_mean*BA1920targetedpractices+ (migrant10|clus), na.action = na.exclude, data = data, control=lmerControl(optimizer="bobyqa"))

model_summary(list(mentalhealth.BA1920targetedpractices, stress.BA1920targetedpractices, wage.BA1920targetedpractices))
## 
## Model Summary
## 
## ────────────────────────────────────────────────────────────────────────────────────
##                                         (1) mentalhealth  (2) stress   (3) wage     
## ────────────────────────────────────────────────────────────────────────────────────
## (Intercept)                                1.592             3.605 **    380.477 ***
##                                           (1.359)           (1.327)     (103.053)   
## BA1920targetedpractices                    0.176            -0.061       -15.080    
##                                           (0.138)           (0.137)      (10.543)   
## migrant10                                  1.267            -0.030        78.992    
##                                           (1.285)           (1.075)      (53.297)   
## migrant10_mean                             1.524            -0.624      -283.339    
##                                           (2.422)           (2.015)     (168.036)   
## BA1920targetedpractices:migrant10         -0.133             0.071       -10.023    
##                                           (0.137)           (0.116)       (5.765)   
## BA1920targetedpractices:migrant10_mean    -0.166             0.025        27.323    
##                                           (0.249)           (0.210)      (17.305)   
## ────────────────────────────────────────────────────────────────────────────────────
## Marginal R^2                               0.006             0.027         0.043    
## Conditional R^2                            0.188             0.057         0.367    
## AIC                                     3936.054          6062.975     17849.806    
## BIC                                     3988.081          6117.300     17903.982    
## Num. obs.                               1343              1690          1665        
## Num. groups: clus                         66                66            66        
## Var: clus (Intercept)                      0.023             0.157       681.623    
## Var: clus migrant10                        0.444             0.268      1317.940    
## Cov: clus (Intercept) migrant10           -0.072            -0.197      -289.455    
## Var: Residual                              0.998             2.029      2389.709    
## ────────────────────────────────────────────────────────────────────────────────────
## Note. * p < .05, ** p < .01, *** p < .001.
interact_plot(mentalhealth.BA1920targetedpractices, modx = BA1920targetedpractices, pred = migrant10)

interact_plot(stress.BA1920targetedpractices, modx = BA1920targetedpractices, pred = migrant10)

interact_plot(wage.BA1920targetedpractices, modx = BA1920targetedpractices, pred = migrant10)

3.1.6 BA20targetedpractices

mentalhealth.BA20targetedpractices=lmer(mentalhealth~BA20targetedpractices*migrant10+migrant10_mean*BA20targetedpractices+ (migrant10|clus), na.action = na.exclude, data = data, control=lmerControl(optimizer="bobyqa"))
stress.BA20targetedpractices=lmer(stress~BA20targetedpractices*migrant10+migrant10_mean*BA20targetedpractices+ (migrant10|clus), na.action = na.exclude, data = data, control=lmerControl(optimizer="bobyqa"))
wage.BA20targetedpractices=lmer(wage~BA20targetedpractices*migrant10+migrant10_mean*BA20targetedpractices+ (migrant10|clus), na.action = na.exclude, data = data, control=lmerControl(optimizer="bobyqa"))

model_summary(list(mentalhealth.BA20targetedpractices, stress.BA20targetedpractices, wage.BA20targetedpractices))
## 
## Model Summary
## 
## ──────────────────────────────────────────────────────────────────────────────────
##                                       (1) mentalhealth  (2) stress   (3) wage     
## ──────────────────────────────────────────────────────────────────────────────────
## (Intercept)                              2.035             4.195 **    412.932 ***
##                                         (1.429)           (1.435)     (113.736)   
## BA20targetedpractices                    0.122            -0.131       -18.422    
##                                         (0.145)           (0.149)      (11.630)   
## migrant10                                0.725            -0.779        86.650    
##                                         (1.710)           (1.206)      (57.923)   
## migrant10_mean                           0.142            -1.169      -346.382    
##                                         (2.647)           (2.256)     (195.737)   
## BA20targetedpractices:migrant10         -0.078             0.163       -10.611    
##                                         (0.185)           (0.132)       (6.385)   
## BA20targetedpractices:migrant10_mean     0.005             0.088        34.247    
##                                         (0.273)           (0.239)      (20.293)   
## ──────────────────────────────────────────────────────────────────────────────────
## Marginal R^2                             0.008             0.047         0.051    
## Conditional R^2                          0.275             0.093         0.434    
## AIC                                   2252.242          3471.949     10088.206    
## BIC                                   2298.886          3520.722     10136.865    
## Num. obs.                              784               970           959        
## Num. groups: clus                       44                44            44        
## Var: clus (Intercept)                    0.027             0.212       749.745    
## Var: clus migrant10                      0.785             0.364      1469.150    
## Cov: clus (Intercept) migrant10         -0.111            -0.272      -294.527    
## Var: Residual                            0.909             1.970      1913.017    
## ──────────────────────────────────────────────────────────────────────────────────
## Note. * p < .05, ** p < .01, *** p < .001.
interact_plot(mentalhealth.BA20targetedpractices, modx = BA20targetedpractices, pred = migrant10)

interact_plot(stress.BA20targetedpractices, modx = BA20targetedpractices, pred = migrant10)

interact_plot(wage.BA20targetedpractices, modx = BA20targetedpractices, pred = migrant10)

3.2 II check for ab2: Main effect of M on W (Mplus approach)

3.2.1 BM.responsiblesourcing

BA1920FOApractices.BM.responsiblesourcing=lmer(BA1920FOApractices~BM.responsiblesourcing+ (1|clus), na.action = na.exclude, data = data, control=lmerControl(optimizer="bobyqa"))
BA20FOApractices.BM.responsiblesourcing=lmer(BA20FOApractices~BM.responsiblesourcing+ (1|clus), na.action = na.exclude, data = data, control=lmerControl(optimizer="bobyqa"))
BA1920discriminate4prac.BM.responsiblesourcing=lmer(BA1920discriminate4prac~BM.responsiblesourcing+ (1|clus), na.action = na.exclude, data = data, control=lmerControl(optimizer="bobyqa"))
BA20discriminate4prac.BM.responsiblesourcing=lmer(BA20discriminate4prac~BM.responsiblesourcing+ (1|clus), na.action = na.exclude, data = data, control=lmerControl(optimizer="bobyqa"))
BA1920targetedpractices.BM.responsiblesourcing=lmer(BA1920targetedpractices~BM.responsiblesourcing+ (1|clus), na.action = na.exclude, data = data, control=lmerControl(optimizer="bobyqa"))
BA20targetedpractices.BM.responsiblesourcing=lmer(BA20targetedpractices~BM.responsiblesourcing+ (1|clus), na.action = na.exclude, data = data, control=lmerControl(optimizer="bobyqa"))

model_summary(list(BA1920FOApractices.BM.responsiblesourcing, BA20FOApractices.BM.responsiblesourcing, BA1920discriminate4prac.BM.responsiblesourcing, BA20discriminate4prac.BM.responsiblesourcing, BA1920targetedpractices.BM.responsiblesourcing, BA20targetedpractices.BM.responsiblesourcing))
## 
## Model Summary
## 
## ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
##                         (1) BA1920FOApractices  (2) BA20FOApractices  (3) BA1920discriminate4prac  (4) BA20discriminate4prac  (5) BA1920targetedpractices  (6) BA20targetedpractices
## ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
## (Intercept)                 19.055 ***              18.910 ***             3.813 ***                    3.874 ***                  9.121 ***                    8.859 ***           
##                             (0.055)                 (0.065)               (0.021)                      (0.022)                    (0.060)                      (0.081)              
## BM.responsiblesourcing       0.185 ***               0.333 ***             0.023 **                     0.012                      0.081 ***                    0.094 ***           
##                             (0.019)                 (0.023)               (0.007)                      (0.008)                    (0.021)                      (0.029)              
## ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
## Marginal R^2                 0.693                   0.870                 0.190                        0.070                      0.266                        0.247               
## Conditional R^2              1.000                   1.000                 1.000                        1.000                      1.000                        1.000               
## AIC                     -20816.929              -17259.765            -22545.406                   -14159.220                 -20827.300                   -17284.903               
## BIC                     -20796.968              -17241.844            -22525.445                   -14141.300                 -20807.339                   -17266.983               
## Num. obs.                 1086                     652                  1086                          652                       1086                          652                   
## Num. groups: clus           46                      31                    46                           31                         46                           31                   
## Var: clus (Intercept)        0.033                   0.035                 0.005                        0.004                      0.040                        0.057               
## Var: Residual                0.000                   0.000                 0.000                        0.000                      0.000                        0.000               
## ────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
## Note. * p < .05, ** p < .01, *** p < .001.

3.2.2 BM19.responsiblesourcing

BA1920FOApractices.BM19.responsiblesourcing=lmer(BA1920FOApractices~BM19.responsiblesourcing+ (1|clus), na.action = na.exclude, data = data, control=lmerControl(optimizer="bobyqa"))
BA20FOApractices.BM19.responsiblesourcing=lmer(BA20FOApractices~BM19.responsiblesourcing+ (1|clus), na.action = na.exclude, data = data, control=lmerControl(optimizer="bobyqa"))
BA1920discriminate4prac.BM19.responsiblesourcing=lmer(BA1920discriminate4prac~BM19.responsiblesourcing+ (1|clus), na.action = na.exclude, data = data, control=lmerControl(optimizer="bobyqa"))
BA20discriminate4prac.BM19.responsiblesourcing=lmer(BA20discriminate4prac~BM19.responsiblesourcing+ (1|clus), na.action = na.exclude, data = data, control=lmerControl(optimizer="bobyqa"))
BA1920targetedpractices.BM19.responsiblesourcing=lmer(BA1920targetedpractices~BM19.responsiblesourcing+ (1|clus), na.action = na.exclude, data = data, control=lmerControl(optimizer="bobyqa"))
BA20targetedpractices.BM19.responsiblesourcing=lmer(BA20targetedpractices~BM19.responsiblesourcing+ (1|clus), na.action = na.exclude, data = data, control=lmerControl(optimizer="bobyqa"))

model_summary(list(BA1920FOApractices.BM19.responsiblesourcing, BA20FOApractices.BM19.responsiblesourcing, BA1920discriminate4prac.BM19.responsiblesourcing, BA20discriminate4prac.BM19.responsiblesourcing, BA1920targetedpractices.BM19.responsiblesourcing, BA20targetedpractices.BM19.responsiblesourcing))
## 
## Model Summary
## 
## ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
##                           (1) BA1920FOApractices  (2) BA20FOApractices  (3) BA1920discriminate4prac  (4) BA20discriminate4prac  (5) BA1920targetedpractices  (6) BA20targetedpractices
## ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
## (Intercept)                   19.154 ***              19.199 ***             3.636 ***                    3.608 ***                  8.506 ***                   8.335 ***            
##                               (0.060)                 (0.068)               (0.023)                      (0.026)                    (0.068)                     (0.083)               
## BM19.responsiblesourcing       0.155 ***               0.232 ***             0.089 ***                    0.103 ***                  0.277 ***                   0.292 ***            
##                               (0.018)                 (0.021)               (0.007)                      (0.008)                    (0.021)                     (0.026)               
## ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
## Marginal R^2                   0.674                   0.821                 0.838                        0.893                      0.837                       0.834                
## Conditional R^2                1.000                   1.000                 1.000                        1.000                      1.000                       1.000                
## AIC                       -13646.961              -14321.831            -21765.239                   -15856.399                 -19141.811                   -9889.651                
## BIC                       -13628.611              -14304.725            -21746.889                   -15839.292                 -19123.461                   -9872.544                
## Num. obs.                    726                     532                   726                          532                        726                         532                    
## Num. groups: clus             33                      24                    33                           24                         33                          24                    
## Var: clus (Intercept)          0.035                   0.034                 0.005                        0.004                      0.046                       0.050                
## Var: Residual                  0.000                   0.000                 0.000                        0.000                      0.000                       0.000                
## ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
## Note. * p < .05, ** p < .01, *** p < .001.

3.2.3 BM20.responsiblesourcing

BA1920FOApractices.BM20.responsiblesourcing=lmer(BA1920FOApractices~BM20.responsiblesourcing+ (1|clus), na.action = na.exclude, data = data, control=lmerControl(optimizer="bobyqa"))
BA20FOApractices.BM20.responsiblesourcing=lmer(BA20FOApractices~BM20.responsiblesourcing+ (1|clus), na.action = na.exclude, data = data, control=lmerControl(optimizer="bobyqa"))
BA1920discriminate4prac.BM20.responsiblesourcing=lmer(BA1920discriminate4prac~BM20.responsiblesourcing+ (1|clus), na.action = na.exclude, data = data, control=lmerControl(optimizer="bobyqa"))
BA20discriminate4prac.BM20.responsiblesourcing=lmer(BA20discriminate4prac~BM20.responsiblesourcing+ (1|clus), na.action = na.exclude, data = data, control=lmerControl(optimizer="bobyqa"))
BA1920targetedpractices.BM20.responsiblesourcing=lmer(BA1920targetedpractices~BM20.responsiblesourcing+ (1|clus), na.action = na.exclude, data = data, control=lmerControl(optimizer="bobyqa"))
BA20targetedpractices.BM20.responsiblesourcing=lmer(BA20targetedpractices~BM20.responsiblesourcing+ (1|clus), na.action = na.exclude, data = data, control=lmerControl(optimizer="bobyqa"))

model_summary(list(BA1920FOApractices.BM20.responsiblesourcing, BA20FOApractices.BM20.responsiblesourcing, BA1920discriminate4prac.BM20.responsiblesourcing, BA20discriminate4prac.BM20.responsiblesourcing, BA1920targetedpractices.BM20.responsiblesourcing, BA20targetedpractices.BM20.responsiblesourcing))
## 
## Model Summary
## 
## ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
##                           (1) BA1920FOApractices  (2) BA20FOApractices  (3) BA1920discriminate4prac  (4) BA20discriminate4prac  (5) BA1920targetedpractices  (6) BA20targetedpractices
## ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
## (Intercept)                   19.465 ***              19.410 ***             3.934 ***                    3.994 ***                  9.499 ***                    9.273 ***           
##                               (0.051)                 (0.070)               (0.018)                      (0.021)                    (0.055)                      (0.082)              
## BM20.responsiblesourcing       0.032                   0.135 ***            -0.035 ***                   -0.055 ***                 -0.092 ***                   -0.127 ***           
##                               (0.017)                 (0.023)               (0.006)                      (0.007)                    (0.018)                      (0.027)              
## ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
## Marginal R^2                   0.078                   0.500                 0.426                        0.625                      0.373                        0.403               
## Conditional R^2                1.000                   1.000                 1.000                        1.000                      1.000                        1.000               
## AIC                       -21942.217              -12184.716            -24583.388                   -13828.546                 -15297.566                   -12491.709               
## BIC                       -21923.365              -12168.114            -24564.537                   -13811.943                 -15278.714                   -12475.107               
## Num. obs.                    823                     469                   823                          469                        823                          469                   
## Num. groups: clus             35                      23                    35                           23                         35                           23                   
## Var: clus (Intercept)          0.037                   0.049                 0.005                        0.005                      0.044                        0.065               
## Var: Residual                  0.000                   0.000                 0.000                        0.000                      0.000                        0.000               
## ──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
## Note. * p < .05, ** p < .01, *** p < .001.

3.3 III check for cw1: Cross-level interaction of W

3.3.1 BM.responsiblesourcing

mentalhealth.BM.responsiblesourcing=lmer(mentalhealth~BM.responsiblesourcing*migrant10+migrant10_mean*BM.responsiblesourcing+ (migrant10|clus), na.action = na.exclude, data = data, control=lmerControl(optimizer="bobyqa"))
stress.BM.responsiblesourcing=lmer(stress~BM.responsiblesourcing*migrant10+migrant10_mean*BM.responsiblesourcing+ (migrant10|clus), na.action = na.exclude, data = data, control=lmerControl(optimizer="bobyqa"))
wage.BM.responsiblesourcing=lmer(wage~BM.responsiblesourcing*migrant10+migrant10_mean*BM.responsiblesourcing+ (migrant10|clus), na.action = na.exclude, data = data, control=lmerControl(optimizer="bobyqa"))

model_summary(list(mentalhealth.BM.responsiblesourcing, stress.BM.responsiblesourcing, wage.BM.responsiblesourcing))
## 
## Model Summary
## 
## ────────────────────────────────────────────────────────────────────────────────────
##                                        (1) mentalhealth  (2) stress    (3) wage     
## ────────────────────────────────────────────────────────────────────────────────────
## (Intercept)                               3.203 ***         3.323 ***    224.175 ***
##                                          (0.204)           (0.308)       (14.910)   
## BM.responsiblesourcing                    0.059            -0.075          3.514    
##                                          (0.089)           (0.127)        (6.743)   
## migrant10                                 0.471             0.303         -0.493    
##                                          (0.318)           (0.326)       (13.732)   
## migrant10_mean                           -0.171            -0.707        -23.138    
##                                          (0.370)           (0.465)       (25.382)   
## BM.responsiblesourcing:migrant10         -0.189             0.180         -3.903    
##                                          (0.104)           (0.108)        (4.562)   
## BM.responsiblesourcing:migrant10_mean     0.002            -0.002          2.060    
##                                          (0.141)           (0.174)       (10.086)   
## ────────────────────────────────────────────────────────────────────────────────────
## Marginal R^2                              0.026             0.047          0.021    
## Conditional R^2                           0.224             0.092          0.381    
## AIC                                    2679.246          4040.290      11802.693    
## BIC                                    2727.468          4090.501      11852.796    
## Num. obs.                               918              1120           1108        
## Num. groups: clus                        49                49             49        
## Var: clus (Intercept)                     0.036             0.280        473.151    
## Var: clus migrant10                       0.547             0.420       1096.093    
## Cov: clus (Intercept) migrant10          -0.112            -0.338         37.356    
## Var: Residual                             0.964             2.035       2233.244    
## ────────────────────────────────────────────────────────────────────────────────────
## Note. * p < .05, ** p < .01, *** p < .001.
interact_plot(mentalhealth.BM.responsiblesourcing, modx = BM.responsiblesourcing, pred = migrant10)

interact_plot(stress.BM.responsiblesourcing, modx = BM.responsiblesourcing, pred = migrant10)

interact_plot(wage.BM.responsiblesourcing, modx = BM.responsiblesourcing, pred = migrant10)

3.3.2 BM19.responsiblesourcing

mentalhealth.BM19.responsiblesourcing=lmer(mentalhealth~BM19.responsiblesourcing*migrant10+migrant10_mean*BM19.responsiblesourcing+ (migrant10|clus), na.action = na.exclude, data = data, control=lmerControl(optimizer="bobyqa"))
stress.BM19.responsiblesourcing=lmer(stress~BM19.responsiblesourcing*migrant10+migrant10_mean*BM19.responsiblesourcing+ (migrant10|clus), na.action = na.exclude, data = data, control=lmerControl(optimizer="bobyqa"))
wage.BM19.responsiblesourcing=lmer(wage~BM19.responsiblesourcing*migrant10+migrant10_mean*BM19.responsiblesourcing+ (migrant10|clus), na.action = na.exclude, data = data, control=lmerControl(optimizer="bobyqa"))

model_summary(list(mentalhealth.BM19.responsiblesourcing, stress.BM19.responsiblesourcing, wage.BM19.responsiblesourcing))
## 
## Model Summary
## 
## ─────────────────────────────────────────────────────────────────────────────────────
##                                          (1) mentalhealth  (2) stress    (3) wage    
## ─────────────────────────────────────────────────────────────────────────────────────
## (Intercept)                                 3.167 ***         3.852 ***   230.417 ***
##                                            (0.250)           (0.360)      (19.074)   
## BM19.responsiblesourcing                    0.027            -0.249 *      -1.593    
##                                            (0.078)           (0.114)       (5.653)   
## migrant10                                   0.124             0.251         3.874    
##                                            (0.335)           (0.316)      (12.649)   
## migrant10_mean                              0.098            -1.036       -24.964    
##                                            (0.411)           (0.536)      (30.287)   
## BM19.responsiblesourcing:migrant10         -0.084             0.162        -4.218    
##                                            (0.105)           (0.098)       (3.968)   
## BM19.responsiblesourcing:migrant10_mean    -0.006             0.179         6.848    
##                                            (0.125)           (0.172)       (8.788)   
## ─────────────────────────────────────────────────────────────────────────────────────
## Marginal R^2                                0.008             0.052         0.010    
## Conditional R^2                             0.240             0.089         0.365    
## AIC                                      1848.897          2728.782      7889.363    
## BIC                                      1893.480          2775.035      7935.537    
## Num. obs.                                 638               754           748        
## Num. groups: clus                          35                35            35        
## Var: clus (Intercept)                       0.038             0.132       270.071    
## Var: clus migrant10                         0.737             0.357       964.767    
## Cov: clus (Intercept) migrant10            -0.167            -0.217       178.383    
## Var: Residual                               0.925             2.042      2027.924    
## ─────────────────────────────────────────────────────────────────────────────────────
## Note. * p < .05, ** p < .01, *** p < .001.
interact_plot(mentalhealth.BM19.responsiblesourcing, modx = BM19.responsiblesourcing, pred = migrant10)

interact_plot(stress.BM19.responsiblesourcing, modx = BM19.responsiblesourcing, pred = migrant10)

interact_plot(wage.BM19.responsiblesourcing, modx = BM19.responsiblesourcing, pred = migrant10)

3.3.3 BM20.responsiblesourcing

mentalhealth.BM20.responsiblesourcing=lmer(mentalhealth~BM20.responsiblesourcing*migrant10+migrant10_mean*BM20.responsiblesourcing+ (migrant10|clus), na.action = na.exclude, data = data, control=lmerControl(optimizer="bobyqa"))
stress.BM20.responsiblesourcing=lmer(stress~BM20.responsiblesourcing*migrant10+migrant10_mean*BM20.responsiblesourcing+ (migrant10|clus), na.action = na.exclude, data = data, control=lmerControl(optimizer="bobyqa"))
wage.BM20.responsiblesourcing=lmer(wage~BM20.responsiblesourcing*migrant10+migrant10_mean*BM20.responsiblesourcing+ (migrant10|clus), na.action = na.exclude, data = data, control=lmerControl(optimizer="bobyqa"))

model_summary(list(mentalhealth.BM20.responsiblesourcing, stress.BM20.responsiblesourcing, wage.BM20.responsiblesourcing))
## 
## Model Summary
## 
## ─────────────────────────────────────────────────────────────────────────────────────
##                                          (1) mentalhealth  (2) stress    (3) wage    
## ─────────────────────────────────────────────────────────────────────────────────────
## (Intercept)                                 3.303 ***         3.022 ***   217.620 ***
##                                            (0.182)           (0.248)      (12.932)   
## BM20.responsiblesourcing                    0.053            -0.029         9.386    
##                                            (0.089)           (0.109)       (6.932)   
## migrant10                                   0.200             0.730 *     -18.140    
##                                            (0.325)           (0.295)      (14.873)   
## migrant10_mean                             -0.184            -0.774         4.946    
##                                            (0.361)           (0.423)      (23.563)   
## BM20.responsiblesourcing:migrant10         -0.097             0.106         0.863    
##                                            (0.098)           (0.094)       (4.601)   
## BM20.responsiblesourcing:migrant10_mean    -0.036            -0.006       -12.944    
##                                            (0.145)           (0.155)      (10.611)   
## ─────────────────────────────────────────────────────────────────────────────────────
## Marginal R^2                                0.016             0.065         0.040    
## Conditional R^2                             0.238             0.099         0.426    
## AIC                                      2003.898          3013.138      8811.311    
## BIC                                      2049.118          3060.424      8858.501    
## Num. obs.                                 680               836           828        
## Num. groups: clus                          37                37            37        
## Var: clus (Intercept)                       0.069             0.195       559.372    
## Var: clus migrant10                         0.654             0.255      1615.160    
## Cov: clus (Intercept) migrant10            -0.158            -0.214      -137.613    
## Var: Residual                               0.974             2.019      2204.179    
## ─────────────────────────────────────────────────────────────────────────────────────
## Note. * p < .05, ** p < .01, *** p < .001.
interact_plot(mentalhealth.BM20.responsiblesourcing, modx = BM20.responsiblesourcing, pred = migrant10)

interact_plot(stress.BM20.responsiblesourcing, modx = BM20.responsiblesourcing, pred = migrant10)

interact_plot(wage.BM20.responsiblesourcing, modx = BM20.responsiblesourcing, pred = migrant10)