Preparation

data<-read.csv("/Users/samanthabouwmeester/Documents/Out of the Box Plot/CWTL/Copy of RCT_data_full.csv")

### Changes in Copy of RCT_data_full.csv that are processed in datacleaning file. ####
data$read_2[data$index==262]=data$read_1[data$index==262] 
data$read_2[data$index==4]=data$read_1[data$index==4] 
data$read_2[data$index==5]=data$read_1[data$index==5] 
data$read_2[data$index==7]=data$read_1[data$index==7] 
data$read_2[data$index==8]=data$read_1[data$index==8] 

data$Attendance<-rowSums(data[,which(substring(colnames(data),1,4)=="week")],na.rm = TRUE)
data$Attendance_dich=1
data$Attendance_dich[data$Attendance<21*5*.8]=0


# Missings values 

#baseline num
bas.num<-data[,c("total_nid","total_qds","total_mis","total_add","total_sub","total_prb")]

#Are there any missings values?
any(is.na(rowSums(bas.num)))
## [1] FALSE
# FALSE, so no missing values

#baseline lit
bas.lit<-data[,c("total_lid","total_pho","total_muw","total_non","total_com","total_lis","total_wrt","read_1","read_2")]
bas.lit$read_2[is.na(bas.lit$read_2)]=bas.lit$read_1[is.na(bas.lit$read_2)]
bas.lit$read_1[is.na(bas.lit$read_1)]=0 #One Na in read1 has to be 0.

# Are there any missings values?
any(is.na(rowSums(bas.lit)))
## [1] FALSE
# FALSE, so no missing values



#endline num
end.num<-data[,c("total_nid_end","total_qds_end","total_mis_end","total_add_end","total_sub_end","total_prb_end")]

# Are there any missings values?
any(is.na(rowSums(end.num)))
## [1] TRUE
# TRUE, so missing values: multiple imputation

mis.number=rep(NA,6)
for(i in 1:ncol(end.num))
mis.number[i]=length(which(is.na(end.num[,i])))

mis.number
## [1] 69 69 69 69 69 69
# 69 participants miss the endline data for numericy all tasks. This is 69/1507=.046, 4.6%
# These endline scores were imputed.

library(mice)
scores.mice<-mice(end.num,print=FALSE)
end.num.MI<-complete(scores.mice)

data[,c("total_nid_end","total_qds_end","total_mis_end","total_add_end","total_sub_end","total_prb_end")]=end.num.MI


#check
end.num<-data[,c("total_nid_end","total_qds_end","total_mis_end","total_add_end","total_sub_end","total_prb_end")]
any(is.na(rowSums(end.num)))
## [1] FALSE
# FALSE: no missings anymore


### total scores in percentages
totals.num_perc_bas<-data.frame(data$total_nid/15,
                            data$total_qds/10,
                            data$total_mis/10,
                            data$total_add/25,
                            data$total_sub/25,
                            data$total_prb/6)


totals.num_perc_end<-data.frame(data$total_nid_end/15,
                            data$total_qds_end/10,
                            data$total_mis_end/10,
                            data$total_add_end/25,
                            data$total_sub_end/25,
                            data$total_prb_end/6)


end.num$tot.num_end<-rowSums(totals.num_perc_end)/6.  #divided by 6 to get scores between 0 and 1

bas.num$tot.num<-rowSums(totals.num_perc_bas)/6. #divided by 6 to get scores between 0 and 1


#endline lit
end.lit<-data[,c("total_lid_end","total_pho_end","total_muw_end","total_non_end","total_com_end","total_lis_end","total_wrt_end","RCP1_end",
                 "RCP2_end")]


# Are there any missings values?
any(is.na(rowSums(end.lit)))
## [1] TRUE
# TRUE, so missing values: multiple imputation

mis.lit=rep(NA,9)
for(i in 1:ncol(end.lit))
  mis.lit[i]=length(which(is.na(end.lit[,i])))

mis.lit
## [1]  69  69  69  69 416  69  69  69 416
# 69 participants miss the endline data for literacy all tasks. This is 69/1507=.046, 4.6%
# Task total_com and Read_2 has 416 missings values, this is 416/1507=.276, 27.6%
# These endline scores were imputed.

scores.mice<-mice(end.lit,print=FALSE)
end.lit.MI<-complete(scores.mice)

data[,c("total_lid_end","total_pho_end","total_muw_end","total_non_end","total_com_end","total_lis_end","total_wrt_end","RCP1_end","RCP2_end")]=end.lit.MI


#check
end.lit<-data[,c("total_lid_end","total_pho_end","total_muw_end","total_non_end","total_com_end","total_lis_end","total_wrt_end"
                 ,"RCP1_end","RCP2_end")]
any(is.na(rowSums(end.lit)))
## [1] FALSE
# FALSE: no missings anymore

### Add total literacy score as a percentage note that READ_2 is not included

totals.lit_perc_bas<-data.frame(data$total_lid/26,
                            data$total_pho/10,
                            data$total_muw/20,
                            data$total_non/16,
                            data$total_com/5,
                            data$total_lis/5,
                            data$total_wrt/10,
                            data$read_1/99)


totals.lit_perc_end<-data.frame(data$total_lid_end/26,
                            data$total_pho_end/10,
                            data$total_muw_end/20,
                            data$total_non_end/16,
                            data$total_com_end/5,
                            data$total_lis_end/5,
                            data$total_wrt_end/10,
                            data$RCP1_end/99)


end.lit$tot.lit_end<-rowSums(totals.lit_perc_end)/8

bas.lit$tot.lit<-rowSums(totals.lit_perc_bas)/8

### Add total wellbeing score
wellbeing<-data[,which(substring(colnames(data),1,4)=="SCWS")]
                     
for(i in 1:ncol(wellbeing)){
  wellbeing[,i][wellbeing[,i]=="Never"]=0
  wellbeing[,i][wellbeing[,i]=="Not much of the time"]=1
  wellbeing[,i][wellbeing[,i]=="Some of the time"]=2
  wellbeing[,i][wellbeing[,i]=="Quite a lot of the time"]=3
   wellbeing[,i][wellbeing[,i]=="All of the time"]=4
   wellbeing[,i][wellbeing[,i]=="Refused to answer"]=NA
}

wellbeing<-apply(wellbeing,2,as.numeric)
scores.mice<-mice(wellbeing,print=FALSE)
wellbeing<-complete(scores.mice)
wb.bas<-cbind(data[,c(2:4,620)],wellbeing[,1:12])
wb.end<-cbind(wb.bas[,1:4],wellbeing[,13:24])
colnames(wb.end)<-colnames(wb.bas)

WB.long<-rbind(wb.bas,wb.end)
#head(WB.long)
WB.long$totaal<-rowSums(WB.long[,5:16])

Assesments

Long datafile

### Long datafile ###.  

baseline<-cbind(data$participantID,data$GenderChild,data$School,data$Group,data$Attendance,data$Attendance_dich,bas.num,bas.lit)
colnames(baseline)<-c("participantID","GenderChild","School" ,"Group"  ,         "Attendance" ,     "Attendance_dich",colnames(baseline[7:23]))
endline<-cbind(baseline[,1:6],end.num,end.lit)
colnames(endline)=colnames(baseline)

longdata<-rbind(baseline,endline)
longdata<-longdata[order(longdata$participantID),]
longdata$WB_total<-WB.long$totaal
longdata$time<-rep(c("baseline","endline"),nrow(baseline))



write.csv(longdata,"/Users/samanthabouwmeester/Documents/Out of the Box Plot/CWTL/longdata.csv")

Descriptives

dm<-t(descriptives_Num)
colnames(dm)<-c("Baseline A","Endline A","Baseline B","Endline B")
data.table(dm[-c(1,2),],keep.rownames=TRUE)
##                 rn Baseline A Endline A Baseline B Endline B
##  1: mean total_nid      12.25     14.12      12.17     13.75
##  2:   sd total_nid       2.90      1.63       2.95      2.11
##  3: mean total_qds       8.29      9.44       8.25      9.06
##  4:   sd total_qds       2.05      1.10       2.14      1.52
##  5: mean total_mis       5.82      7.69       5.27      7.02
##  6:   sd total_mis       2.81      2.18       2.94      2.68
##  7: mean total_add       6.97      9.86       5.83      8.35
##  8:   sd total_add       4.10      4.25       3.70      4.27
##  9: mean total_sub       4.63      7.24       3.97      5.43
## 10:   sd total_sub       3.66      3.96       2.91      3.38
## 11: mean total_prb       3.51      4.74       3.44      4.43
## 12:   sd total_prb       1.92      1.38       1.89      1.60
## 13:   mean tot.num       0.55      0.69       0.52      0.64
## 14:     sd tot.num       0.16      0.12       0.16      0.14
dl<-t(descriptives_Lit)
colnames(dl)<-c("Baseline A","Endline A","Baseline B","Endline B")
data.table(dl[-c(1,2),],keep.rownames=TRUE)
##                 rn Baseline A Endline A Baseline B Endline B
##  1: mean total_lid      19.39     23.69      20.41     23.13
##  2:   sd total_lid       8.14      4.45       7.19      4.91
##  3: mean total_pho       3.71      6.82       2.16      2.91
##  4:   sd total_pho       3.51      3.03       2.83      3.15
##  5: mean total_muw       8.37     13.87       7.46     12.11
##  6:   sd total_muw       6.91      6.27       6.54      6.95
##  7: mean total_non       3.73      7.99       2.81      5.71
##  8:   sd total_non       4.72      5.31       4.15      5.25
##  9: mean total_com       0.80      1.75       0.60      1.53
## 10:   sd total_com       1.27      1.50       1.09      1.45
## 11: mean total_lis       0.86      1.48       0.64      1.20
## 12:   sd total_lis       1.26      1.41       1.04      1.32
## 13: mean total_wrt       3.06      4.78       2.51      4.52
## 14:   sd total_wrt       2.92      3.26       2.73      3.29
## 15:    mean read_1      13.72     29.90      10.32     23.62
## 16:      sd read_1      15.90     23.04      13.31     20.44
## 17:    mean read_2      28.22     60.97      23.63     52.62
## 18:      sd read_2      31.68     28.20      30.39     28.93
## 19:   mean tot.lit       0.32      0.53       0.27      0.42
## 20:     sd tot.lit       0.20      0.22       0.18      0.22

Analysis

nid

tab_model(fit_nid,fit_nid1)
  total_nid total_nid
Predictors Estimates CI p Estimates CI p
(Intercept) 11.12 10.61 – 11.63 <0.001 11.09 10.56 – 11.62 <0.001
GenderChild [Male] 0.27 0.03 – 0.52 0.030 0.27 0.02 – 0.52 0.032
time [endline] 1.86 1.37 – 2.35 <0.001 1.75 1.26 – 2.25 <0.001
Attendance 0.01 0.01 – 0.02 <0.001 0.01 0.01 – 0.02 <0.001
GenderChild [Male] × time
[endline]
-0.20 -0.46 – 0.05 0.121 -0.19 -0.44 – 0.07 0.147
time [endline] ×
Attendance
-0.00 -0.01 – 0.01 0.873 -0.00 -0.01 – 0.01 0.735
Group [1] 0.05 -0.30 – 0.40 0.784
time [endline] × Group
[1]
0.29 0.03 – 0.55 0.026
Random Effects
σ2 3.20 3.19
τ00 2.70 participantID:School 2.70 participantID:School
0.13 School 0.12 School
ICC 0.47 0.47
N 1507 participantID 1507 participantID
30 School 30 School
Observations 3014 3014
Marginal R2 / Conditional R2 0.120 / 0.533 0.122 / 0.534
plot(colnames(dat)[10])

# The thin lines are the means of the schools, thick lines are the overall means.

qds

tab_model(fit_qds,fit_qds1)
  total_qds total_qds
Predictors Estimates CI p Estimates CI p
(Intercept) 7.86 7.50 – 8.22 <0.001 7.84 7.47 – 8.22 <0.001
GenderChild [Male] -0.01 -0.18 – 0.17 0.946 -0.01 -0.19 – 0.17 0.911
time [endline] 0.79 0.39 – 1.18 <0.001 0.66 0.26 – 1.05 0.001
Attendance 0.01 0.00 – 0.01 0.013 0.01 0.00 – 0.01 0.011
GenderChild [Male] × time
[endline]
-0.12 -0.33 – 0.08 0.230 -0.11 -0.31 – 0.09 0.291
time [endline] ×
Attendance
0.00 -0.00 – 0.01 0.160 0.00 -0.00 – 0.01 0.252
Group [1] 0.01 -0.23 – 0.25 0.926
time [endline] × Group
[1]
0.34 0.13 – 0.54 0.001
Random Effects
σ2 2.04 2.02
τ00 0.98 participantID:School 0.99 participantID:School
0.06 School 0.05 School
ICC 0.34 0.34
N 1507 participantID 1507 participantID
30 School 30 School
Observations 3014 3014
Marginal R2 / Conditional R2 0.080 / 0.392 0.085 / 0.396
plot(colnames(dat)[11])

# The thin lines are the means of the schools, thick lines are the overall means.

mis

tab_model(fit_mis,fit_mis1)
  total_mis total_mis
Predictors Estimates CI p Estimates CI p
(Intercept) 4.26 3.69 – 4.83 <0.001 4.03 3.44 – 4.62 <0.001
GenderChild [Male] 0.25 -0.02 – 0.51 0.070 0.25 -0.01 – 0.52 0.063
time [endline] 1.75 1.23 – 2.27 <0.001 1.72 1.18 – 2.25 <0.001
Attendance 0.02 0.01 – 0.02 <0.001 0.02 0.01 – 0.02 <0.001
GenderChild [Male] × time
[endline]
-0.32 -0.59 – -0.05 0.021 -0.32 -0.59 – -0.04 0.023
time [endline] ×
Attendance
0.00 -0.00 – 0.01 0.364 0.00 -0.00 – 0.01 0.394
Group [1] 0.51 0.09 – 0.94 0.018
time [endline] × Group
[1]
0.09 -0.18 – 0.36 0.521
Random Effects
σ2 3.64 3.65
τ00 3.19 participantID:School 3.19 participantID:School
0.28 School 0.21 School
ICC 0.49 0.48
N 1507 participantID 1507 participantID
30 School 30 School
Observations 3014 3014
Marginal R2 / Conditional R2 0.119 / 0.549 0.129 / 0.549
plot(colnames(dat)[12])

# The thin lines are the means of the schools, thick lines are the overall means.

add

tab_model(fit_add,fit_add1)
  total_add total_add
Predictors Estimates CI p Estimates CI p
(Intercept) 4.66 3.80 – 5.53 <0.001 4.28 3.44 – 5.12 <0.001
GenderChild [Male] 0.22 -0.19 – 0.63 0.300 0.22 -0.19 – 0.63 0.287
time [endline] 1.86 0.95 – 2.76 <0.001 1.75 0.83 – 2.67 <0.001
Attendance 0.02 0.01 – 0.03 <0.001 0.02 0.01 – 0.03 <0.001
GenderChild [Male] × time
[endline]
-0.53 -1.01 – -0.06 0.027 -0.52 -0.99 – -0.05 0.031
time [endline] ×
Attendance
0.02 0.00 – 0.03 0.009 0.02 0.00 – 0.03 0.012
Group [1] 1.09 0.59 – 1.59 <0.001
time [endline] × Group
[1]
0.29 -0.18 – 0.77 0.228
Random Effects
σ2 10.94 10.94
τ00 5.32 participantID:School 5.33 participantID:School
0.55 School 0.16 School
ICC 0.35 0.33
N 1507 participantID 1507 participantID
30 School 30 School
Observations 3014 3014
Marginal R2 / Conditional R2 0.118 / 0.426 0.138 / 0.426
plot(colnames(dat)[13])

# The thin lines are the means of the schools, thick lines are the overall means.

sub

tab_model(fit_sub,fit_sub1)
  total_sub total_sub
Predictors Estimates CI p Estimates CI p
(Intercept) 3.20 2.45 – 3.95 <0.001 2.99 2.26 – 3.71 <0.001
GenderChild [Male] 0.26 -0.10 – 0.61 0.154 0.24 -0.11 – 0.59 0.186
time [endline] 1.20 0.41 – 1.99 0.003 0.77 -0.03 – 1.57 0.058
Attendance 0.01 0.00 – 0.02 0.004 0.01 0.00 – 0.02 0.008
GenderChild [Male] × time
[endline]
0.13 -0.28 – 0.55 0.528 0.18 -0.23 – 0.59 0.379
time [endline] ×
Attendance
0.01 0.00 – 0.02 0.040 0.01 -0.00 – 0.02 0.101
Group [1] 0.64 0.20 – 1.07 0.004
time [endline] × Group
[1]
1.12 0.70 – 1.53 <0.001
Random Effects
σ2 8.37 8.22
τ00 3.73 participantID:School 3.81 participantID:School
0.49 School 0.13 School
ICC 0.34 0.32
N 1507 participantID 1507 participantID
30 School 30 School
Observations 3014 3014
Marginal R2 / Conditional R2 0.088 / 0.394 0.119 / 0.404
plot(colnames(dat)[14])

# The thin lines are the means of the schools, thick lines are the overall means.

prb

tab_model(fit_prb,fit_prb1)
  total_prb total_prb
Predictors Estimates CI p Estimates CI p
(Intercept) 2.99 2.62 – 3.36 <0.001 2.95 2.55 – 3.34 <0.001
GenderChild [Male] 0.19 0.02 – 0.36 0.030 0.19 0.02 – 0.36 0.033
time [endline] 1.40 1.02 – 1.79 <0.001 1.31 0.92 – 1.71 <0.001
Attendance 0.01 0.00 – 0.01 0.017 0.01 0.00 – 0.01 0.015
GenderChild [Male] × time
[endline]
-0.25 -0.45 – -0.04 0.017 -0.24 -0.44 – -0.03 0.022
time [endline] ×
Attendance
-0.00 -0.01 – 0.00 0.367 -0.00 -0.01 – 0.00 0.278
Group [1] 0.06 -0.26 – 0.38 0.698
time [endline] × Group
[1]
0.24 0.03 – 0.44 0.022
Random Effects
σ2 1.99 1.98
τ00 0.81 participantID:School 0.81 participantID:School
0.15 School 0.14 School
ICC 0.32 0.33
N 1507 participantID 1507 participantID
30 School 30 School
Observations 3014 3014
Marginal R2 / Conditional R2 0.099 / 0.391 0.102 / 0.394
plot(colnames(dat)[15])

# The thin lines are the means of the schools, thick lines are the overall means.

nu

tab_model(fit_nu,fit_nu1)
  tot.num tot.num
Predictors Estimates CI p Estimates CI p
(Intercept) 0.46 0.43 – 0.49 <0.001 0.45 0.42 – 0.48 <0.001
GenderChild [Male] 0.02 0.00 – 0.03 0.035 0.02 0.00 – 0.03 0.035
time [endline] 0.12 0.10 – 0.15 <0.001 0.11 0.09 – 0.14 <0.001
Attendance 0.00 0.00 – 0.00 <0.001 0.00 0.00 – 0.00 <0.001
GenderChild [Male] × time
[endline]
-0.02 -0.03 – -0.01 0.004 -0.02 -0.03 – -0.01 0.006
time [endline] ×
Attendance
0.00 -0.00 – 0.00 0.180 0.00 -0.00 – 0.00 0.307
Group [1] 0.02 0.00 – 0.04 0.048
time [endline] × Group
[1]
0.03 0.01 – 0.04 <0.001
Random Effects
σ2 0.01 0.01
τ00 0.01 participantID:School 0.01 participantID:School
0.00 School 0.00 School
ICC 0.61 0.61
N 1507 participantID 1507 participantID
30 School 30 School
Observations 3014 3014
Marginal R2 / Conditional R2 0.179 / 0.680 0.194 / 0.683
plot(colnames(dat)[16])

# The thin lines are the means of the schools, thick lines are the overall means.

lid

tab_model(fit_lid,fit_lid1)
  total_lid total_lid
Predictors Estimates CI p Estimates CI p
(Intercept) 17.83 16.43 – 19.24 <0.001 18.30 16.75 – 19.85 <0.001
GenderChild [Male] -0.16 -0.78 – 0.46 0.618 -0.20 -0.82 – 0.42 0.534
time [endline] 3.39 2.01 – 4.78 <0.001 2.80 1.40 – 4.20 <0.001
Attendance 0.03 0.01 – 0.05 <0.001 0.03 0.02 – 0.05 <0.001
GenderChild [Male] × time
[endline]
-0.37 -1.09 – 0.35 0.313 -0.30 -1.02 – 0.42 0.413
time [endline] ×
Attendance
0.00 -0.01 – 0.02 0.634 0.00 -0.02 – 0.02 0.892
Group [1] -1.13 -2.52 – 0.26 0.112
time [endline] × Group
[1]
1.56 0.84 – 2.28 <0.001
Random Effects
σ2 25.56 25.28
τ00 11.82 participantID:School 11.97 participantID:School
2.94 School 3.03 School
ICC 0.37 0.37
N 1507 participantID 1507 participantID
30 School 30 School
Observations 3014 3014
Marginal R2 / Conditional R2 0.081 / 0.417 0.084 / 0.425
plot(colnames(dat)[17])

# The thin lines are the means of the schools, thick lines are the overall means.

pho

tab_model(fit_pho,fit_pho1)
  total_pho total_pho
Predictors Estimates CI p Estimates CI p
(Intercept) 3.17 2.29 – 4.05 <0.001 2.28 1.43 – 3.14 <0.001
GenderChild [Male] -0.29 -0.59 – 0.01 0.055 -0.34 -0.64 – -0.05 0.023
time [endline] -0.06 -0.85 – 0.73 0.880 -0.93 -1.70 – -0.16 0.018
Attendance -0.00 -0.01 – 0.01 0.761 0.00 -0.01 – 0.01 0.837
GenderChild [Male] × time
[endline]
-0.07 -0.48 – 0.34 0.730 0.03 -0.36 – 0.43 0.874
time [endline] ×
Attendance
0.03 0.02 – 0.04 <0.001 0.02 0.01 – 0.03 <0.001
Group [1] 1.53 0.62 – 2.44 0.001
time [endline] × Group
[1]
2.29 1.89 – 2.69 <0.001
Random Effects
σ2 8.31 7.66
τ00 0.40 participantID:School 0.72 participantID:School
3.24 School 1.44 School
ICC 0.30 0.22
N 1507 participantID 1507 participantID
30 School 30 School
Observations 3014 3014
Marginal R2 / Conditional R2 0.085 / 0.363 0.251 / 0.416
plot(colnames(dat)[18])

# The thin lines are the means of the schools, thick lines are the overall means.

muw

tab_model(fit_muw,fit_muw1)
  total_muw total_muw
Predictors Estimates CI p Estimates CI p
(Intercept) 4.18 2.73 – 5.63 <0.001 3.81 2.24 – 5.37 <0.001
GenderChild [Male] -0.77 -1.41 – -0.13 0.019 -0.78 -1.42 – -0.14 0.018
time [endline] 4.25 3.32 – 5.19 <0.001 3.95 3.00 – 4.90 <0.001
Attendance 0.06 0.04 – 0.08 <0.001 0.06 0.04 – 0.08 <0.001
GenderChild [Male] × time
[endline]
-0.19 -0.68 – 0.30 0.447 -0.15 -0.64 – 0.33 0.539
time [endline] ×
Attendance
0.01 0.00 – 0.03 0.038 0.01 -0.00 – 0.02 0.069
Group [1] 0.70 -0.63 – 2.02 0.303
time [endline] × Group
[1]
0.80 0.32 – 1.29 0.001
Random Effects
σ2 11.60 11.53
τ00 28.34 participantID:School 28.38 participantID:School
2.81 School 2.61 School
ICC 0.73 0.73
N 1507 participantID 1507 participantID
30 School 30 School
Observations 3014 3014
Marginal R2 / Conditional R2 0.163 / 0.773 0.171 / 0.775
plot(colnames(dat)[19])

# The thin lines are the means of the schools, thick lines are the overall means.

non

tab_model(fit_non,fit_non1)
  total_non total_non
Predictors Estimates CI p Estimates CI p
(Intercept) 1.77 0.71 – 2.83 0.001 1.35 0.29 – 2.41 0.013
GenderChild [Male] -0.00 -0.49 – 0.49 0.997 -0.01 -0.50 – 0.47 0.958
time [endline] 2.79 1.86 – 3.73 <0.001 2.30 1.36 – 3.24 <0.001
Attendance 0.02 0.01 – 0.04 0.002 0.02 0.01 – 0.03 0.001
GenderChild [Male] × time
[endline]
-0.46 -0.94 – 0.03 0.065 -0.40 -0.88 – 0.09 0.106
time [endline] ×
Attendance
0.01 0.00 – 0.03 0.021 0.01 -0.00 – 0.02 0.058
Group [1] 0.86 0.13 – 1.58 0.020
time [endline] × Group
[1]
1.30 0.82 – 1.79 <0.001
Random Effects
σ2 11.62 11.41
τ00 11.51 participantID:School 11.61 participantID:School
1.11 School 0.56 School
ICC 0.52 0.52
N 1507 participantID 1507 participantID
30 School 30 School
Observations 3014 3014
Marginal R2 / Conditional R2 0.128 / 0.582 0.154 / 0.590
plot(colnames(dat)[20])

# The thin lines are the means of the schools, thick lines are the overall means.

com

tab_model(fit_com,fit_com1)
  total_com total_com
Predictors Estimates CI p Estimates CI p
(Intercept) 0.20 -0.09 – 0.48 0.180 0.11 -0.19 – 0.42 0.471
GenderChild [Male] -0.03 -0.16 – 0.10 0.640 -0.03 -0.16 – 0.10 0.659
time [endline] 0.62 0.35 – 0.90 <0.001 0.62 0.34 – 0.90 <0.001
Attendance 0.01 0.00 – 0.01 <0.001 0.01 0.00 – 0.01 <0.001
GenderChild [Male] × time
[endline]
-0.12 -0.26 – 0.03 0.115 -0.12 -0.26 – 0.03 0.116
time [endline] ×
Attendance
0.01 0.00 – 0.01 0.004 0.01 0.00 – 0.01 0.004
Group [1] 0.18 -0.06 – 0.42 0.150
time [endline] × Group
[1]
0.00 -0.14 – 0.15 0.983
Random Effects
σ2 1.02 1.02
τ00 0.65 participantID:School 0.65 participantID:School
0.08 School 0.08 School
ICC 0.42 0.42
N 1507 participantID 1507 participantID
30 School 30 School
Observations 3014 3014
Marginal R2 / Conditional R2 0.131 / 0.496 0.136 / 0.497
plot(colnames(dat)[21])

# The thin lines are the means of the schools, thick lines are the overall means.

lis

tab_model(fit_lis,fit_lis1)
  total_lis total_lis
Predictors Estimates CI p Estimates CI p
(Intercept) 0.43 0.15 – 0.71 0.002 0.34 0.03 – 0.64 0.030
GenderChild [Male] -0.15 -0.27 – -0.03 0.016 -0.15 -0.27 – -0.03 0.017
time [endline] 0.36 0.09 – 0.62 0.008 0.34 0.07 – 0.61 0.013
Attendance 0.01 0.00 – 0.01 0.001 0.01 0.00 – 0.01 0.001
GenderChild [Male] × time
[endline]
0.03 -0.11 – 0.17 0.646 0.03 -0.10 – 0.17 0.623
time [endline] ×
Attendance
0.00 -0.00 – 0.01 0.080 0.00 -0.00 – 0.01 0.092
Group [1] 0.19 -0.07 – 0.46 0.152
time [endline] × Group
[1]
0.05 -0.09 – 0.19 0.477
Random Effects
σ2 0.92 0.92
τ00 0.55 participantID:School 0.55 participantID:School
0.12 School 0.11 School
ICC 0.42 0.42
N 1507 participantID 1507 participantID
30 School 30 School
Observations 3014 3014
Marginal R2 / Conditional R2 0.066 / 0.459 0.075 / 0.461
plot(colnames(dat)[22])

# The thin lines are the means of the schools, thick lines are the overall means.

wrt

tab_model(fit_wrt,fit_wrt1)
  total_wrt total_wrt
Predictors Estimates CI p Estimates CI p
(Intercept) 1.34 0.68 – 1.99 <0.001 1.14 0.43 – 1.85 0.002
GenderChild [Male] -0.49 -0.78 – -0.19 0.001 -0.48 -0.77 – -0.18 0.001
time [endline] 1.15 0.70 – 1.60 <0.001 1.29 0.83 – 1.74 <0.001
Attendance 0.02 0.02 – 0.03 <0.001 0.02 0.02 – 0.03 <0.001
GenderChild [Male] × time
[endline]
-0.17 -0.40 – 0.07 0.162 -0.18 -0.42 – 0.05 0.125
time [endline] ×
Attendance
0.01 0.01 – 0.02 <0.001 0.01 0.01 – 0.02 <0.001
Group [1] 0.47 -0.13 – 1.06 0.126
time [endline] × Group
[1]
-0.35 -0.58 – -0.11 0.004
Random Effects
σ2 2.70 2.68
τ00 5.65 participantID:School 5.66 participantID:School
0.53 School 0.53 School
ICC 0.70 0.70
N 1507 participantID 1507 participantID
30 School 30 School
Observations 3014 3014
Marginal R2 / Conditional R2 0.129 / 0.735 0.133 / 0.737
plot(colnames(dat)[23])

# The thin lines are the means of the schools, thick lines are the overall means.

read 1

tab_model(fit_read1,fit_read11)
  read_1 read_1
Predictors Estimates CI p Estimates CI p
(Intercept) 5.12 1.03 – 9.20 0.014 3.55 -0.83 – 7.93 0.112
GenderChild [Male] -1.40 -3.20 – 0.39 0.126 -1.43 -3.22 – 0.37 0.119
time [endline] 9.21 6.29 – 12.13 <0.001 8.28 5.31 – 11.25 <0.001
Attendance 0.11 0.06 – 0.16 <0.001 0.11 0.06 – 0.16 <0.001
GenderChild [Male] × time
[endline]
-2.94 -4.47 – -1.42 <0.001 -2.83 -4.36 – -1.31 <0.001
time [endline] ×
Attendance
0.10 0.06 – 0.14 <0.001 0.10 0.06 – 0.14 <0.001
Group [1] 3.00 -0.73 – 6.73 0.115
time [endline] × Group
[1]
2.45 0.93 – 3.98 0.002
Random Effects
σ2 114.05 113.38
τ00 196.80 participantID:School 197.13 participantID:School
24.64 School 20.96 School
ICC 0.66 0.66
N 1507 participantID 1507 participantID
30 School 30 School
Observations 3014 3014
Marginal R2 / Conditional R2 0.168 / 0.717 0.182 / 0.720
plot(colnames(dat)[24])

# The thin lines are the means of the schools, thick lines are the overall means.

read 2

tab_model(fit_read2,fit_read21)
  read_2 read_2
Predictors Estimates CI p Estimates CI p
(Intercept) 11.27 4.87 – 17.67 0.001 9.28 2.53 – 16.04 0.007
GenderChild [Male] -2.38 -5.30 – 0.54 0.111 -2.40 -5.33 – 0.52 0.107
time [endline] 28.41 23.64 – 33.17 <0.001 27.06 22.21 – 31.91 <0.001
Attendance 0.23 0.15 – 0.31 <0.001 0.23 0.15 – 0.31 <0.001
GenderChild [Male] × time
[endline]
-1.82 -4.31 – 0.66 0.151 -1.66 -4.15 – 0.82 0.190
time [endline] ×
Attendance
0.05 -0.01 – 0.11 0.132 0.04 -0.02 – 0.11 0.201
Group [1] 3.78 -1.46 – 9.03 0.157
time [endline] × Group
[1]
3.55 1.05 – 6.04 0.005
Random Effects
σ2 303.41 302.05
τ00 521.53 participantID:School 522.18 participantID:School
43.19 School 37.05 School
ICC 0.65 0.65
N 1507 participantID 1507 participantID
30 School 30 School
Observations 3014 3014
Marginal R2 / Conditional R2 0.235 / 0.732 0.243 / 0.735
plot(colnames(dat)[25])

# The thin lines are the means of the schools, thick lines are the overall means.

total literacy

tab_model(fit_tot.lit,fit_tot.lit1)
  tot.lit tot.lit
Predictors Estimates CI p Estimates CI p
(Intercept) 0.20 0.16 – 0.25 <0.001 0.18 0.13 – 0.23 <0.001
GenderChild [Male] -0.02 -0.04 – -0.00 0.032 -0.02 -0.04 – -0.00 0.027
time [endline] 0.11 0.08 – 0.15 <0.001 0.09 0.06 – 0.13 <0.001
Attendance 0.00 0.00 – 0.00 <0.001 0.00 0.00 – 0.00 <0.001
GenderChild [Male] × time
[endline]
-0.02 -0.03 – 0.00 0.063 -0.01 -0.03 – 0.00 0.111
time [endline] ×
Attendance
0.00 0.00 – 0.00 <0.001 0.00 0.00 – 0.00 <0.001
Group [1] 0.04 0.00 – 0.08 0.029
time [endline] × Group
[1]
0.05 0.04 – 0.07 <0.001
Random Effects
σ2 0.01 0.01
τ00 0.03 participantID:School 0.03 participantID:School
0.00 School 0.00 School
ICC 0.70 0.69
N 1507 participantID 1507 participantID
30 School 30 School
Observations 3013 3013
Marginal R2 / Conditional R2 0.194 / 0.755 0.223 / 0.763
plot(colnames(dat)[26])

# The thin lines are the means of the schools, thick lines are the overall means.

Wellbeing

dw<-t(descriptives_WB)
colnames(dw)<-c("Baseline A","Endline A","Baseline B","Endline B")
data.table(dw[-c(1,2),],keep.rownames=TRUE)
##                      rn Baseline A Endline A Baseline B Endline B
## 1: mean total wellbeing      28.22     60.97      23.63     52.62
## 2:   sd total wellbeing      31.68     28.20      30.39     28.93
fit_WB <- lmer(WB_total ~ GenderChild*time+Attendance*time+ (1|participantID:School) + (1 | School), data =longdata )
fit_WB1 <- lmer(WB_total ~ GenderChild*time+Attendance+Attendance*time+time*Group+ (1|participantID:School) + (1 | School), data =longdata )



tab_model(fit_WB,fit_WB1)
  WB_total WB_total
Predictors Estimates CI p Estimates CI p
(Intercept) 33.56 32.11 – 35.01 <0.001 32.40 31.02 – 33.77 <0.001
GenderChild [Male] -0.26 -0.92 – 0.39 0.429 -0.25 -0.91 – 0.40 0.445
time [endline] -0.98 -2.72 – 0.77 0.272 -1.26 -3.03 – 0.52 0.166
Attendance 0.01 -0.01 – 0.02 0.482 0.00 -0.01 – 0.02 0.662
GenderChild [Male] × time
[endline]
0.31 -0.60 – 1.22 0.504 0.34 -0.57 – 1.26 0.459
time [endline] ×
Attendance
0.00 -0.02 – 0.03 0.726 0.00 -0.02 – 0.03 0.823
Group [1] 2.66 1.77 – 3.55 <0.001
time [endline] × Group
[1]
0.73 -0.18 – 1.65 0.116
Random Effects
σ2 40.63 40.59
τ00 0.64 participantID:School 0.66 participantID:School
3.04 School 0.72 School
ICC 0.08 0.03
N 1507 participantID 1507 participantID
30 School 30 School
Observations 3014 3014
Marginal R2 / Conditional R2 0.002 / 0.085 0.055 / 0.086
plot(colnames(dat)[26])

# wellbeing including group

fit_Wbg <- lmer(WB_total ~ GenderChild*time*Group+Attendance+Attendance*time+time*Group+ (1|participantID:School) + (1 | School), data =longdata )

wellbeing_g<-tab_model(fit_Wbg)

Q-values of the interaction effect time x group

#install.packages("devtools")
#library("devtools")
#install_github("jdstorey/qvalue")
#browseVignettes(package = "qvalue")



pvalues<-na.omit(pvalue)


qvalue_truncp <- function(p, fdr.level = NULL, pfdr = FALSE, lfdr.out = TRUE, pi0 = NULL,...){
  # Argument checks
  p_in <- qvals_out <- lfdr_out <- p
  rm_na <- !is.na(p)
  p <- p[rm_na]
  if (min(p) < 0 || max(p) > 1) {
    stop("p-values not in valid range [0, 1].")
  } else if (!is.null(fdr.level) && (fdr.level <= 0 || fdr.level > 1)) {
    stop("'fdr.level' must be in (0, 1].")
  }
  p <- p / max(p)
  # Calculate pi0 estimate
  if (is.null(pi0)) {
    pi0s <- pi0est(p, ...)
  } else {
    if (pi0 > 0 && pi0 <= 1)  {
      pi0s = list()
      pi0s$pi0 = pi0
    } else {
      stop("pi0 is not (0,1]")
    }
  }
 # Calculate q-value estimates
  m <- length(p)
  i <- m:1L
  o <- order(p, decreasing = TRUE)
  ro <- order(o)
  if (pfdr) {
    qvals <- pi0s$pi0 * pmin(1, cummin(p[o] * m / (i * (1 - (1 - p[o]) ^ m))))[ro]
  } else {
    qvals <- pi0s$pi0 * pmin(1, cummin(p[o] * m /i ))[ro]
  }
  qvals_out[rm_na] <- qvals
  # Calculate local FDR estimates
  if (lfdr.out) {
    lfdr <- lfdr(p = p, pi0 = pi0s$pi0, ...)
    lfdr_out[rm_na] <- lfdr
  } else {
    lfdr_out <- NULL
  }
  
  # Return results
  if (!is.null(fdr.level)) {
    retval <- list(call = match.call(), pi0 = pi0s$pi0, qvalues = qvals_out,
                   pvalues = p_in, lfdr = lfdr_out, fdr.level = fdr.level,
                   significant = (qvals <= fdr.level),
                   pi0.lambda = pi0s$pi0.lambda, lambda = pi0s$lambda,
                   pi0.smooth = pi0s$pi0.smooth)
  } else {
    retval <- list(call = match.call(), pi0 = pi0s$pi0, qvalues = qvals_out,
                   pvalues = p_in, lfdr = lfdr_out, pi0.lambda = pi0s$pi0.lambda,
                   lambda = pi0s$lambda, pi0.smooth = pi0s$pi0.smooth)
  }
  class(retval) <- "qvalue"
  return(retval)
}

qobj <- qvalue_truncp(p = pvalues)


test<-c("nid","qds","mis","add","sub","prb","nu","lid","pho","muw","non",
"com","lis","wrt","read1","read2","lit")

qvalues <- qobj$qvalues

q<-data.frame(test,pvalues,qvalues)

# unique effect interaction time * group

colnames(q)<-c("(Sub)Task","P-value","Q-value")
data.table(q,keep.rownames=FALSE)
##     (Sub)Task      P-value      Q-value
##  1:       nid 2.636084e-02 2.409921e-02
##  2:       qds 1.226402e-03 1.851864e-03
##  3:       mis 5.207866e-01 3.868359e-01
##  4:       add 2.279202e-01 1.934825e-01
##  5:       sub 1.211668e-07 4.683122e-07
##  6:       prb 2.216959e-02 2.195651e-02
##  7:        nu 6.786598e-05 1.344274e-04
##  8:       lid 2.306199e-05 5.481682e-05
##  9:       pho 1.874023e-28 2.227213e-27
## 10:       muw 1.246557e-03 1.851864e-03
## 11:       non 1.576190e-07 4.683122e-07
## 12:       com 9.829968e-01 6.872111e-01
## 13:       lis 4.774235e-01 3.782680e-01
## 14:       wrt 3.591746e-03 4.268670e-03
## 15:     read1 1.676024e-03 2.213220e-03
## 16:     read2 5.368335e-03 5.800079e-03
## 17:       lit 3.907119e-10 2.321740e-09

Effect size Cohen’s d raw data

Cohen’s d was calculated without a correction for variance by school or covariates.

library(rstatix)
## 
## Attaching package: 'rstatix'
## The following object is masked from 'package:stats':
## 
##     filter
cd=list()
for(i in 1:17){
df.effs<-data.frame(diff=endline[,i+6]-baseline[,i+6],group=baseline$Group)
cd[[i]]<-df.effs %>% cohens_d(diff ~ group, var.equal = TRUE)}


test<-c("nid","qds","mis","add","sub","prb","nu","lid","pho","muw","non",
"com","lis","wrt","read1","read2","lit")

df.cohensd<-cd[[1]]
for(i in 2:17)
df.cohensd<-rbind(df.cohensd,cd[[i]])

df<-data.frame(test,round(df.cohensd[,c(4)],2))

colnames(df)<-c("(Sub)Task","Cohen's d")
data.table(df,keep.rownames=FALSE)
##     (Sub)Task Cohen's d
##  1:       nid      0.12
##  2:       qds      0.17
##  3:       mis      0.04
##  4:       add      0.08
##  5:       sub      0.28
##  6:       prb      0.12
##  7:        nu      0.22
##  8:       lid      0.22
##  9:       pho      0.60
## 10:       muw      0.18
## 11:       non      0.28
## 12:       com      0.02
## 13:       lis      0.04
## 14:       wrt     -0.13
## 15:     read1      0.19
## 16:     read2      0.15
## 17:       lit      0.35

Completer analyses on >80% attendance only

nid

tab_model(fit_nid,fit_nid1)
  total_nid total_nid
Predictors Estimates CI p Estimates CI p
(Intercept) 12.73 12.27 – 13.19 <0.001 12.51 11.94 – 13.09 <0.001
GenderChild [Male] -0.40 -0.95 – 0.14 0.148 -0.39 -0.94 – 0.16 0.163
time [endline] 1.75 1.37 – 2.14 <0.001 1.74 1.28 – 2.19 <0.001
GenderChild [Male] × time
[endline]
-0.16 -0.70 – 0.37 0.552 -0.16 -0.70 – 0.38 0.558
Group [1] 0.44 -0.29 – 1.16 0.237
time [endline] × Group
[1]
0.04 -0.51 – 0.58 0.890
Random Effects
σ2 3.07 3.08
τ00 3.16 participantID:School 3.15 participantID:School
0.25 School 0.22 School
ICC 0.53 0.52
N 328 participantID 328 participantID
20 School 20 School
Observations 656 656
Marginal R2 / Conditional R2 0.105 / 0.575 0.112 / 0.576
plot(colnames(dat)[10])

# The thin lines are the means of the schools, thick lines are the overall means.

qds

tab_model(fit_qds,fit_qds1)
  total_qds total_qds
Predictors Estimates CI p Estimates CI p
(Intercept) 8.67 8.38 – 8.96 <0.001 8.59 8.23 – 8.95 <0.001
GenderChild [Male] -0.47 -0.82 – -0.12 0.009 -0.47 -0.82 – -0.12 0.009
time [endline] 0.98 0.69 – 1.26 <0.001 0.89 0.55 – 1.23 <0.001
GenderChild [Male] × time
[endline]
0.08 -0.32 – 0.49 0.681 0.09 -0.31 – 0.50 0.647
Group [1] 0.14 -0.31 – 0.60 0.535
time [endline] × Group
[1]
0.19 -0.23 – 0.60 0.375
Random Effects
σ2 1.75 1.75
τ00 0.82 participantID:School 0.82 participantID:School
0.09 School 0.08 School
ICC 0.34 0.34
N 328 participantID 328 participantID
20 School 20 School
Observations 656 656
Marginal R2 / Conditional R2 0.103 / 0.409 0.108 / 0.411
plot(colnames(dat)[11])

# The thin lines are the means of the schools, thick lines are the overall means.

mis

tab_model(fit_mis,fit_mis1)
  total_mis total_mis
Predictors Estimates CI p Estimates CI p
(Intercept) 6.03 5.50 – 6.56 <0.001 5.40 4.82 – 5.98 <0.001
GenderChild [Male] -0.24 -0.79 – 0.31 0.391 -0.21 -0.76 – 0.34 0.458
time [endline] 2.16 1.76 – 2.56 <0.001 2.23 1.75 – 2.70 <0.001
GenderChild [Male] × time
[endline]
-0.45 -1.01 – 0.12 0.119 -0.46 -1.02 – 0.11 0.113
Group [1] 1.21 0.48 – 1.95 0.001
time [endline] × Group
[1]
-0.15 -0.72 – 0.43 0.618
Random Effects
σ2 3.39 3.40
τ00 2.95 participantID:School 2.94 participantID:School
0.52 School 0.23 School
ICC 0.51 0.48
N 328 participantID 328 participantID
20 School 20 School
Observations 656 656
Marginal R2 / Conditional R2 0.127 / 0.569 0.168 / 0.570
plot(colnames(dat)[12])

# The thin lines are the means of the schools, thick lines are the overall means.

add

tab_model(fit_add,fit_add1)
  total_add total_add
Predictors Estimates CI p Estimates CI p
(Intercept) 7.20 6.32 – 8.08 <0.001 6.44 5.45 – 7.43 <0.001
GenderChild [Male] -0.49 -1.39 – 0.41 0.288 -0.47 -1.37 – 0.43 0.306
time [endline] 3.10 2.36 – 3.84 <0.001 3.01 2.13 – 3.90 <0.001
GenderChild [Male] × time
[endline]
-0.14 -1.19 – 0.90 0.791 -0.13 -1.18 – 0.92 0.807
Group [1] 1.50 0.23 – 2.77 0.021
time [endline] × Group
[1]
0.19 -0.87 – 1.26 0.718
Random Effects
σ2 11.62 11.65
τ00 5.20 participantID:School 5.23 participantID:School
1.55 School 0.82 School
ICC 0.37 0.34
N 328 participantID 328 participantID
20 School 20 School
Observations 656 656
Marginal R2 / Conditional R2 0.114 / 0.440 0.146 / 0.438
plot(colnames(dat)[13])

# The thin lines are the means of the schools, thick lines are the overall means.

sub

tab_model(fit_sub,fit_sub1)
  total_sub total_sub
Predictors Estimates CI p Estimates CI p
(Intercept) 4.85 4.05 – 5.65 <0.001 4.33 3.52 – 5.14 <0.001
GenderChild [Male] -0.06 -0.86 – 0.74 0.877 -0.10 -0.89 – 0.69 0.813
time [endline] 2.07 1.37 – 2.76 <0.001 1.15 0.34 – 1.95 0.005
GenderChild [Male] × time
[endline]
0.09 -0.88 – 1.07 0.849 0.20 -0.75 – 1.16 0.677
Group [1] 0.78 -0.24 – 1.80 0.132
time [endline] × Group
[1]
2.04 1.08 – 3.01 <0.001
Random Effects
σ2 10.19 9.71
τ00 3.07 participantID:School 3.35 participantID:School
1.39 School 0.40 School
ICC 0.30 0.28
N 328 participantID 328 participantID
20 School 20 School
Observations 656 656
Marginal R2 / Conditional R2 0.071 / 0.354 0.139 / 0.379
plot(colnames(dat)[14])

# The thin lines are the means of the schools, thick lines are the overall means.

prb

tab_model(fit_prb,fit_prb1)
  total_prb total_prb
Predictors Estimates CI p Estimates CI p
(Intercept) 3.80 3.46 – 4.13 <0.001 3.61 3.21 – 4.01 <0.001
GenderChild [Male] 0.23 -0.12 – 0.57 0.201 0.23 -0.11 – 0.58 0.189
time [endline] 0.94 0.65 – 1.24 <0.001 0.81 0.46 – 1.17 <0.001
GenderChild [Male] × time
[endline]
-0.28 -0.70 – 0.14 0.189 -0.27 -0.69 – 0.15 0.215
Group [1] 0.35 -0.17 – 0.86 0.189
time [endline] × Group
[1]
0.29 -0.13 – 0.72 0.179
Random Effects
σ2 1.88 1.88
τ00 0.63 participantID:School 0.63 participantID:School
0.20 School 0.15 School
ICC 0.31 0.29
N 328 participantID 328 participantID
20 School 20 School
Observations 656 656
Marginal R2 / Conditional R2 0.058 / 0.347 0.080 / 0.351
plot(colnames(dat)[15])

# The thin lines are the means of the schools, thick lines are the overall means.

nu

tab_model(fit_nu,fit_nu1)
  tot.num tot.num
Predictors Estimates CI p Estimates CI p
(Intercept) 0.57 0.54 – 0.60 <0.001 0.54 0.51 – 0.58 <0.001
GenderChild [Male] -0.01 -0.04 – 0.02 0.367 -0.01 -0.04 – 0.02 0.405
time [endline] 0.13 0.11 – 0.15 <0.001 0.12 0.10 – 0.14 <0.001
GenderChild [Male] × time
[endline]
-0.02 -0.04 – 0.01 0.246 -0.01 -0.04 – 0.01 0.285
Group [1] 0.05 0.01 – 0.10 0.019
time [endline] × Group
[1]
0.02 -0.00 – 0.05 0.084
Random Effects
σ2 0.01 0.01
τ00 0.01 participantID:School 0.01 participantID:School
0.00 School 0.00 School
ICC 0.63 0.61
N 328 participantID 328 participantID
20 School 20 School
Observations 656 656
Marginal R2 / Conditional R2 0.160 / 0.688 0.202 / 0.690
plot(colnames(dat)[16])

# The thin lines are the means of the schools, thick lines are the overall means.

lid

tab_model(fit_lid,fit_lid1)
  total_lid total_lid
Predictors Estimates CI p Estimates CI p
(Intercept) 21.91 20.68 – 23.15 <0.001 21.32 19.69 – 22.94 <0.001
GenderChild [Male] -1.56 -2.71 – -0.40 0.008 -1.53 -2.69 – -0.38 0.009
time [endline] 2.72 1.71 – 3.73 <0.001 2.79 1.59 – 4.00 <0.001
GenderChild [Male] × time
[endline]
0.62 -0.80 – 2.04 0.391 0.61 -0.81 – 2.04 0.399
Group [1] 1.19 -0.94 – 3.33 0.273
time [endline] × Group
[1]
-0.16 -1.60 – 1.29 0.833
Random Effects
σ2 21.48 21.54
τ00 5.98 participantID:School 5.96 participantID:School
3.74 School 3.61 School
ICC 0.31 0.31
N 328 participantID 328 participantID
20 School 20 School
Observations 656 656
Marginal R2 / Conditional R2 0.080 / 0.367 0.089 / 0.370
plot(colnames(dat)[17])

# The thin lines are the means of the schools, thick lines are the overall means.

pho

tab_model(fit_pho,fit_pho1)
  total_pho total_pho
Predictors Estimates CI p Estimates CI p
(Intercept) 3.47 2.37 – 4.56 <0.001 2.25 1.11 – 3.39 <0.001
GenderChild [Male] -0.24 -0.86 – 0.37 0.435 -0.28 -0.88 – 0.32 0.356
time [endline] 2.59 2.02 – 3.17 <0.001 1.54 0.89 – 2.19 <0.001
GenderChild [Male] × time
[endline]
-0.41 -1.21 – 0.40 0.323 -0.28 -1.05 – 0.49 0.471
Group [1] 2.06 0.54 – 3.58 0.008
time [endline] × Group
[1]
2.33 1.56 – 3.11 <0.001
Random Effects
σ2 6.89 6.24
τ00 0.85 participantID:School 1.17 participantID:School
4.93 School 2.33 School
ICC 0.46 0.36
N 328 participantID 328 participantID
20 School 20 School
Observations 656 656
Marginal R2 / Conditional R2 0.105 / 0.513 0.311 / 0.559
plot(colnames(dat)[18])

# The thin lines are the means of the schools, thick lines are the overall means.

muw

tab_model(fit_muw,fit_muw1)
  total_muw total_muw
Predictors Estimates CI p Estimates CI p
(Intercept) 11.62 10.16 – 13.09 <0.001 10.73 8.80 – 12.65 <0.001
GenderChild [Male] -2.23 -3.50 – -0.96 0.001 -2.20 -3.47 – -0.93 0.001
time [endline] 5.33 4.64 – 6.03 <0.001 5.37 4.55 – 6.20 <0.001
GenderChild [Male] × time
[endline]
-0.35 -1.33 – 0.62 0.480 -0.36 -1.33 – 0.62 0.475
Group [1] 1.77 -0.79 – 4.33 0.175
time [endline] × Group
[1]
-0.09 -1.08 – 0.90 0.859
Random Effects
σ2 10.11 10.15
τ00 22.82 participantID:School 22.80 participantID:School
5.85 School 5.51 School
ICC 0.74 0.74
N 328 participantID 328 participantID
20 School 20 School
Observations 656 656
Marginal R2 / Conditional R2 0.173 / 0.784 0.188 / 0.786
plot(colnames(dat)[19])

# The thin lines are the means of the schools, thick lines are the overall means.

non

tab_model(fit_non,fit_non1)
  total_non total_non
Predictors Estimates CI p Estimates CI p
(Intercept) 4.46 3.26 – 5.66 <0.001 3.68 2.24 – 5.11 <0.001
GenderChild [Male] -0.51 -1.56 – 0.53 0.335 -0.51 -1.55 – 0.53 0.334
time [endline] 4.93 4.18 – 5.68 <0.001 4.12 3.24 – 4.99 <0.001
GenderChild [Male] × time
[endline]
-1.43 -2.48 – -0.37 0.008 -1.33 -2.37 – -0.29 0.012
Group [1] 1.37 -0.52 – 3.27 0.155
time [endline] × Group
[1]
1.81 0.76 – 2.86 0.001
Random Effects
σ2 11.84 11.47
τ00 10.59 participantID:School 10.79 participantID:School
3.95 School 2.74 School
ICC 0.55 0.54
N 328 participantID 328 participantID
20 School 20 School
Observations 656 656
Marginal R2 / Conditional R2 0.158 / 0.622 0.205 / 0.635
plot(colnames(dat)[20])

# The thin lines are the means of the schools, thick lines are the overall means.

com

tab_model(fit_com,fit_com1)
  total_com total_com
Predictors Estimates CI p Estimates CI p
(Intercept) 1.01 0.70 – 1.33 <0.001 0.91 0.48 – 1.33 <0.001
GenderChild [Male] -0.10 -0.39 – 0.20 0.513 -0.09 -0.39 – 0.20 0.532
time [endline] 1.32 1.10 – 1.54 <0.001 1.34 1.08 – 1.61 <0.001
GenderChild [Male] × time
[endline]
-0.10 -0.41 – 0.21 0.511 -0.11 -0.42 – 0.21 0.502
Group [1] 0.21 -0.35 – 0.77 0.452
time [endline] × Group
[1]
-0.05 -0.36 – 0.27 0.770
Random Effects
σ2 1.03 1.03
τ00 0.78 participantID:School 0.78 participantID:School
0.24 School 0.25 School
ICC 0.50 0.50
N 328 participantID 328 participantID
20 School 20 School
Observations 656 656
Marginal R2 / Conditional R2 0.167 / 0.582 0.169 / 0.584
plot(colnames(dat)[21])

# The thin lines are the means of the schools, thick lines are the overall means.

lis

tab_model(fit_lis,fit_lis1)
  total_lis total_lis
Predictors Estimates CI p Estimates CI p
(Intercept) 1.13 0.82 – 1.43 <0.001 1.06 0.66 – 1.47 <0.001
GenderChild [Male] -0.20 -0.50 – 0.09 0.182 -0.20 -0.50 – 0.09 0.180
time [endline] 0.69 0.45 – 0.92 <0.001 0.61 0.33 – 0.88 <0.001
GenderChild [Male] × time
[endline]
0.01 -0.31 – 0.34 0.934 0.02 -0.30 – 0.35 0.890
Group [1] 0.12 -0.41 – 0.65 0.660
time [endline] × Group
[1]
0.17 -0.15 – 0.50 0.299
Random Effects
σ2 1.11 1.11
τ00 0.69 participantID:School 0.70 participantID:School
0.21 School 0.21 School
ICC 0.45 0.45
N 328 participantID 328 participantID
20 School 20 School
Observations 656 656
Marginal R2 / Conditional R2 0.060 / 0.482 0.066 / 0.486
plot(colnames(dat)[22])

# The thin lines are the means of the schools, thick lines are the overall means.

wrt

tab_model(fit_wrt,fit_wrt1)
  total_wrt total_wrt
Predictors Estimates CI p Estimates CI p
(Intercept) 4.40 3.66 – 5.13 <0.001 3.91 2.93 – 4.88 <0.001
GenderChild [Male] -0.92 -1.54 – -0.30 0.004 -0.90 -1.52 – -0.28 0.005
time [endline] 2.47 2.11 – 2.83 <0.001 2.62 2.20 – 3.05 <0.001
GenderChild [Male] × time
[endline]
-0.36 -0.87 – 0.15 0.162 -0.38 -0.89 – 0.13 0.142
Group [1] 0.99 -0.31 – 2.28 0.136
time [endline] × Group
[1]
-0.34 -0.86 – 0.17 0.189
Random Effects
σ2 2.72 2.72
τ00 5.16 participantID:School 5.16 participantID:School
1.52 School 1.46 School
ICC 0.71 0.71
N 328 participantID 328 participantID
20 School 20 School
Observations 656 656
Marginal R2 / Conditional R2 0.147 / 0.753 0.162 / 0.756
plot(colnames(dat)[23])

# The thin lines are the means of the schools, thick lines are the overall means.

read 1

tab_model(fit_read1,fit_read11)
  read_1 read_1
Predictors Estimates CI p Estimates CI p
(Intercept) 20.62 15.38 – 25.86 <0.001 17.44 10.47 – 24.41 <0.001
GenderChild [Male] -4.12 -8.14 – -0.10 0.044 -4.07 -8.09 – -0.05 0.047
time [endline] 19.96 17.65 – 22.27 <0.001 19.34 16.59 – 22.09 <0.001
GenderChild [Male] × time
[endline]
-5.13 -8.38 – -1.88 0.002 -5.06 -8.31 – -1.80 0.002
Group [1] 6.09 -3.23 – 15.40 0.200
time [endline] × Group
[1]
1.38 -1.92 – 4.67 0.413
Random Effects
σ2 112.28 112.39
τ00 217.55 participantID:School 217.52 participantID:School
87.48 School 80.93 School
ICC 0.73 0.73
N 328 participantID 328 participantID
20 School 20 School
Observations 656 656
Marginal R2 / Conditional R2 0.175 / 0.778 0.197 / 0.780
plot(colnames(dat)[24])

# The thin lines are the means of the schools, thick lines are the overall means.

read 2

tab_model(fit_read2,fit_read21)
  read_2 read_2
Predictors Estimates CI p Estimates CI p
(Intercept) 41.32 34.30 – 48.33 <0.001 37.36 28.19 – 46.53 <0.001
GenderChild [Male] -8.35 -14.54 – -2.16 0.008 -8.23 -14.42 – -2.04 0.009
time [endline] 33.19 29.54 – 36.84 <0.001 32.52 28.18 – 36.85 <0.001
GenderChild [Male] × time
[endline]
-3.69 -8.81 – 1.44 0.159 -3.61 -8.75 – 1.53 0.169
Group [1] 7.70 -4.45 – 19.85 0.214
time [endline] × Group
[1]
1.50 -3.70 – 6.70 0.572
Random Effects
σ2 279.42 280.00
τ00 506.72 participantID:School 506.50 participantID:School
130.58 School 121.03 School
ICC 0.70 0.69
N 328 participantID 328 participantID
20 School 20 School
Observations 656 656
Marginal R2 / Conditional R2 0.229 / 0.765 0.243 / 0.766
plot(colnames(dat)[25])

# The thin lines are the means of the schools, thick lines are the overall means.

total literacy

tab_model(fit_tot.lit,fit_tot.lit1)
  tot.lit tot.lit
Predictors Estimates CI p Estimates CI p
(Intercept) 0.39 0.34 – 0.44 <0.001 0.35 0.28 – 0.41 <0.001
GenderChild [Male] -0.05 -0.09 – -0.01 0.011 -0.05 -0.09 – -0.01 0.012
time [endline] 0.22 0.20 – 0.25 <0.001 0.20 0.18 – 0.23 <0.001
GenderChild [Male] × time
[endline]
-0.03 -0.06 – 0.00 0.076 -0.03 -0.06 – 0.01 0.100
Group [1] 0.08 -0.01 – 0.17 0.072
time [endline] × Group
[1]
0.04 0.01 – 0.07 0.009
Random Effects
σ2 0.01 0.01
τ00 0.02 participantID:School 0.02 participantID:School
0.01 School 0.01 School
ICC 0.75 0.74
N 328 participantID 328 participantID
20 School 20 School
Observations 656 656
Marginal R2 / Conditional R2 0.218 / 0.808 0.266 / 0.813
plot(colnames(dat)[26])

# The thin lines are the means of the schools, thick lines are the overall means.

Mediation analyses group->attendance->score (for total literacy score only in this example)

The first model shows that there is a significant relationship between group and attendance. Children in group A (=Group 1) have higher attendance scores (3.15) than children in group B (=Group 0). The second model shows that there is a significant relationship between total literacy score and attendance. Children with higher attendance have higher scores on literacy score (averaged over baseline and endline) and they improve more from baseline to endline with higher attendance scores. In the third model shows that children in group A have higher total literacy scores (averaged over baseline and endline) and children in group A improve more than children in group B. In the fourth model it is shown that higher attendance and being in group A results in significant improvement in literacy scores at endline. The final model shows a significant three way interaction between time group and attendance. Higher attendance in group A results in more improvement from baseline to endline than higher attendance in group B. Note that this final model does not have significant interaction effects anymore for time x attendance and time x group. So this would lead to the conclusion that attendance is both a mediator and a moderator.

  Attendance tot.lit tot.lit tot.lit tot.lit
Predictors Estimates CI p Estimates CI p Estimates CI p Estimates CI p Estimates CI p
(Intercept) 67.83 66.85 – 68.82 <0.001 0.19 0.15 – 0.24 <0.001 0.27 0.24 – 0.30 <0.001 0.17 0.12 – 0.21 <0.001 0.19 0.13 – 0.24 <0.001
Group [1] 3.15 1.76 – 4.54 <0.001 0.05 0.01 – 0.09 0.026 0.04 0.01 – 0.08 0.025 -0.00 -0.09 – 0.09 0.991
time [endline] 0.11 0.08 – 0.14 <0.001 0.15 0.14 – 0.16 <0.001 0.09 0.06 – 0.12 <0.001 0.10 0.07 – 0.14 <0.001
Attendance 0.00 0.00 – 0.00 <0.001 0.00 0.00 – 0.00 <0.001 0.00 0.00 – 0.00 0.001
time [endline] ×
Attendance
0.00 0.00 – 0.00 <0.001 0.00 0.00 – 0.00 <0.001 0.00 0.00 – 0.00 0.006
time [endline] × Group
[1]
0.05 0.04 – 0.07 <0.001 0.05 0.04 – 0.07 <0.001 0.01 -0.05 – 0.07 0.699
Attendance × Group [1] 0.00 -0.00 – 0.00 0.253
(time [endline] ×
Attendance) × Group [1]
0.00 -0.00 – 0.00 0.178
Random Effects
σ2   0.01 0.01 0.01 0.01
τ00   0.03 participantID:School 0.03 participantID:School 0.03 participantID:School 0.03 participantID:School
  0.00 School 0.00 School 0.00 School 0.00 School
ICC   0.70 0.70 0.70 0.69
N   1507 participantID 1507 participantID 1507 participantID 1507 participantID
  30 School 30 School 30 School 30 School
Observations 3014 3013 3013 3013 3013
R2 / R2 adjusted 0.006 / 0.006 0.189 / 0.755 0.188 / 0.760 0.219 / 0.762 0.220 / 0.762

Effect of gender

Math

There is no significant interaction effect for gender x time x group on Math scales

numericy_g
  total_nid total_qds total_mis total_add total_sub total_prb tot.num
Predictors Estimates CI p Estimates CI p Estimates CI p Estimates CI p Estimates CI p Estimates CI p Estimates CI p
(Intercept) 11.15 10.60 – 11.69 <0.001 7.89 7.51 – 8.28 <0.001 4.01 3.40 – 4.62 <0.001 4.29 3.42 – 5.15 <0.001 2.96 2.21 – 3.71 <0.001 2.97 2.56 – 3.38 <0.001 0.45 0.42 – 0.48 <0.001
GenderChild [Male] 0.16 -0.19 – 0.51 0.368 -0.11 -0.36 – 0.14 0.403 0.29 -0.08 – 0.67 0.128 0.22 -0.36 – 0.80 0.458 0.28 -0.22 – 0.78 0.266 0.14 -0.10 – 0.38 0.244 0.01 -0.01 – 0.03 0.235
time [endline] 1.69 1.18 – 2.21 <0.001 0.63 0.22 – 1.04 0.003 1.72 1.16 – 2.27 <0.001 1.71 0.75 – 2.67 <0.001 0.79 -0.04 – 1.62 0.062 1.30 0.89 – 1.70 <0.001 0.11 0.08 – 0.14 <0.001
Group [1] -0.06 -0.50 – 0.37 0.776 -0.09 -0.39 – 0.22 0.573 0.55 0.05 – 1.06 0.032 1.08 0.43 – 1.74 0.001 0.69 0.12 – 1.25 0.018 0.02 -0.34 – 0.38 0.914 0.02 -0.01 – 0.05 0.158
Attendance 0.01 0.01 – 0.02 <0.001 0.01 0.00 – 0.01 0.010 0.02 0.01 – 0.02 <0.001 0.02 0.01 – 0.03 <0.001 0.01 0.00 – 0.02 0.008 0.01 0.00 – 0.01 0.014 0.00 0.00 – 0.00 <0.001
GenderChild [Male] × time
[endline]
-0.08 -0.44 – 0.28 0.675 -0.06 -0.35 – 0.23 0.681 -0.32 -0.71 – 0.07 0.106 -0.45 -1.12 – 0.22 0.187 0.15 -0.43 – 0.73 0.607 -0.20 -0.49 – 0.08 0.161 -0.01 -0.03 – 0.00 0.110
GenderChild [Male] ×
Group [1]
0.22 -0.27 – 0.71 0.385 0.19 -0.16 – 0.54 0.285 -0.08 -0.61 – 0.45 0.768 0.01 -0.81 – 0.82 0.990 -0.09 -0.79 – 0.61 0.801 0.08 -0.26 – 0.42 0.627 0.01 -0.02 – 0.04 0.668
time [endline] × Group
[1]
0.40 0.04 – 0.77 0.030 0.39 0.10 – 0.68 0.009 0.09 -0.30 – 0.48 0.660 0.36 -0.31 – 1.04 0.293 1.08 0.49 – 1.67 <0.001 0.27 -0.02 – 0.56 0.069 0.03 0.01 – 0.05 0.002
time [endline] ×
Attendance
-0.00 -0.01 – 0.01 0.734 0.00 -0.00 – 0.01 0.253 0.00 -0.00 – 0.01 0.394 0.02 0.00 – 0.03 0.012 0.01 -0.00 – 0.02 0.101 -0.00 -0.01 – 0.00 0.278 0.00 -0.00 – 0.00 0.308
(GenderChild [Male] ×
time [endline]) × Group
[1]
-0.22 -0.73 – 0.29 0.393 -0.10 -0.51 – 0.31 0.637 0.00 -0.54 – 0.55 0.991 -0.14 -1.09 – 0.81 0.770 0.06 -0.76 – 0.88 0.880 -0.06 -0.47 – 0.34 0.758 -0.01 -0.03 – 0.02 0.629
Random Effects
σ2 3.19 2.02 3.65 10.94 8.22 1.98 0.01
τ00 2.70 participantID:School 0.99 participantID:School 3.19 participantID:School 5.33 participantID:School 3.81 participantID:School 0.81 participantID:School 0.01 participantID:School
0.12 School 0.06 School 0.21 School 0.16 School 0.13 School 0.14 School 0.00 School
ICC 0.47 0.34 0.48 0.33 0.32 0.33 0.61
N 1507 participantID 1507 participantID 1507 participantID 1507 participantID 1507 participantID 1507 participantID 1507 participantID
30 School 30 School 30 School 30 School 30 School 30 School 30 School
Observations 3014 3014 3014 3014 3014 3014 3014
Marginal R2 / Conditional R2 0.123 / 0.535 0.085 / 0.397 0.129 / 0.549 0.138 / 0.426 0.119 / 0.404 0.102 / 0.394 0.194 / 0.683

Literacy

There is a one significant effect for the interaction gender x time x group. Boys in group B improved more (4.23) on read 1 than Girls in group B.

literacy_g
  total_lid total_pho total_muw total_non total_com total_lis total_wrt read_1 read_2 tot.lit
Predictors Estimates CI p Estimates CI p Estimates CI p Estimates CI p Estimates CI p Estimates CI p Estimates CI p Estimates CI p Estimates CI p Estimates CI p
(Intercept) 18.39 16.81 – 19.97 <0.001 2.27 1.40 – 3.14 <0.001 3.84 2.24 – 5.44 <0.001 1.38 0.29 – 2.47 0.013 0.14 -0.17 – 0.45 0.369 0.35 0.04 – 0.66 0.027 1.07 0.34 – 1.80 0.004 3.86 -0.61 – 8.33 0.090 9.87 2.95 – 16.79 0.005 0.18 0.13 – 0.23 <0.001
GenderChild [Male] -0.37 -1.25 – 0.51 0.413 -0.31 -0.73 – 0.11 0.145 -0.84 -1.75 – 0.07 0.072 -0.08 -0.77 – 0.61 0.813 -0.09 -0.27 – 0.10 0.360 -0.17 -0.35 – 0.00 0.051 -0.34 -0.76 – 0.07 0.106 -2.00 -4.54 – 0.54 0.123 -3.51 -7.65 – 0.63 0.096 -0.02 -0.05 – 0.00 0.082
time [endline] 2.58 1.12 – 4.03 0.001 -1.02 -1.82 – -0.22 0.013 3.82 2.84 – 4.81 <0.001 2.16 1.18 – 3.13 <0.001 0.55 0.26 – 0.84 <0.001 0.28 0.00 – 0.56 0.047 1.30 0.83 – 1.77 <0.001 7.23 4.15 – 10.30 <0.001 26.03 21.00 – 31.05 <0.001 0.09 0.05 – 0.12 <0.001
Group [1] -1.30 -2.84 – 0.23 0.095 1.56 0.61 – 2.52 0.001 0.64 -0.84 – 2.11 0.399 0.78 -0.10 – 1.66 0.081 0.12 -0.16 – 0.39 0.404 0.17 -0.12 – 0.47 0.256 0.60 -0.07 – 1.27 0.077 2.42 -1.74 – 6.58 0.255 2.65 -3.39 – 8.69 0.390 0.04 -0.00 – 0.09 0.069
Attendance 0.03 0.02 – 0.05 <0.001 0.00 -0.01 – 0.01 0.849 0.06 0.04 – 0.08 <0.001 0.02 0.01 – 0.03 0.001 0.01 0.00 – 0.01 <0.001 0.01 0.00 – 0.01 0.001 0.02 0.02 – 0.03 <0.001 0.11 0.06 – 0.16 <0.001 0.23 0.15 – 0.31 <0.001 0.00 0.00 – 0.00 <0.001
GenderChild [Male] × time
[endline]
0.12 -0.90 – 1.14 0.818 0.20 -0.37 – 0.76 0.495 0.08 -0.60 – 0.77 0.813 -0.13 -0.81 – 0.56 0.713 0.02 -0.18 – 0.23 0.841 0.14 -0.05 – 0.33 0.157 -0.21 -0.54 – 0.12 0.210 -0.85 -3.00 – 1.30 0.437 0.27 -3.24 – 3.79 0.878 0.00 -0.02 – 0.03 0.791
GenderChild [Male] ×
Group [1]
0.34 -0.90 – 1.58 0.591 -0.06 -0.65 – 0.53 0.837 0.12 -1.17 – 1.40 0.858 0.14 -0.84 – 1.12 0.778 0.11 -0.15 – 0.38 0.393 0.05 -0.20 – 0.29 0.716 -0.27 -0.85 – 0.32 0.375 1.14 -2.45 – 4.73 0.535 2.21 -3.64 – 8.06 0.459 0.01 -0.03 – 0.04 0.803
time [endline] × Group
[1]
1.99 0.96 – 3.02 <0.001 2.46 1.89 – 3.02 <0.001 1.04 0.35 – 1.74 0.003 1.58 0.89 – 2.27 <0.001 0.14 -0.07 – 0.35 0.180 0.16 -0.04 – 0.36 0.115 -0.38 -0.72 – -0.04 0.027 4.48 2.30 – 6.66 <0.001 5.53 1.96 – 9.10 0.002 0.07 0.04 – 0.09 <0.001
time [endline] ×
Attendance
0.00 -0.02 – 0.02 0.894 0.02 0.01 – 0.03 <0.001 0.01 -0.00 – 0.02 0.069 0.01 -0.00 – 0.02 0.059 0.01 0.00 – 0.01 0.004 0.00 -0.00 – 0.01 0.093 0.01 0.01 – 0.02 <0.001 0.10 0.06 – 0.14 <0.001 0.04 -0.02 – 0.11 0.201 0.00 0.00 – 0.00 <0.001
(GenderChild [Male] ×
time [endline]) × Group
[1]
-0.84 -2.28 – 0.60 0.253 -0.33 -1.12 – 0.47 0.420 -0.47 -1.44 – 0.50 0.343 -0.54 -1.51 – 0.43 0.275 -0.27 -0.56 – 0.02 0.064 -0.21 -0.49 – 0.06 0.132 0.06 -0.41 – 0.53 0.810 -3.95 -6.99 – -0.91 0.011 -3.87 -8.84 – 1.10 0.127 -0.03 -0.06 – -0.00 0.050
Random Effects
σ2 25.27 7.66 11.53 11.41 1.02 0.92 2.69 112.97 301.78 0.01
τ00 11.99 participantID:School 0.72 participantID:School 28.40 participantID:School 11.62 participantID:School 0.65 participantID:School 0.55 participantID:School 5.66 participantID:School 197.47 participantID:School 522.76 participantID:School 0.03 participantID:School
3.03 School 1.44 School 2.61 School 0.55 School 0.08 School 0.11 School 0.53 School 20.90 School 37.08 School 0.00 School
ICC 0.37 0.22 0.73 0.52 0.42 0.42 0.70 0.66 0.65 0.69
N 1507 participantID 1507 participantID 1507 participantID 1507 participantID 1507 participantID 1507 participantID 1507 participantID 1507 participantID 1507 participantID 1507 participantID
30 School 30 School 30 School 30 School 30 School 30 School 30 School 30 School 30 School 30 School
Observations 3014 3014 3014 3014 3014 3014 3014 3014 3014 3013
Marginal R2 / Conditional R2 0.085 / 0.426 0.251 / 0.416 0.171 / 0.775 0.154 / 0.591 0.136 / 0.498 0.075 / 0.462 0.133 / 0.737 0.183 / 0.721 0.243 / 0.735 0.224 / 0.763

Wellbeing

There is no significant interaction effect for gender x time x group on wellbeing

wellbeing_g
  WB_total
Predictors Estimates CI p
(Intercept) 32.19 30.77 – 33.61 <0.001
GenderChild [Male] 0.14 -0.78 – 1.07 0.760
time [endline] -1.11 -2.96 – 0.73 0.237
Group [1] 3.06 1.95 – 4.18 <0.001
Attendance 0.00 -0.01 – 0.02 0.670
GenderChild [Male] × time
[endline]
0.07 -1.22 – 1.36 0.910
GenderChild [Male] ×
Group [1]
-0.79 -2.10 – 0.51 0.233
time [endline] × Group
[1]
0.46 -0.85 – 1.76 0.494
time [endline] ×
Attendance
0.00 -0.02 – 0.03 0.822
(GenderChild [Male] ×
time [endline]) × Group
[1]
0.54 -1.29 – 2.36 0.563
Random Effects
σ2 40.61
τ00 participantID:School 0.65
τ00 School 0.72
ICC 0.03
N participantID 1507
N School 30
Observations 3014
Marginal R2 / Conditional R2 0.055 / 0.086

Effect of gender in intervention group

Math

There is a main effect for total_nid for gender. Boys scored .37 higher than girls, p=.031. There is one significant interaction effect gender x time. On the total math score, girls improved 3% more than boys (p=.007).

numericy_g
  total_nid total_qds total_mis total_add total_sub total_prb tot.num
Predictors Estimates CI p Estimates CI p Estimates CI p Estimates CI p Estimates CI p Estimates CI p Estimates CI p
(Intercept) 12.07 11.80 – 12.34 <0.001 8.25 8.04 – 8.45 <0.001 5.72 5.37 – 6.08 <0.001 6.86 6.41 – 7.32 <0.001 4.55 4.15 – 4.95 <0.001 3.40 3.12 – 3.68 <0.001 0.54 0.52 – 0.55 <0.001
GenderChild [Male] 0.37 0.04 – 0.71 0.030 0.08 -0.15 – 0.32 0.481 0.21 -0.15 – 0.56 0.254 0.22 -0.38 – 0.82 0.472 0.18 -0.37 – 0.72 0.522 0.22 -0.01 – 0.45 0.060 0.02 -0.00 – 0.04 0.066
time [endline] 2.02 1.77 – 2.27 <0.001 1.23 1.03 – 1.44 <0.001 2.02 1.76 – 2.28 <0.001 3.17 2.68 – 3.67 <0.001 2.50 2.05 – 2.95 <0.001 1.36 1.16 – 1.56 <0.001 0.15 0.14 – 0.17 <0.001
GenderChild [Male] × time
[endline]
-0.30 -0.66 – 0.06 0.102 -0.16 -0.45 – 0.13 0.289 -0.32 -0.68 – 0.05 0.090 -0.59 -1.30 – 0.11 0.101 0.22 -0.43 – 0.86 0.510 -0.27 -0.55 – 0.02 0.064 -0.02 -0.04 – -0.00 0.023
Random Effects
σ2 3.16 2.10 3.27 12.21 10.04 1.95 0.01
τ00 2.31 participantID:School 0.55 participantID:School 2.83 participantID:School 5.10 participantID:School 4.45 participantID:School 0.65 participantID:School 0.01 participantID:School
0.07 School 0.07 School 0.25 School 0.14 School 0.06 School 0.20 School 0.00 School
ICC 0.43 0.23 0.48 0.30 0.31 0.30 0.57
N 753 participantID 753 participantID 753 participantID 753 participantID 753 participantID 753 participantID 753 participantID
15 School 15 School 15 School 15 School 15 School 15 School 15 School
Observations 1506 1506 1506 1506 1506 1506 1506
Marginal R2 / Conditional R2 0.139 / 0.509 0.110 / 0.312 0.122 / 0.548 0.108 / 0.376 0.106 / 0.383 0.121 / 0.387 0.211 / 0.662

Literacy

There is one significant effect for the main effect of gender on total_wrt. Girls scores .62 higher than boys. There are three significant interaction effects gender x time. On total_com girls improved .3 more than boys, p=.004. On read_1 girls improved 4.4 more than boys, p<.001. On tot.lit girls improved 2 percent more than boys, p<.037.

literacy_g
  total_lid total_pho total_muw total_non total_com total_lis total_wrt read_1 read_2 tot.lit
Predictors Estimates CI p Estimates CI p Estimates CI p Estimates CI p Estimates CI p Estimates CI p Estimates CI p Estimates CI p Estimates CI p Estimates CI p
(Intercept) 19.41 18.23 – 20.60 <0.001 3.89 3.25 – 4.54 <0.001 8.74 7.49 – 9.98 <0.001 3.71 3.03 – 4.39 <0.001 0.79 0.56 – 1.02 <0.001 0.92 0.70 – 1.15 <0.001 3.37 2.79 – 3.96 <0.001 14.17 10.56 – 17.78 <0.001 28.90 23.85 – 33.94 <0.001 0.33 0.29 – 0.37 <0.001
GenderChild [Male] -0.05 -0.95 – 0.86 0.918 -0.38 -0.82 – 0.07 0.096 -0.74 -1.64 – 0.17 0.110 0.06 -0.66 – 0.77 0.879 0.02 -0.17 – 0.22 0.802 -0.13 -0.32 – 0.06 0.168 -0.62 -1.04 – -0.20 0.004 -0.89 -3.60 – 1.81 0.518 -1.34 -5.50 – 2.82 0.527 -0.02 -0.05 – 0.01 0.167
time [endline] 4.66 3.89 – 5.42 <0.001 3.17 2.76 – 3.59 <0.001 5.69 5.22 – 6.16 <0.001 4.58 4.10 – 5.07 <0.001 1.07 0.92 – 1.22 <0.001 0.65 0.51 – 0.80 <0.001 1.79 1.57 – 2.01 <0.001 18.54 16.95 – 20.13 <0.001 34.51 31.99 – 37.02 <0.001 0.22 0.21 – 0.24 <0.001
GenderChild [Male] × time
[endline]
-0.72 -1.81 – 0.37 0.196 -0.13 -0.73 – 0.47 0.668 -0.39 -1.06 – 0.28 0.259 -0.67 -1.36 – 0.03 0.060 -0.25 -0.46 – -0.04 0.018 -0.07 -0.28 – 0.14 0.502 -0.15 -0.47 – 0.16 0.342 -4.81 -7.08 – -2.53 <0.001 -3.59 -7.19 – -0.00 0.050 -0.03 -0.05 – -0.01 0.013
Random Effects
σ2 29.03 8.76 11.02 11.80 1.07 1.05 2.50 126.28 315.77 0.01
τ00 10.41 participantID:School 0.79 participantID:School 28.05 participantID:School 12.64 participantID:School 0.74 participantID:School 0.62 participantID:School 6.04 participantID:School 226.92 participantID:School 519.06 participantID:School 0.03 participantID:School
3.93 School 1.25 School 4.51 School 0.84 School 0.14 School 0.13 School 1.00 School 36.88 School 66.41 School 0.00 School
ICC 0.33 0.19 0.75 0.53 0.45 0.41 0.74 0.68 0.65 0.72
N 753 participantID 753 participantID 753 participantID 753 participantID 753 participantID 753 participantID 753 participantID 753 participantID 753 participantID 753 participantID
15 School 15 School 15 School 15 School 15 School 15 School 15 School 15 School 15 School 15 School
Observations 1506 1506 1506 1506 1506 1506 1506 1506 1506 1506
Marginal R2 / Conditional R2 0.098 / 0.396 0.186 / 0.340 0.152 / 0.785 0.153 / 0.605 0.106 / 0.508 0.054 / 0.446 0.083 / 0.760 0.152 / 0.725 0.232 / 0.731 0.200 / 0.776