Preparation

data<-read.csv("/Users/samanthabouwmeester/Documents/CWTL/merged_data_all.csv")

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,7)
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 NA
# 69 participants miss the endline data for numericy all tasks. This is 69/1507=.046, 4.6%
# These endline scores were imputed.

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
# no missings anymore


### total scores
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","Read_1_end",
                 "Read_2_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","Read_1_end","Read_2_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"
                 ,"Read_1_end","Read_2_end")]
any(is.na(rowSums(end.lit)))
## [1] FALSE
# no missings anymore

### Add total literacy score

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$Read_1_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[,c(6:17,375:386)]

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:5,616)],wellbeing[,1:12])
wb.end<-cbind(wb.bas[,1:5],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[,6:17])

Assesments

Long datafile

### Long datafile ###

baseline<-cbind(data[,c(2:5,615,616)],bas.num,bas.lit)
colnames(baseline)
##  [1] "participantID"   "GenderChild"     "School"          "ppt_group"      
##  [5] "Attendance"      "Attendance_dich" "total_nid"       "total_qds"      
##  [9] "total_mis"       "total_add"       "total_sub"       "total_prb"      
## [13] "tot.num"         "total_lid"       "total_pho"       "total_muw"      
## [17] "total_non"       "total_com"       "total_lis"       "total_wrt"      
## [21] "read_1"          "read_2"          "tot.lit"
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))


longdata[c(1:6),]
##      participantID GenderChild                    School ppt_group Attendance
## 1209      16000650        Male Kyamusooni Primary School         B         82
## 2716      16000650        Male Kyamusooni Primary School         B         82
## 1163      16000674        Male Kyamusooni Primary School         B         88
## 2670      16000674        Male Kyamusooni Primary School         B         88
## 1115      16000681        Male Kyamusooni Primary School         B         83
## 2622      16000681        Male Kyamusooni Primary School         B         83
##      Attendance_dich total_nid total_qds total_mis total_add total_sub
## 1209               0        11         6         4         3         4
## 2716               0        14         9         5         4         4
## 1163               1        13        10         6         7         3
## 2670               1        15        10         7         7         6
## 1115               0        15        10        10         7         4
## 2622               0        15        10         8        11         7
##      total_prb   tot.num total_lid total_pho total_muw total_non total_com
## 1209         2 0.3911111        21         1         3         1         0
## 2716         4 0.5533333        22         3         5         0         0
## 1163         6 0.6444444        23         0        13         3         0
## 2670         6 0.7033333        26         6        17         8         2
## 1115         6 0.7400000        24         4        19         9         2
## 2622         5 0.7255556        24         7        16         2         3
##      total_lis total_wrt read_1 read_2   tot.lit WB_total     time
## 1209         1         0      3      3 0.1738624       21 baseline
## 2716         1         0      7     19 0.2083576       27  endline
## 1163         0         1     30     48 0.2643806       43 baseline
## 2670         1         7     29     69 0.5678662       29  endline
## 1115         1         3     17     48 0.5048259       25 baseline
## 2622         4         7     30     67 0.6188884       31  endline

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.09      12.17     13.75
##  2:   sd total_nid       2.90      1.66       2.95      2.10
##  3: mean total_qds       8.29      9.44       8.25      9.05
##  4:   sd total_qds       2.05      1.09       2.14      1.55
##  5: mean total_mis       5.82      7.63       5.27      7.02
##  6:   sd total_mis       2.81      2.21       2.94      2.67
##  7: mean total_add       6.97      9.78       5.83      8.35
##  8:   sd total_add       4.10      4.28       3.70      4.27
##  9: mean total_sub       4.63      7.20       3.97      5.48
## 10:   sd total_sub       3.66      4.03       2.91      3.37
## 11: mean total_prb       3.51      4.71       3.44      4.43
## 12:   sd total_prb       1.92      1.38       1.89      1.61
## 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.71      20.41     23.15
##  2:   sd total_lid       8.14      4.40       7.19      4.94
##  3: mean total_pho       3.71      6.73       2.16      2.89
##  4:   sd total_pho       3.51      3.10       2.83      3.15
##  5: mean total_muw       8.37     13.81       7.46     12.15
##  6:   sd total_muw       6.91      6.29       6.54      6.94
##  7: mean total_non       3.73      7.88       2.81      5.69
##  8:   sd total_non       4.72      5.33       4.15      5.25
##  9: mean total_com       0.80      1.75       0.60      1.54
## 10:   sd total_com       1.27      1.51       1.09      1.44
## 11: mean total_lis       0.86      1.48       0.64      1.21
## 12:   sd total_lis       1.26      1.41       1.04      1.33
## 13: mean total_wrt       3.06      4.76       2.51      4.54
## 14:   sd total_wrt       2.92      3.29       2.73      3.30
## 15:    mean read_1      13.72     29.73      10.32     23.75
## 16:      sd read_1      15.90     23.08      13.31     20.67
## 17:    mean read_2      28.22     60.33      23.63     52.62
## 18:      sd read_2      31.68     28.85      30.39     28.97
## 19:   mean tot.lit       0.34      0.52       0.29      0.42
## 20:     sd tot.lit       0.21      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.52 11.09 – 11.94 <0.001 11.55 11.08 – 12.01 <0.001
GenderChild [Male] 0.28 0.03 – 0.52 0.028 0.28 0.03 – 0.52 0.029
time [endline] 1.68 1.27 – 2.09 <0.001 1.82 1.38 – 2.26 <0.001
Attendance 0.01 0.00 – 0.01 0.003 0.01 0.00 – 0.01 0.003
GenderChild [Male] × time
[endline]
-0.22 -0.48 – 0.04 0.092 -0.21 -0.47 – 0.05 0.108
time [endline] ×
Attendance
0.00 -0.00 – 0.01 0.460 0.00 -0.00 – 0.01 0.562
ppt group [B] -0.06 -0.40 – 0.28 0.733
time [endline] × ppt
group [B]
-0.24 -0.49 – 0.02 0.072
Random Effects
σ2 3.21 3.20
τ00 2.72 participantID:School 2.72 participantID:School
0.11 School 0.11 School
ICC 0.47 0.47
N 1507 participantID 1507 participantID
30 School 30 School
Observations 3014 3014
Marginal R2 / Conditional R2 0.115 / 0.530 0.117 / 0.531
plot(colnames(dat)[9])
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.

# 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.02 7.71 – 8.32 <0.001 8.02 7.68 – 8.35 <0.001
GenderChild [Male] -0.00 -0.18 – 0.17 0.961 -0.01 -0.19 – 0.17 0.926
time [endline] 0.85 0.52 – 1.18 <0.001 1.06 0.71 – 1.41 <0.001
Attendance 0.00 -0.00 – 0.01 0.054 0.00 0.00 – 0.01 0.047
GenderChild [Male] × time
[endline]
-0.13 -0.33 – 0.08 0.222 -0.11 -0.32 – 0.09 0.282
time [endline] ×
Attendance
0.00 -0.00 – 0.01 0.198 0.00 -0.00 – 0.01 0.317
ppt group [B] -0.01 -0.26 – 0.23 0.904
time [endline] × ppt
group [B]
-0.34 -0.55 – -0.14 0.001
Random Effects
σ2 2.06 2.04
τ00 0.99 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.077 / 0.388 0.082 / 0.393
plot(colnames(dat)[10])

# 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.72 4.24 – 5.20 <0.001 5.01 4.48 – 5.53 <0.001
GenderChild [Male] 0.25 -0.01 – 0.52 0.063 0.26 -0.01 – 0.53 0.057
time [endline] 1.55 1.10 – 1.99 <0.001 1.56 1.09 – 2.03 <0.001
Attendance 0.01 0.00 – 0.02 0.001 0.01 0.00 – 0.02 0.001
GenderChild [Male] × time
[endline]
-0.33 -0.61 – -0.05 0.019 -0.33 -0.60 – -0.05 0.019
time [endline] ×
Attendance
0.01 0.00 – 0.01 0.044 0.01 0.00 – 0.01 0.047
ppt group [B] -0.52 -0.94 – -0.10 0.014
time [endline] × ppt
group [B]
-0.02 -0.30 – 0.26 0.888
Random Effects
σ2 3.72 3.72
τ00 3.16 participantID:School 3.16 participantID:School
0.27 School 0.20 School
ICC 0.48 0.48
N 1507 participantID 1507 participantID
30 School 30 School
Observations 3014 3014
Marginal R2 / Conditional R2 0.112 / 0.538 0.122 / 0.539
plot(colnames(dat)[11])

# 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) 5.14 4.41 – 5.87 <0.001 5.77 5.03 – 6.52 <0.001
GenderChild [Male] 0.22 -0.19 – 0.63 0.298 0.23 -0.18 – 0.64 0.280
time [endline] 2.16 1.40 – 2.92 <0.001 2.29 1.47 – 3.10 <0.001
Attendance 0.02 0.01 – 0.03 <0.001 0.02 0.01 – 0.02 0.001
GenderChild [Male] × time
[endline]
-0.57 -1.05 – -0.10 0.018 -0.56 -1.04 – -0.09 0.020
time [endline] ×
Attendance
0.01 0.00 – 0.02 0.021 0.01 0.00 – 0.02 0.026
ppt group [B] -1.09 -1.59 – -0.59 <0.001
time [endline] × ppt
group [B]
-0.21 -0.69 – 0.26 0.381
Random Effects
σ2 11.03 11.03
τ00 5.32 participantID:School 5.32 participantID:School
0.53 School 0.17 School
ICC 0.35 0.33
N 1507 participantID 1507 participantID
30 School 30 School
Observations 3014 3014
Marginal R2 / Conditional R2 0.112 / 0.419 0.131 / 0.420
plot(colnames(dat)[12])

# 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.54 2.90 – 4.18 <0.001 3.92 3.28 – 4.57 <0.001
GenderChild [Male] 0.26 -0.10 – 0.61 0.154 0.24 -0.11 – 0.60 0.182
time [endline] 1.49 0.82 – 2.16 <0.001 2.11 1.40 – 2.82 <0.001
Attendance 0.01 0.00 – 0.02 0.021 0.01 0.00 – 0.02 0.030
GenderChild [Male] × time
[endline]
0.06 -0.35 – 0.48 0.773 0.11 -0.30 – 0.52 0.609
time [endline] ×
Attendance
0.01 -0.00 – 0.02 0.088 0.01 -0.00 – 0.01 0.197
ppt group [B] -0.64 -1.08 – -0.21 0.004
time [endline] × ppt
group [B]
-1.03 -1.44 – -0.62 <0.001
Random Effects
σ2 8.43 8.30
τ00 3.81 participantID:School 3.87 participantID:School
0.47 School 0.13 School
ICC 0.34 0.33
N 1507 participantID 1507 participantID
30 School 30 School
Observations 3014 3014
Marginal R2 / Conditional R2 0.084 / 0.392 0.113 / 0.401
plot(colnames(dat)[13])

# 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.13 2.81 – 3.44 <0.001 3.16 2.80 – 3.51 <0.001
GenderChild [Male] 0.19 0.02 – 0.36 0.027 0.19 0.02 – 0.36 0.030
time [endline] 1.23 0.90 – 1.56 <0.001 1.35 1.00 – 1.70 <0.001
Attendance 0.00 -0.00 – 0.01 0.058 0.00 -0.00 – 0.01 0.051
GenderChild [Male] × time
[endline]
-0.24 -0.45 – -0.04 0.020 -0.23 -0.44 – -0.03 0.026
time [endline] ×
Attendance
-0.00 -0.00 – 0.00 0.954 -0.00 -0.00 – 0.00 0.819
ppt group [B] -0.07 -0.38 – 0.25 0.683
time [endline] × ppt
group [B]
-0.21 -0.41 – -0.00 0.048
Random Effects
σ2 2.03 2.03
τ00 0.78 participantID:School 0.78 participantID:School
0.14 School 0.14 School
ICC 0.31 0.31
N 1507 participantID 1507 participantID
30 School 30 School
Observations 3014 3014
Marginal R2 / Conditional R2 0.096 / 0.378 0.099 / 0.380
plot(colnames(dat)[14])

# 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.48 0.46 – 0.51 <0.001 0.50 0.47 – 0.53 <0.001
GenderChild [Male] 0.02 0.00 – 0.03 0.032 0.02 0.00 – 0.03 0.032
time [endline] 0.12 0.10 – 0.14 <0.001 0.13 0.11 – 0.15 <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.003 -0.02 -0.03 – -0.01 0.004
time [endline] ×
Attendance
0.00 0.00 – 0.00 0.037 0.00 -0.00 – 0.00 0.073
ppt group [B] -0.02 -0.05 – -0.00 0.041
time [endline] × ppt
group [B]
-0.02 -0.04 – -0.01 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.60 0.59
N 1507 participantID 1507 participantID
30 School 30 School
Observations 3014 3014
Marginal R2 / Conditional R2 0.172 / 0.667 0.185 / 0.670
plot(colnames(dat)[15])

# 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) 18.74 17.53 – 19.96 <0.001 18.11 16.68 – 19.54 <0.001
GenderChild [Male] -0.15 -0.77 – 0.48 0.644 -0.18 -0.81 – 0.44 0.560
time [endline] 3.48 2.33 – 4.63 <0.001 4.43 3.20 – 5.65 <0.001
Attendance 0.02 0.00 – 0.03 0.010 0.02 0.01 – 0.03 0.005
GenderChild [Male] × time
[endline]
-0.35 -1.06 – 0.37 0.344 -0.28 -0.99 – 0.44 0.449
time [endline] ×
Attendance
0.00 -0.01 – 0.02 0.666 0.00 -0.01 – 0.02 0.952
ppt group [B] 1.11 -0.32 – 2.53 0.128
time [endline] × ppt
group [B]
-1.57 -2.29 – -0.85 <0.001
Random Effects
σ2 25.17 24.88
τ00 12.20 participantID:School 12.34 participantID:School
3.12 School 3.22 School
ICC 0.38 0.38
N 1507 participantID 1507 participantID
30 School 30 School
Observations 3014 3014
Marginal R2 / Conditional R2 0.077 / 0.426 0.080 / 0.434
plot(colnames(dat)[16])

# 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.31 2.49 – 4.12 <0.001 3.97 3.17 – 4.78 <0.001
GenderChild [Male] -0.29 -0.59 – 0.01 0.057 -0.34 -0.63 – -0.04 0.025
time [endline] 0.08 -0.58 – 0.74 0.814 1.40 0.72 – 2.09 <0.001
Attendance -0.00 -0.01 – 0.00 0.331 -0.00 -0.01 – 0.01 0.662
GenderChild [Male] × time
[endline]
-0.03 -0.44 – 0.39 0.905 0.07 -0.32 – 0.47 0.716
time [endline] ×
Attendance
0.03 0.02 – 0.04 <0.001 0.02 0.01 – 0.03 <0.001
ppt group [B] -1.54 -2.46 – -0.62 0.001
time [endline] × ppt
group [B]
-2.20 -2.60 – -1.80 <0.001
Random Effects
σ2 8.32 7.72
τ00 0.43 participantID:School 0.73 participantID:School
3.21 School 1.47 School
ICC 0.30 0.22
N 1507 participantID 1507 participantID
30 School 30 School
Observations 3014 3014
Marginal R2 / Conditional R2 0.081 / 0.362 0.242 / 0.410
plot(colnames(dat)[17])

# 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) 5.86 4.60 – 7.12 <0.001 6.21 4.76 – 7.66 <0.001
GenderChild [Male] -0.76 -1.41 – -0.11 0.022 -0.77 -1.41 – -0.12 0.021
time [endline] 4.44 3.67 – 5.20 <0.001 4.86 4.05 – 5.68 <0.001
Attendance 0.04 0.02 – 0.05 <0.001 0.04 0.02 – 0.05 <0.001
GenderChild [Male] × time
[endline]
0.01 -0.46 – 0.49 0.962 0.04 -0.43 – 0.52 0.857
time [endline] ×
Attendance
0.01 -0.00 – 0.02 0.074 0.01 -0.00 – 0.02 0.126
ppt group [B] -0.74 -2.12 – 0.65 0.296
time [endline] × ppt
group [B]
-0.71 -1.19 – -0.24 0.003
Random Effects
σ2 11.06 11.01
τ00 29.37 participantID:School 29.40 participantID:School
3.10 School 2.92 School
ICC 0.75 0.75
N 1507 participantID 1507 participantID
30 School 30 School
Observations 3014 3014
Marginal R2 / Conditional R2 0.147 / 0.783 0.154 / 0.785
plot(colnames(dat)[18])

# 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) 2.40 1.50 – 3.30 <0.001 2.82 1.88 – 3.77 <0.001
GenderChild [Male] -0.00 -0.49 – 0.49 0.994 -0.01 -0.50 – 0.48 0.964
time [endline] 2.62 1.84 – 3.39 <0.001 3.34 2.51 – 4.16 <0.001
Attendance 0.01 0.00 – 0.02 0.021 0.01 0.00 – 0.02 0.017
GenderChild [Male] × time
[endline]
-0.32 -0.80 – 0.16 0.196 -0.26 -0.74 – 0.21 0.279
time [endline] ×
Attendance
0.02 0.01 – 0.03 0.003 0.01 0.00 – 0.02 0.009
ppt group [B] -0.87 -1.60 – -0.14 0.019
time [endline] × ppt
group [B]
-1.20 -1.68 – -0.71 <0.001
Random Effects
σ2 11.39 11.22
τ00 11.85 participantID:School 11.93 participantID:School
1.08 School 0.56 School
ICC 0.53 0.53
N 1507 participantID 1507 participantID
30 School 30 School
Observations 3014 3014
Marginal R2 / Conditional R2 0.122 / 0.589 0.146 / 0.596
plot(colnames(dat)[19])

# 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.40 0.15 – 0.64 0.001 0.49 0.21 – 0.77 0.001
GenderChild [Male] -0.03 -0.16 – 0.10 0.684 -0.03 -0.16 – 0.11 0.706
time [endline] 0.76 0.53 – 0.99 <0.001 0.76 0.51 – 1.00 <0.001
Attendance 0.00 0.00 – 0.01 0.002 0.00 0.00 – 0.01 0.002
GenderChild [Male] × time
[endline]
-0.12 -0.26 – 0.02 0.101 -0.12 -0.26 – 0.02 0.100
time [endline] ×
Attendance
0.00 0.00 – 0.01 0.023 0.00 0.00 – 0.01 0.022
ppt group [B] -0.18 -0.43 – 0.07 0.152
time [endline] × ppt
group [B]
0.01 -0.13 – 0.16 0.868
Random Effects
σ2 1.01 1.01
τ00 0.67 participantID:School 0.67 participantID:School
0.09 School 0.09 School
ICC 0.43 0.43
N 1507 participantID 1507 participantID
30 School 30 School
Observations 3014 3014
Marginal R2 / Conditional R2 0.124 / 0.499 0.128 / 0.500
plot(colnames(dat)[20])

# 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.56 0.32 – 0.80 <0.001 0.66 0.38 – 0.94 <0.001
GenderChild [Male] -0.15 -0.27 – -0.03 0.017 -0.15 -0.27 – -0.03 0.018
time [endline] 0.41 0.18 – 0.63 <0.001 0.43 0.20 – 0.67 <0.001
Attendance 0.00 0.00 – 0.01 0.006 0.00 0.00 – 0.01 0.006
GenderChild [Male] × time
[endline]
0.08 -0.06 – 0.22 0.246 0.08 -0.05 – 0.22 0.235
time [endline] ×
Attendance
0.00 -0.00 – 0.01 0.148 0.00 -0.00 – 0.01 0.165
ppt group [B] -0.20 -0.47 – 0.07 0.153
time [endline] × ppt
group [B]
-0.04 -0.18 – 0.09 0.536
Random Effects
σ2 0.93 0.93
τ00 0.55 participantID:School 0.55 participantID:School
0.12 School 0.11 School
ICC 0.42 0.41
N 1507 participantID 1507 participantID
30 School 30 School
Observations 3014 3014
Marginal R2 / Conditional R2 0.062 / 0.453 0.070 / 0.455
plot(colnames(dat)[21])

# 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.93 1.36 – 2.50 <0.001 2.20 1.54 – 2.86 <0.001
GenderChild [Male] -0.48 -0.78 – -0.19 0.001 -0.47 -0.77 – -0.17 0.002
time [endline] 1.38 1.01 – 1.76 <0.001 1.16 0.76 – 1.56 <0.001
Attendance 0.02 0.01 – 0.02 <0.001 0.02 0.01 – 0.02 <0.001
GenderChild [Male] × time
[endline]
-0.08 -0.32 – 0.15 0.483 -0.10 -0.33 – 0.13 0.399
time [endline] ×
Attendance
0.01 0.00 – 0.01 0.002 0.01 0.00 – 0.01 0.001
ppt group [B] -0.48 -1.10 – 0.14 0.132
time [endline] × ppt
group [B]
0.37 0.14 – 0.61 0.002
Random Effects
σ2 2.68 2.66
τ00 5.81 participantID:School 5.82 participantID:School
0.58 School 0.59 School
ICC 0.70 0.71
N 1507 participantID 1507 participantID
30 School 30 School
Observations 3014 3014
Marginal R2 / Conditional R2 0.115 / 0.739 0.118 / 0.741
plot(colnames(dat)[22])

# 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) 8.42 4.87 – 11.96 <0.001 9.90 5.88 – 13.91 <0.001
GenderChild [Male] -1.38 -3.19 – 0.43 0.135 -1.40 -3.21 – 0.41 0.130
time [endline] 10.56 8.07 – 13.05 <0.001 11.86 9.21 – 14.51 <0.001
Attendance 0.06 0.02 – 0.10 0.002 0.06 0.02 – 0.11 0.002
GenderChild [Male] × time
[endline]
-2.39 -3.94 – -0.84 0.003 -2.29 -3.84 – -0.74 0.004
time [endline] ×
Attendance
0.08 0.05 – 0.11 <0.001 0.08 0.04 – 0.11 <0.001
ppt group [B] -3.09 -6.89 – 0.72 0.112
time [endline] × ppt
group [B]
-2.17 -3.72 – -0.62 0.006
Random Effects
σ2 117.37 116.87
τ00 199.31 participantID:School 199.56 participantID:School
25.40 School 21.88 School
ICC 0.66 0.65
N 1507 participantID 1507 participantID
30 School 30 School
Observations 3014 3014
Marginal R2 / Conditional R2 0.156 / 0.710 0.169 / 0.713
plot(colnames(dat)[23])

# 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) 17.41 11.88 – 22.93 <0.001 19.30 13.11 – 25.48 <0.001
GenderChild [Male] -2.36 -5.31 – 0.59 0.117 -2.37 -5.32 – 0.58 0.115
time [endline] 28.18 24.22 – 32.15 <0.001 29.94 25.71 – 34.17 <0.001
Attendance 0.14 0.08 – 0.21 <0.001 0.15 0.08 – 0.21 <0.001
GenderChild [Male] × time
[endline]
-1.01 -3.48 – 1.46 0.422 -0.88 -3.35 – 1.59 0.485
time [endline] ×
Attendance
0.04 -0.01 – 0.10 0.110 0.04 -0.02 – 0.09 0.163
ppt group [B] -3.92 -9.39 – 1.54 0.159
time [endline] × ppt
group [B]
-2.92 -5.40 – -0.45 0.021
Random Effects
σ2 298.15 297.29
τ00 541.60 participantID:School 542.00 participantID:School
46.81 School 41.35 School
ICC 0.66 0.66
N 1507 participantID 1507 participantID
30 School 30 School
Observations 3014 3014
Marginal R2 / Conditional R2 0.221 / 0.738 0.228 / 0.740
plot(colnames(dat)[24])

# 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.26 0.22 – 0.30 <0.001 0.28 0.24 – 0.33 <0.001
GenderChild [Male] -0.02 -0.04 – -0.00 0.021 -0.02 -0.04 – -0.00 0.018
time [endline] 0.11 0.09 – 0.14 <0.001 0.14 0.11 – 0.16 <0.001
Attendance 0.00 0.00 – 0.00 <0.001 0.00 0.00 – 0.00 <0.001
GenderChild [Male] × time
[endline]
-0.01 -0.02 – 0.01 0.399 -0.00 -0.02 – 0.01 0.560
time [endline] ×
Attendance
0.00 0.00 – 0.00 <0.001 0.00 0.00 – 0.00 <0.001
ppt group [B] -0.05 -0.09 – -0.01 0.025
time [endline] × ppt
group [B]
-0.04 -0.06 – -0.03 <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.75 0.75
N 1507 participantID 1507 participantID
30 School 30 School
Observations 3014 3014
Marginal R2 / Conditional R2 0.152 / 0.788 0.182 / 0.794
plot(colnames(dat)[25])

# 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.33      23.63     52.62
## 2:   sd total wellbeing      31.68     28.85      30.39     28.97
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*ppt_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) 34.17 32.93 – 35.41 <0.001 35.93 34.76 – 37.10 <0.001
GenderChild [Male] 0.44 -0.21 – 1.09 0.187 0.46 -0.20 – 1.11 0.171
time [endline] -0.89 -2.25 – 0.47 0.201 -1.00 -2.46 – 0.46 0.178
Attendance -0.01 -0.03 – 0.00 0.060 -0.02 -0.03 – -0.00 0.023
GenderChild [Male] × time
[endline]
-0.33 -1.17 – 0.52 0.452 -0.33 -1.18 – 0.52 0.441
time [endline] ×
Attendance
0.02 0.00 – 0.04 0.024 0.02 0.00 – 0.04 0.023
ppt group [B] -3.21 -3.99 – -2.43 <0.001
time [endline] × ppt
group [B]
0.18 -0.67 – 1.04 0.671
Random Effects
σ2 35.28 35.30
τ00 5.98 participantID:School 5.97 participantID:School
2.83 School 0.36 School
ICC 0.20 0.15
N 1507 participantID 1507 participantID
30 School 30 School
Observations 3014 3014
Marginal R2 / Conditional R2 0.003 / 0.202 0.057 / 0.200
plot(colnames(dat)[26])

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

fit_Wbg <- lmer(WB_total ~ GenderChild*time*ppt_group+Attendance+Attendance*time+time*ppt_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)

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 7.237468e-02 1.066061e-01
##  2:       qds 1.029639e-03 2.816606e-03
##  3:       mis 8.877895e-01 1.000000e+00
##  4:       add 3.806073e-01 5.205806e-01
##  5:       sub 1.132719e-06 5.825967e-06
##  6:       prb 4.780610e-02 7.628533e-02
##  7:        nu 7.361808e-04 2.349482e-03
##  8:       lid 1.836097e-05 7.031768e-05
##  9:       pho 2.492239e-26 4.772309e-25
## 10:       muw 3.382288e-03 7.196263e-03
## 11:       non 1.216996e-06 5.825967e-06
## 12:       com 8.675450e-01 1.000000e+00
## 13:       lis 5.356549e-01 6.838057e-01
## 14:       wrt 1.857161e-03 4.445274e-03
## 15:     read1 6.233543e-03 1.193641e-02
## 16:     read2 2.081593e-02 3.623615e-02
## 17:       lit 2.955393e-09 2.829594e-08
pi0 <- qobj$pi0
lfdr <- qobj$lfdr

#summary(qobj)
#hist(qobj)
#plot(qobj)

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$ppt_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,df.cohensd[,c(4)])

colnames(df)<-c("(Sub)Task","Cohen's d")
data.table(df,keep.rownames=FALSE)
##     (Sub)Task   Cohen's d
##  1:       nid  0.09945541
##  2:       qds  0.17729062
##  3:       mis  0.02173957
##  4:       add  0.06076620
##  5:       sub  0.25761553
##  6:       prb  0.10667239
##  7:        nu  0.18936150
##  8:       lid  0.22465499
##  9:       pho  0.57811966
## 10:       muw  0.15840598
## 11:       non  0.26599639
## 12:       com  0.00553290
## 13:       lis  0.03550222
## 14:       wrt -0.14397429
## 15:     read1  0.16749443
## 16:     read2  0.12769668
## 17:       lit  0.32799245

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.95 12.36 – 13.55 <0.001
GenderChild [Male] -0.40 -0.95 – 0.14 0.149 -0.39 -0.94 – 0.16 0.164
time [endline] 1.75 1.37 – 2.14 <0.001 1.78 1.29 – 2.26 <0.001
GenderChild [Male] × time
[endline]
-0.17 -0.71 – 0.37 0.533 -0.17 -0.71 – 0.37 0.539
ppt group [B] -0.44 -1.16 – 0.29 0.239
time [endline] × ppt
group [B]
-0.05 -0.59 – 0.50 0.870
Random Effects
σ2 3.08 3.09
τ00 3.17 participantID:School 3.16 participantID:School
0.25 School 0.22 School
ICC 0.53 0.52
N 327 participantID 327 participantID
20 School 20 School
Observations 654 654
Marginal R2 / Conditional R2 0.104 / 0.576 0.111 / 0.576
plot(colnames(dat)[9])

# 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.74 8.36 – 9.12 <0.001
GenderChild [Male] -0.47 -0.82 – -0.12 0.008 -0.47 -0.82 – -0.12 0.009
time [endline] 0.98 0.69 – 1.26 <0.001 1.07 0.71 – 1.44 <0.001
GenderChild [Male] × time
[endline]
0.10 -0.31 – 0.50 0.638 0.11 -0.30 – 0.51 0.608
ppt group [B] -0.15 -0.60 – 0.31 0.521
time [endline] × ppt
group [B]
-0.18 -0.59 – 0.24 0.402
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 327 participantID 327 participantID
20 School 20 School
Observations 654 654
Marginal R2 / Conditional R2 0.104 / 0.411 0.109 / 0.413
plot(colnames(dat)[10])

# 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 6.62 6.01 – 7.22 <0.001
GenderChild [Male] -0.25 -0.80 – 0.31 0.382 -0.21 -0.77 – 0.34 0.447
time [endline] 2.16 1.76 – 2.56 <0.001 2.08 1.57 – 2.59 <0.001
GenderChild [Male] × time
[endline]
-0.45 -1.01 – 0.12 0.123 -0.45 -1.02 – 0.12 0.118
ppt group [B] -1.22 -1.95 – -0.49 0.001
time [endline] × ppt
group [B]
0.15 -0.42 – 0.72 0.609
Random Effects
σ2 3.40 3.41
τ00 2.96 participantID:School 2.95 participantID:School
0.52 School 0.23 School
ICC 0.51 0.48
N 327 participantID 327 participantID
20 School 20 School
Observations 654 654
Marginal R2 / Conditional R2 0.127 / 0.569 0.168 / 0.570
plot(colnames(dat)[11])

# 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.09 <0.001 7.94 6.91 – 8.97 <0.001
GenderChild [Male] -0.49 -1.39 – 0.41 0.289 -0.47 -1.37 – 0.43 0.306
time [endline] 3.10 2.35 – 3.84 <0.001 3.22 2.27 – 4.16 <0.001
GenderChild [Male] × time
[endline]
-0.17 -1.21 – 0.88 0.757 -0.15 -1.20 – 0.90 0.773
ppt group [B] -1.50 -2.77 – -0.22 0.021
time [endline] × ppt
group [B]
-0.22 -1.28 – 0.85 0.690
Random Effects
σ2 11.63 11.66
τ00 5.21 participantID:School 5.25 participantID:School
1.56 School 0.82 School
ICC 0.37 0.34
N 327 participantID 327 participantID
20 School 20 School
Observations 654 654
Marginal R2 / Conditional R2 0.114 / 0.440 0.145 / 0.438
plot(colnames(dat)[12])

# 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.84 4.04 – 5.65 <0.001 5.10 4.26 – 5.94 <0.001
GenderChild [Male] -0.04 -0.84 – 0.76 0.923 -0.07 -0.86 – 0.72 0.861
time [endline] 2.07 1.37 – 2.77 <0.001 3.20 2.33 – 4.06 <0.001
GenderChild [Male] × time
[endline]
0.09 -0.89 – 1.07 0.858 0.19 -0.77 – 1.15 0.692
ppt group [B] -0.77 -1.79 – 0.25 0.141
time [endline] × ppt
group [B]
-2.05 -3.02 – -1.08 <0.001
Random Effects
σ2 10.23 9.74
τ00 3.05 participantID:School 3.32 participantID:School
1.37 School 0.41 School
ICC 0.30 0.28
N 327 participantID 327 participantID
20 School 20 School
Observations 654 654
Marginal R2 / Conditional R2 0.071 / 0.351 0.138 / 0.377
plot(colnames(dat)[13])

# 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.79 3.46 – 4.13 <0.001 3.95 3.54 – 4.37 <0.001
GenderChild [Male] 0.23 -0.12 – 0.58 0.189 0.24 -0.11 – 0.59 0.178
time [endline] 0.94 0.64 – 1.24 <0.001 1.11 0.73 – 1.49 <0.001
GenderChild [Male] × time
[endline]
-0.28 -0.71 – 0.14 0.187 -0.27 -0.69 – 0.15 0.211
ppt group [B] -0.34 -0.86 – 0.18 0.195
time [endline] × ppt
group [B]
-0.29 -0.72 – 0.13 0.176
Random Effects
σ2 1.89 1.88
τ00 0.63 participantID:School 0.63 participantID:School
0.20 School 0.15 School
ICC 0.31 0.29
N 327 participantID 327 participantID
20 School 20 School
Observations 654 654
Marginal R2 / Conditional R2 0.058 / 0.347 0.080 / 0.351
plot(colnames(dat)[14])

# 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.60 0.56 – 0.63 <0.001
GenderChild [Male] -0.01 -0.04 – 0.02 0.374 -0.01 -0.04 – 0.02 0.411
time [endline] 0.13 0.11 – 0.15 <0.001 0.15 0.12 – 0.17 <0.001
GenderChild [Male] × time
[endline]
-0.02 -0.04 – 0.01 0.246 -0.01 -0.04 – 0.01 0.283
ppt group [B] -0.05 -0.10 – -0.01 0.019
time [endline] × ppt
group [B]
-0.02 -0.05 – 0.00 0.083
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 327 participantID 327 participantID
20 School 20 School
Observations 654 654
Marginal R2 / Conditional R2 0.160 / 0.688 0.202 / 0.690
plot(colnames(dat)[15])

# 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.14 <0.001 22.52 20.89 – 24.15 <0.001
GenderChild [Male] -1.58 -2.73 – -0.43 0.007 -1.56 -2.71 – -0.40 0.008
time [endline] 2.72 1.72 – 3.73 <0.001 2.60 1.32 – 3.88 <0.001
GenderChild [Male] × time
[endline]
0.70 -0.71 – 2.12 0.331 0.69 -0.73 – 2.11 0.340
ppt group [B] -1.22 -3.36 – 0.92 0.263
time [endline] × ppt
group [B]
0.22 -1.21 – 1.66 0.761
Random Effects
σ2 21.27 21.33
τ00 6.11 participantID:School 6.10 participantID:School
3.75 School 3.63 School
ICC 0.32 0.31
N 327 participantID 327 participantID
20 School 20 School
Observations 654 654
Marginal R2 / Conditional R2 0.082 / 0.373 0.091 / 0.376
plot(colnames(dat)[16])

# 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 4.31 3.21 – 5.42 <0.001
GenderChild [Male] -0.26 -0.87 – 0.36 0.414 -0.29 -0.89 – 0.31 0.342
time [endline] 2.59 2.02 – 3.17 <0.001 3.87 3.18 – 4.56 <0.001
GenderChild [Male] × time
[endline]
-0.39 -1.19 – 0.42 0.347 -0.27 -1.04 – 0.50 0.493
ppt group [B] -2.07 -3.59 – -0.54 0.008
time [endline] × ppt
group [B]
-2.32 -3.10 – -1.54 <0.001
Random Effects
σ2 6.90 6.26
τ00 0.86 participantID:School 1.18 participantID:School
4.93 School 2.33 School
ICC 0.46 0.36
N 327 participantID 327 participantID
20 School 20 School
Observations 654 654
Marginal R2 / Conditional R2 0.106 / 0.514 0.311 / 0.559
plot(colnames(dat)[17])

# 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.08 <0.001 12.52 10.60 – 14.45 <0.001
GenderChild [Male] -2.29 -3.56 – -1.03 <0.001 -2.26 -3.52 – -0.99 <0.001
time [endline] 5.33 4.66 – 6.00 <0.001 5.23 4.37 – 6.08 <0.001
GenderChild [Male] × time
[endline]
-0.22 -1.17 – 0.72 0.641 -0.23 -1.18 – 0.71 0.628
ppt group [B] -1.82 -4.38 – 0.74 0.162
time [endline] × ppt
group [B]
0.19 -0.76 – 1.15 0.690
Random Effects
σ2 9.46 9.49
τ00 23.24 participantID:School 23.22 participantID:School
5.85 School 5.50 School
ICC 0.75 0.75
N 327 participantID 327 participantID
20 School 20 School
Observations 654 654
Marginal R2 / Conditional R2 0.177 / 0.798 0.192 / 0.799
plot(colnames(dat)[18])

# 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 5.09 3.64 – 6.53 <0.001
GenderChild [Male] -0.59 -1.63 – 0.45 0.264 -0.59 -1.62 – 0.45 0.266
time [endline] 4.93 4.20 – 5.67 <0.001 5.88 4.96 – 6.80 <0.001
GenderChild [Male] × time
[endline]
-1.31 -2.35 – -0.28 0.013 -1.23 -2.25 – -0.21 0.019
ppt group [B] -1.43 -3.32 – 0.47 0.139
time [endline] × ppt
group [B]
-1.72 -2.75 – -0.69 0.001
Random Effects
σ2 11.35 11.02
τ00 10.84 participantID:School 11.02 participantID:School
3.98 School 2.76 School
ICC 0.57 0.56
N 327 participantID 327 participantID
20 School 20 School
Observations 654 654
Marginal R2 / Conditional R2 0.162 / 0.637 0.209 / 0.649
plot(colnames(dat)[19])

# 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.69 – 1.33 <0.001 1.12 0.70 – 1.55 <0.001
GenderChild [Male] -0.11 -0.40 – 0.18 0.461 -0.11 -0.40 – 0.19 0.477
time [endline] 1.36 1.14 – 1.58 <0.001 1.34 1.07 – 1.62 <0.001
GenderChild [Male] × time
[endline]
-0.15 -0.45 – 0.16 0.350 -0.15 -0.45 – 0.16 0.347
ppt group [B] -0.23 -0.79 – 0.34 0.431
time [endline] × ppt
group [B]
0.03 -0.28 – 0.34 0.866
Random Effects
σ2 1.00 1.00
τ00 0.77 participantID:School 0.77 participantID:School
0.25 School 0.26 School
ICC 0.51 0.51
N 327 participantID 327 participantID
20 School 20 School
Observations 654 654
Marginal R2 / Conditional R2 0.173 / 0.592 0.177 / 0.594
plot(colnames(dat)[20])

# 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.18 0.77 – 1.59 <0.001
GenderChild [Male] -0.20 -0.49 – 0.10 0.192 -0.20 -0.49 – 0.10 0.190
time [endline] 0.69 0.45 – 0.92 <0.001 0.78 0.49 – 1.08 <0.001
GenderChild [Male] × time
[endline]
0.01 -0.32 – 0.33 0.972 0.01 -0.31 – 0.34 0.928
ppt group [B] -0.12 -0.65 – 0.42 0.669
time [endline] × ppt
group [B]
-0.18 -0.51 – 0.15 0.281
Random Effects
σ2 1.11 1.11
τ00 0.70 participantID:School 0.70 participantID:School
0.21 School 0.21 School
ICC 0.45 0.45
N 327 participantID 327 participantID
20 School 20 School
Observations 654 654
Marginal R2 / Conditional R2 0.060 / 0.482 0.065 / 0.486
plot(colnames(dat)[21])

# 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.67 – 5.13 <0.001 4.91 3.94 – 5.87 <0.001
GenderChild [Male] -0.95 -1.57 – -0.33 0.003 -0.93 -1.55 – -0.31 0.003
time [endline] 2.47 2.12 – 2.82 <0.001 2.25 1.81 – 2.70 <0.001
GenderChild [Male] × time
[endline]
-0.30 -0.79 – 0.19 0.233 -0.32 -0.81 – 0.17 0.203
ppt group [B] -1.01 -2.31 – 0.28 0.126
time [endline] × ppt
group [B]
0.39 -0.10 – 0.89 0.120
Random Effects
σ2 2.57 2.56
τ00 5.26 participantID:School 5.26 participantID:School
1.52 School 1.45 School
ICC 0.72 0.72
N 327 participantID 327 participantID
20 School 20 School
Observations 654 654
Marginal R2 / Conditional R2 0.150 / 0.766 0.166 / 0.770
plot(colnames(dat)[22])

# 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.39 – 25.86 <0.001 23.62 16.77 – 30.47 <0.001
GenderChild [Male] -4.33 -8.34 – -0.32 0.034 -4.27 -8.28 – -0.25 0.037
time [endline] 19.96 17.72 – 22.21 <0.001 20.54 17.68 – 23.40 <0.001
GenderChild [Male] × time
[endline]
-4.74 -7.90 – -1.57 0.003 -4.69 -7.86 – -1.51 0.004
ppt group [B] -6.25 -15.56 – 3.05 0.187
time [endline] × ppt
group [B]
-1.05 -4.26 – 2.15 0.519
Random Effects
σ2 106.12 106.31
τ00 221.51 participantID:School 221.44 participantID:School
87.42 School 80.83 School
ICC 0.74 0.74
N 327 participantID 327 participantID
20 School 20 School
Observations 654 654
Marginal R2 / Conditional R2 0.178 / 0.790 0.200 / 0.792
plot(colnames(dat)[23])

# 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.27 34.31 – 48.23 <0.001 45.10 36.04 – 54.17 <0.001
GenderChild [Male] -8.33 -14.55 – -2.12 0.009 -8.21 -14.42 – -1.99 0.010
time [endline] 33.20 29.58 – 36.81 <0.001 34.13 29.53 – 38.72 <0.001
GenderChild [Male] × time
[endline]
-3.51 -8.60 – 1.58 0.177 -3.42 -8.52 – 1.68 0.188
ppt group [B] -7.89 -19.86 – 4.07 0.196
time [endline] × ppt
group [B]
-1.69 -6.85 – 3.47 0.519
Random Effects
σ2 274.59 275.08
τ00 516.27 participantID:School 516.04 participantID:School
126.26 School 115.35 School
ICC 0.70 0.70
N 327 participantID 327 participantID
20 School 20 School
Observations 654 654
Marginal R2 / Conditional R2 0.230 / 0.769 0.245 / 0.771
plot(colnames(dat)[24])

# 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.42 0.36 – 0.47 <0.001 0.45 0.39 – 0.52 <0.001
GenderChild [Male] -0.06 -0.10 – -0.02 0.004 -0.06 -0.10 – -0.02 0.004
time [endline] 0.20 0.18 – 0.22 <0.001 0.22 0.19 – 0.25 <0.001
GenderChild [Male] × time
[endline]
-0.02 -0.05 – 0.01 0.168 -0.02 -0.05 – 0.01 0.210
ppt group [B] -0.08 -0.17 – 0.01 0.065
time [endline] × ppt
group [B]
-0.04 -0.07 – -0.01 0.009
Random Effects
σ2 0.01 0.01
τ00 0.03 participantID:School 0.03 participantID:School
0.01 School 0.01 School
ICC 0.80 0.79
N 327 participantID 327 participantID
20 School 20 School
Observations 654 654
Marginal R2 / Conditional R2 0.187 / 0.837 0.238 / 0.841
plot(colnames(dat)[25])

# 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 B have lower attendance scores (-7.89) than children in group A. The second model shows that there is a significant relationship between total literacy score. 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 B have lower total literacy scores (averaged over baseline and endline) and children in group B improve less than children in group A. Note that this model explains a bit more variance than model 2 (.791 vs. .796) suggesting that there is a mediation effect of attendance but group also explains some unique variance. In the fourth model this is confirmed as both 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 timen x attendance and time x group. So this would lead to the conclusion that attendance is both a (partial) 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) 69.54 68.35 – 70.72 <0.001 0.25 0.21 – 0.29 <0.001 0.34 0.31 – 0.37 <0.001 0.27 0.23 – 0.31 <0.001 0.26 0.20 – 0.31 <0.001
ppt group [B] -4.10 -5.78 – -2.42 <0.001 -0.05 -0.10 – -0.01 0.022 -0.05 -0.09 – -0.01 0.022 -0.03 -0.10 – 0.05 0.481
time [endline] 0.11 0.09 – 0.13 <0.001 0.19 0.17 – 0.20 <0.001 0.14 0.11 – 0.16 <0.001 0.10 0.06 – 0.13 <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.001
time [endline] × ppt
group [B]
-0.05 -0.06 – -0.03 <0.001 -0.05 -0.06 – -0.03 <0.001 0.02 -0.02 – 0.07 0.318
Attendance × ppt group
[B]
-0.00 -0.00 – 0.00 0.501
(time [endline] ×
Attendance) × ppt group
[B]
-0.00 -0.00 – -0.00 0.002
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.75 0.75 0.75 0.75
N   1507 participantID 1507 participantID 1507 participantID 1507 participantID
  30 School 30 School 30 School 30 School
Observations 3014 3014 3014 3014 3014
R2 / R2 adjusted 0.008 / 0.007 0.148 / 0.788 0.157 / 0.793 0.178 / 0.794 0.180 / 0.795

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.50 11.01 – 11.98 <0.001 7.97 7.63 – 8.31 <0.001 5.03 4.49 – 5.57 <0.001 5.78 5.00 – 6.55 <0.001 3.95 3.28 – 4.62 <0.001 3.14 2.77 – 3.50 <0.001 0.50 0.47 – 0.52 <0.001
GenderChild [Male] 0.38 0.03 – 0.73 0.034 0.09 -0.16 – 0.34 0.503 0.21 -0.16 – 0.59 0.269 0.22 -0.36 – 0.80 0.455 0.19 -0.31 – 0.69 0.460 0.23 -0.01 – 0.47 0.062 0.02 -0.00 – 0.04 0.075
time [endline] 1.87 1.42 – 2.33 <0.001 1.08 0.72 – 1.44 <0.001 1.56 1.07 – 2.05 <0.001 2.36 1.51 – 3.21 <0.001 2.10 1.37 – 2.84 <0.001 1.36 1.00 – 1.72 <0.001 0.13 0.11 – 0.16 <0.001
ppt group [B] 0.05 -0.38 – 0.47 0.832 0.08 -0.22 – 0.38 0.597 -0.57 -1.07 – -0.07 0.025 -1.10 -1.75 – -0.44 0.001 -0.70 -1.27 – -0.13 0.016 -0.02 -0.39 – 0.34 0.893 -0.02 -0.05 – 0.01 0.137
Attendance 0.01 0.00 – 0.01 0.003 0.00 0.00 – 0.01 0.046 0.01 0.00 – 0.02 0.001 0.02 0.01 – 0.02 0.001 0.01 0.00 – 0.02 0.030 0.00 -0.00 – 0.01 0.051 0.00 0.00 – 0.00 <0.001
GenderChild [Male] × time
[endline]
-0.31 -0.67 – 0.05 0.094 -0.16 -0.45 – 0.13 0.283 -0.33 -0.72 – 0.06 0.096 -0.71 -1.38 – -0.04 0.038 0.13 -0.45 – 0.71 0.663 -0.24 -0.53 – 0.04 0.096 -0.02 -0.04 – -0.00 0.019
GenderChild [Male] × ppt
group [B]
-0.21 -0.70 – 0.29 0.415 -0.19 -0.54 – 0.17 0.297 0.09 -0.44 – 0.63 0.729 0.01 -0.81 – 0.83 0.980 0.11 -0.60 – 0.81 0.771 -0.08 -0.42 – 0.26 0.644 -0.01 -0.03 – 0.02 0.710
time [endline] × ppt
group [B]
-0.34 -0.71 – 0.03 0.071 -0.39 -0.68 – -0.10 0.009 -0.02 -0.42 – 0.37 0.913 -0.37 -1.05 – 0.32 0.294 -1.01 -1.60 – -0.42 0.001 -0.22 -0.51 – 0.07 0.142 -0.03 -0.04 – -0.01 0.007
time [endline] ×
Attendance
0.00 -0.00 – 0.01 0.560 0.00 -0.00 – 0.01 0.317 0.01 0.00 – 0.01 0.047 0.01 0.00 – 0.02 0.026 0.01 -0.00 – 0.01 0.197 -0.00 -0.00 – 0.00 0.819 0.00 -0.00 – 0.00 0.073
(GenderChild [Male] ×
time [endline]) × ppt
group [B]
0.20 -0.31 – 0.71 0.444 0.09 -0.32 – 0.50 0.658 0.00 -0.55 – 0.56 0.988 0.30 -0.65 – 1.25 0.542 -0.04 -0.87 – 0.78 0.917 0.02 -0.38 – 0.43 0.906 0.01 -0.02 – 0.03 0.644
Random Effects
σ2 3.20 2.04 3.72 11.04 8.31 2.03 0.01
τ00 2.72 participantID:School 0.99 participantID:School 3.16 participantID:School 5.32 participantID:School 3.87 participantID:School 0.78 participantID:School 0.01 participantID:School
0.11 School 0.05 School 0.20 School 0.17 School 0.13 School 0.14 School 0.00 School
ICC 0.47 0.34 0.48 0.33 0.33 0.31 0.60
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.117 / 0.531 0.082 / 0.393 0.122 / 0.539 0.131 / 0.420 0.113 / 0.401 0.099 / 0.380 0.185 / 0.670

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.03 16.57 – 19.50 <0.001 3.99 3.17 – 4.81 <0.001 6.19 4.71 – 7.68 <0.001 2.79 1.82 – 3.76 <0.001 0.47 0.18 – 0.75 0.001 0.65 0.37 – 0.94 <0.001 2.27 1.60 – 2.94 <0.001 9.65 5.54 – 13.76 <0.001 18.78 12.42 – 25.14 <0.001 0.28 0.24 – 0.33 <0.001
GenderChild [Male] -0.03 -0.91 – 0.85 0.947 -0.37 -0.78 – 0.05 0.087 -0.72 -1.64 – 0.19 0.122 0.06 -0.63 – 0.75 0.871 0.03 -0.16 – 0.21 0.773 -0.13 -0.30 – 0.05 0.154 -0.61 -1.03 – -0.19 0.004 -0.87 -3.43 – 1.69 0.504 -1.31 -5.48 – 2.86 0.538 -0.03 -0.05 – 0.00 0.086
time [endline] 4.61 3.34 – 5.88 <0.001 1.47 0.76 – 2.18 <0.001 4.98 4.13 – 5.82 <0.001 3.48 2.62 – 4.33 <0.001 0.83 0.58 – 1.09 <0.001 0.49 0.25 – 0.74 <0.001 1.18 0.76 – 1.60 <0.001 13.00 10.25 – 15.75 <0.001 30.88 26.48 – 35.27 <0.001 0.15 0.12 – 0.17 <0.001
ppt group [B] 1.27 -0.30 – 2.83 0.113 -1.57 -2.53 – -0.60 0.001 -0.69 -2.23 – 0.84 0.376 -0.80 -1.68 – 0.08 0.075 -0.13 -0.41 – 0.16 0.378 -0.17 -0.47 – 0.13 0.255 -0.62 -1.31 – 0.07 0.079 -2.55 -6.78 – 1.69 0.238 -2.83 -9.08 – 3.42 0.375 -0.05 -0.09 – -0.00 0.043
Attendance 0.02 0.01 – 0.03 0.005 -0.00 -0.01 – 0.01 0.655 0.04 0.02 – 0.05 <0.001 0.01 0.00 – 0.02 0.017 0.00 0.00 – 0.01 0.002 0.00 0.00 – 0.01 0.006 0.02 0.01 – 0.02 <0.001 0.06 0.02 – 0.11 0.002 0.15 0.08 – 0.21 <0.001 0.00 0.00 – 0.00 <0.001
GenderChild [Male] × time
[endline]
-0.65 -1.65 – 0.36 0.209 -0.06 -0.62 – 0.50 0.832 -0.19 -0.86 – 0.48 0.575 -0.55 -1.23 – 0.12 0.109 -0.28 -0.48 – -0.08 0.007 -0.04 -0.23 – 0.16 0.696 -0.14 -0.47 – 0.19 0.409 -4.64 -6.82 – -2.46 <0.001 -2.81 -6.29 – 0.68 0.114 -0.02 -0.04 – 0.00 0.071
GenderChild [Male] × ppt
group [B]
-0.31 -1.55 – 0.93 0.625 0.06 -0.54 – 0.65 0.855 -0.09 -1.38 – 1.21 0.894 -0.14 -1.12 – 0.84 0.784 -0.11 -0.37 – 0.16 0.432 -0.05 -0.29 – 0.20 0.718 0.28 -0.32 – 0.87 0.360 -1.06 -4.68 – 2.56 0.566 -2.13 -8.03 – 3.77 0.479 0.00 -0.04 – 0.04 0.952
time [endline] × ppt
group [B]
-1.95 -2.97 – -0.93 <0.001 -2.34 -2.91 – -1.77 <0.001 -0.95 -1.64 – -0.27 0.006 -1.49 -2.18 – -0.80 <0.001 -0.15 -0.36 – 0.05 0.148 -0.17 -0.37 – 0.03 0.093 0.33 -0.00 – 0.67 0.051 -4.58 -6.79 – -2.36 <0.001 -4.90 -8.44 – -1.37 0.007 -0.06 -0.08 – -0.04 <0.001
time [endline] ×
Attendance
0.00 -0.01 – 0.02 0.949 0.02 0.01 – 0.03 <0.001 0.01 -0.00 – 0.02 0.125 0.01 0.00 – 0.02 0.009 0.00 0.00 – 0.01 0.022 0.00 -0.00 – 0.01 0.163 0.01 0.00 – 0.01 0.001 0.08 0.04 – 0.11 <0.001 0.04 -0.01 – 0.09 0.161 0.00 0.00 – 0.00 <0.001
(GenderChild [Male] ×
time [endline]) × ppt
group [B]
0.74 -0.68 – 2.17 0.308 0.27 -0.53 – 1.06 0.507 0.47 -0.48 – 1.42 0.330 0.58 -0.38 – 1.54 0.236 0.32 0.03 – 0.61 0.029 0.25 -0.03 – 0.52 0.082 0.08 -0.39 – 0.54 0.747 4.70 1.62 – 7.79 0.003 3.87 -1.06 – 8.80 0.124 0.03 0.00 – 0.06 0.049
Random Effects
σ2 24.88 7.73 11.01 11.22 1.01 0.93 2.66 116.26 297.02 0.01
τ00 12.36 participantID:School 0.73 participantID:School 29.42 participantID:School 11.94 participantID:School 0.67 participantID:School 0.55 participantID:School 5.82 participantID:School 199.95 participantID:School 542.59 participantID:School 0.03 participantID:School
3.22 School 1.46 School 2.92 School 0.56 School 0.09 School 0.11 School 0.59 School 21.80 School 41.37 School 0.00 School
ICC 0.39 0.22 0.75 0.53 0.43 0.41 0.71 0.66 0.66 0.75
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 3014
Marginal R2 / Conditional R2 0.081 / 0.435 0.243 / 0.410 0.154 / 0.785 0.146 / 0.596 0.129 / 0.502 0.071 / 0.456 0.119 / 0.741 0.170 / 0.714 0.228 / 0.740 0.182 / 0.795

Wellbeing

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

wellbeing_g
  WB_total
Predictors Estimates CI p
(Intercept) 36.09 34.87 – 37.30 <0.001
GenderChild [Male] 0.13 -0.79 – 1.05 0.777
time [endline] -1.16 -2.67 – 0.36 0.135
ppt group [B] -3.54 -4.57 – -2.51 <0.001
Attendance -0.02 -0.03 – -0.00 0.023
GenderChild [Male] × time
[endline]
-0.02 -1.22 – 1.19 0.980
GenderChild [Male] × ppt
group [B]
0.65 -0.66 – 1.95 0.331
time [endline] × ppt
group [B]
0.51 -0.71 – 1.73 0.411
time [endline] ×
Attendance
0.02 0.00 – 0.04 0.023
(GenderChild [Male] ×
time [endline]) × ppt
group [B]
-0.64 -2.34 – 1.06 0.462
Random Effects
σ2 35.31
τ00 participantID:School 5.97
τ00 School 0.36
ICC 0.15
N participantID 1507
N School 30
Observations 3014
Marginal R2 / Conditional R2 0.057 / 0.200

Effect of gender in intervention group

Math

There is a main effect for total_nid for gender. Boys scored .37 higher than girls, p=.030. There are two significant interaction effects gender x time. On total_add girls improved .73 more than boys (p=.043). On the total math score, girls improved 2% more than boys (p=.013).

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.07 <0.001 6.87 6.40 – 7.33 <0.001 4.55 4.15 – 4.95 <0.001 3.40 3.13 – 3.67 <0.001 0.54 0.52 – 0.55 <0.001
GenderChild [Male] 0.37 0.03 – 0.71 0.031 0.08 -0.15 – 0.32 0.479 0.21 -0.15 – 0.57 0.252 0.22 -0.38 – 0.81 0.478 0.18 -0.38 – 0.73 0.532 0.22 -0.01 – 0.46 0.058 0.02 -0.00 – 0.04 0.067
time [endline] 1.98 1.73 – 2.24 <0.001 1.23 1.03 – 1.44 <0.001 1.97 1.71 – 2.24 <0.001 3.16 2.67 – 3.65 <0.001 2.50 2.05 – 2.95 <0.001 1.32 1.12 – 1.52 <0.001 0.15 0.14 – 0.16 <0.001
GenderChild [Male] × time
[endline]
-0.31 -0.68 – 0.06 0.097 -0.16 -0.45 – 0.14 0.290 -0.33 -0.71 – 0.04 0.082 -0.71 -1.41 – -0.01 0.047 0.13 -0.52 – 0.77 0.695 -0.24 -0.53 – 0.04 0.094 -0.02 -0.04 – -0.00 0.019
Random Effects
σ2 3.28 2.11 3.41 12.07 10.18 2.00 0.01
τ00 2.24 participantID:School 0.53 participantID:School 2.76 participantID:School 5.31 participantID:School 4.60 participantID:School 0.62 participantID:School 0.01 participantID:School
0.07 School 0.06 School 0.23 School 0.18 School 0.05 School 0.19 School 0.00 School
ICC 0.41 0.22 0.47 0.31 0.31 0.29 0.56
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.133 / 0.491 0.111 / 0.305 0.114 / 0.528 0.103 / 0.383 0.101 / 0.383 0.116 / 0.371 0.203 / 0.646

Literacy

There is one significant effect for the main effect of gender on total_wrt. Girls scores .62 higher than boys. There are two significant interaction effects gender x time. On total_com girls improved .3 more than boys, p=.005. On read_1 girls improved 4.9 more than boys, p<.001.

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.22 – 20.61 <0.001 3.89 3.22 – 4.55 <0.001 8.74 7.48 – 9.99 <0.001 3.71 3.02 – 4.39 <0.001 0.79 0.56 – 1.02 <0.001 0.92 0.70 – 1.14 <0.001 3.37 2.79 – 3.95 <0.001 14.16 10.59 – 17.74 <0.001 28.89 23.74 – 34.05 <0.001 0.35 0.31 – 0.39 <0.001
GenderChild [Male] -0.04 -0.94 – 0.86 0.924 -0.37 -0.82 – 0.08 0.106 -0.73 -1.63 – 0.17 0.113 0.06 -0.65 – 0.77 0.872 0.03 -0.17 – 0.22 0.795 -0.13 -0.31 – 0.06 0.175 -0.62 -1.04 – -0.19 0.004 -0.88 -3.60 – 1.83 0.523 -1.33 -5.53 – 2.87 0.535 -0.03 -0.06 – 0.00 0.092
time [endline] 4.64 3.88 – 5.40 <0.001 3.05 2.63 – 3.48 <0.001 5.53 5.06 – 6.00 <0.001 4.42 3.93 – 4.91 <0.001 1.08 0.94 – 1.23 <0.001 0.64 0.49 – 0.78 <0.001 1.77 1.54 – 1.99 <0.001 18.29 16.66 – 19.92 <0.001 33.49 30.94 – 36.04 <0.001 0.19 0.18 – 0.21 <0.001
GenderChild [Male] × time
[endline]
-0.65 -1.73 – 0.43 0.241 -0.06 -0.66 – 0.54 0.838 -0.19 -0.87 – 0.48 0.575 -0.55 -1.25 – 0.14 0.120 -0.28 -0.49 – -0.07 0.008 -0.04 -0.25 – 0.17 0.712 -0.14 -0.46 – 0.19 0.399 -4.64 -6.97 – -2.32 <0.001 -2.81 -6.46 – 0.83 0.130 -0.02 -0.04 – 0.00 0.081
Random Effects
σ2 28.53 8.85 11.09 11.94 1.07 1.05 2.58 132.51 324.64 0.01
τ00 10.58 participantID:School 0.83 participantID:School 28.08 participantID:School 12.63 participantID:School 0.75 participantID:School 0.62 participantID:School 6.06 participantID:School 222.82 participantID:School 526.21 participantID:School 0.03 participantID:School
4.02 School 1.34 School 4.64 School 0.87 School 0.13 School 0.12 School 0.99 School 35.90 School 70.07 School 0.00 School
ICC 0.34 0.20 0.75 0.53 0.45 0.41 0.73 0.66 0.65 0.75
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.099 / 0.404 0.174 / 0.337 0.147 / 0.784 0.146 / 0.599 0.106 / 0.510 0.054 / 0.444 0.080 / 0.754 0.148 / 0.711 0.220 / 0.725 0.162 / 0.795