For use later on.

calculate_pooled_sd <- function(sd_group1, n_group1, sd_group2, n_group2) {
  sqrt(((n_group1 - 1) * (sd_group1 ^ 2) + (n_group2 - 1) * (sd_group2 ^ 2)) / (n_group1 + n_group2 - 2))
}

# test
calculate_pooled_sd(sd_group1 = 17.85, n_group1 = 6, sd_group2 = 8.16, n_group2 = 8)
## [1] 13.09966

Mixed effects models (with gender added and variables scaled)

Somewhat final models.

library(lme4)
## Loading required package: Matrix
## 
## Attaching package: 'Matrix'
## The following object is masked from 'package:tidyr':
## 
##     expand
df <- mutate(df,
             PreUV_s = scale(PreUV_ave, center = T, scale = F),
             PreEff_s = scale(PreEff_Ave, center = T, scale = F),
             PreInt_s = scale(PreInt_Ave, center = T, scale = F),
             PreVal_s = scale(PreVal_Ave, center = T, scale = F))

# m_utility_val_lm <- lm(PostUV_ave ~ Int + PreUV_ave + Int*PreEff_Ave + ClassTeacher, data = df)
# summary(m_utility_val_lm)

m_utility_val <- lmer(PostUV_ave ~ Int + PreUV_s + Int*PreEff_s + PreInt_s + Gender + (1|ClassTeacher), data = df)

sjPlot::sjt.lmer(m_utility_val, show.se = TRUE)
## Warning in checkMatrixPackageVersion(): Package version inconsistency detected.
## TMB was built with Matrix version 1.2.10
## Current Matrix version is 1.2.11
## Please re-install 'TMB' from source or restore original 'Matrix' package
## Computing p-values via Kenward-Roger approximation. Use `p.kr = FALSE` if computation takes too long.
    PostUV_ave
    B CI std. Error p
Fixed Parts
(Intercept)   5.52 5.14 – 5.90 0.19 <.001
Int   0.44 0.04 – 0.84 0.20 .041
PreUV_s   0.43 0.27 – 0.60 0.08 <.001
PreEff_s   -0.19 -0.48 – 0.10 0.15 .216
PreInt_s   0.24 0.05 – 0.42 0.09 .017
Gender   -0.22 -0.62 – 0.18 0.20 .286
Int:PreEff_s   0.24 -0.17 – 0.65 0.21 .254
Random Parts
σ2   1.728
τ00, ClassTeacher   0.057
NClassTeacher   8
ICCClassTeacher   0.032
Observations   170
R2 / Ω02   .294 / .293
df %>% 
  group_by(Int) %>% 
  summarize(sd = sd(PostUV_ave, na.rm = T),
            n = n())
## # A tibble: 3 x 3
##     Int        sd     n
##   <int>     <dbl> <int>
## 1     0 1.6625691    90
## 2     1 1.3618003    98
## 3    NA 0.9268222    24
calculate_pooled_sd(sd_group1 = 1.36, n_group1 = 98, sd_group2 = 1.66, n_group2 = 90)
## [1] 1.510998
.438 / calculate_pooled_sd(sd_group1 = 1.36, n_group1 = 98, sd_group2 = 1.66, n_group2 = 90)
## [1] 0.2898746
m_utility_val_ni <- lmer(PostUV_ave ~ Int + PreUV_s + Int + PreEff_s + PreInt_s + Gender +  (1|ClassTeacher), data = df)

sjPlot::sjt.lmer(m_utility_val_ni, show.se = TRUE)
## Computing p-values via Kenward-Roger approximation. Use `p.kr = FALSE` if computation takes too long.
    PostUV_ave
    B CI std. Error p
Fixed Parts
(Intercept)   5.52 5.14 – 5.91 0.19 <.001
Int   0.44 0.04 – 0.84 0.20 .039
PreUV_s   0.43 0.26 – 0.59 0.08 <.001
PreEff_s   -0.09 -0.34 – 0.15 0.12 .461
PreInt_s   0.25 0.06 – 0.43 0.09 .014
Gender   -0.22 -0.62 – 0.18 0.20 .285
Random Parts
σ2   1.732
τ00, ClassTeacher   0.056
NClassTeacher   8
ICCClassTeacher   0.031
Observations   170
R2 / Ω02   .287 / .287
.443 / calculate_pooled_sd(sd_group1 = 1.36, n_group1 = 98, sd_group2 = 1.66, n_group2 = 90)
## [1] 0.2931836
# m_utility_val_ni <- lmer(PostUV_ave ~ Int + PreUV_ave + PreEff_Ave + (1|ClassTeacher), data = df)
# sjPlot::sjt.lmer(m_utility_val_ni)

m_val <- lmer(PostVal_Ave ~ Int + PreVal_s + Int*PreEff_s + PreInt_s + Gender + (1|ClassTeacher), data = df)
sjPlot::sjt.lmer(m_val, show.se = TRUE)
## Computing p-values via Kenward-Roger approximation. Use `p.kr = FALSE` if computation takes too long.
    PostVal_Ave
    B CI std. Error p
Fixed Parts
(Intercept)   5.51 5.16 – 5.85 0.18 <.001
Int   0.32 -0.01 – 0.65 0.17 .076
PreVal_s   0.46 0.26 – 0.66 0.10 <.001
PreEff_s   -0.09 -0.34 – 0.15 0.13 .465
PreInt_s   0.19 0.03 – 0.36 0.08 .036
Gender   -0.02 -0.35 – 0.31 0.17 .922
Int:PreEff_s   0.12 -0.22 – 0.46 0.17 .496
Random Parts
σ2   1.231
τ00, ClassTeacher   0.088
NClassTeacher   8
ICCClassTeacher   0.067
Observations   177
R2 / Ω02   .341 / .340
summary(m_val)
## Linear mixed model fit by REML ['lmerMod']
## Formula: 
## PostVal_Ave ~ Int + PreVal_s + Int * PreEff_s + PreInt_s + Gender +  
##     (1 | ClassTeacher)
##    Data: df
## 
## REML criterion at convergence: 556.1
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -3.4306 -0.4742  0.2630  0.6342  1.7582 
## 
## Random effects:
##  Groups       Name        Variance Std.Dev.
##  ClassTeacher (Intercept) 0.08788  0.2964  
##  Residual                 1.23117  1.1096  
## Number of obs: 177, groups:  ClassTeacher, 8
## 
## Fixed effects:
##              Estimate Std. Error t value
## (Intercept)   5.50576    0.17800  30.931
## Int           0.31717    0.16870   1.880
## PreVal_s      0.45964    0.10114   4.544
## PreEff_s     -0.09358    0.12554  -0.745
## PreInt_s      0.19154    0.08476   2.260
## Gender       -0.01683    0.16920  -0.099
## Int:PreEff_s  0.12044    0.17328   0.695
## 
## Correlation of Fixed Effects:
##             (Intr) Int    PrVl_s PrEff_ PrInt_ Gender
## Int         -0.483                                   
## PreVal_s     0.011  0.008                            
## PreEff_s     0.048 -0.030 -0.364                     
## PreInt_s    -0.052  0.043 -0.473 -0.085              
## Gender      -0.445  0.005 -0.022 -0.056  0.113       
## Int:PrEff_s -0.013 -0.028  0.004 -0.540 -0.067 -0.004
df %>% 
  group_by(Int) %>% 
  summarize(sd = sd(PostVal_Ave, na.rm = T),
            n = n())
## # A tibble: 3 x 3
##     Int        sd     n
##   <int>     <dbl> <int>
## 1     0 1.3811120    90
## 2     1 1.2636460    98
## 3    NA 0.7863987    24
calculate_pooled_sd(sd_group1 = 1.26, n_group1 = 98, sd_group2 = 1.38, n_group2 = 90)
## [1] 1.318782
.317 / calculate_pooled_sd(sd_group1 = 1.26, n_group1 = 98, sd_group2 = 1.38, n_group2 = 90)
## [1] 0.2403732
m_val_ni <- lmer(PostVal_Ave ~ Int + PreVal_s + PreEff_s + PreInt_s + Gender + (1|ClassTeacher), data = df)
sjPlot::sjt.lmer(m_val_ni, show.se = TRUE)
## Computing p-values via Kenward-Roger approximation. Use `p.kr = FALSE` if computation takes too long.
    PostVal_Ave
    B CI std. Error p
Fixed Parts
(Intercept)   5.51 5.16 – 5.86 0.18 <.001
Int   0.32 -0.01 – 0.65 0.17 .073
PreVal_s   0.46 0.26 – 0.66 0.10 <.001
PreEff_s   -0.05 -0.25 – 0.16 0.11 .665
PreInt_s   0.20 0.03 – 0.36 0.08 .032
Gender   -0.02 -0.35 – 0.31 0.17 .923
Random Parts
σ2   1.227
τ00, ClassTeacher   0.088
NClassTeacher   8
ICCClassTeacher   0.067
Observations   177
R2 / Ω02   .339 / .338
summary(m_val_ni)
## Linear mixed model fit by REML ['lmerMod']
## Formula: PostVal_Ave ~ Int + PreVal_s + PreEff_s + PreInt_s + Gender +  
##     (1 | ClassTeacher)
##    Data: df
## 
## REML criterion at convergence: 554.9
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -3.3321 -0.4861  0.2623  0.6413  1.8726 
## 
## Random effects:
##  Groups       Name        Variance Std.Dev.
##  ClassTeacher (Intercept) 0.08844  0.2974  
##  Residual                 1.22716  1.1078  
## Number of obs: 177, groups:  ClassTeacher, 8
## 
## Fixed effects:
##             Estimate Std. Error t value
## (Intercept)  5.50744    0.17800  30.941
## Int          0.32051    0.16836   1.904
## PreVal_s     0.45934    0.10098   4.549
## PreEff_s    -0.04645    0.10548  -0.440
## PreInt_s     0.19549    0.08444   2.315
## Gender      -0.01645    0.16893  -0.097
## 
## Correlation of Fixed Effects:
##          (Intr) Int    PrVl_s PrEff_ PrInt_
## Int      -0.483                            
## PreVal_s  0.011  0.008                     
## PreEff_s  0.048 -0.053 -0.430              
## PreInt_s -0.053  0.041 -0.474 -0.145       
## Gender   -0.444  0.005 -0.022 -0.069  0.113
.320 / calculate_pooled_sd(sd_group1 = 1.26, n_group1 = 98, sd_group2 = 1.38, n_group2 = 90)
## [1] 0.2426481
m_interest <- lmer(PostInt_Ave ~ Int + PreVal_s + Int*PreEff_s + PreInt_s + Gender + (1|ClassTeacher), data = df)
sjPlot::sjt.lmer(m_interest, show.se = TRUE)
## Computing p-values via Kenward-Roger approximation. Use `p.kr = FALSE` if computation takes too long.
    PostInt_Ave
    B CI std. Error p
Fixed Parts
(Intercept)   5.49 4.99 – 5.98 0.25 <.001
Int   0.02 -0.36 – 0.41 0.20 .903
PreVal_s   0.29 0.05 – 0.52 0.12 .030
PreEff_s   -0.15 -0.44 – 0.14 0.15 .337
PreInt_s   0.42 0.22 – 0.61 0.10 <.001
Gender   -0.30 -0.68 – 0.09 0.20 .155
Int:PreEff_s   0.20 -0.20 – 0.60 0.20 .336
Random Parts
σ2   1.671
τ00, ClassTeacher   0.283
NClassTeacher   8
ICCClassTeacher   0.145
Observations   177
R2 / Ω02   .372 / .371
summary(m_interest)
## Linear mixed model fit by REML ['lmerMod']
## Formula: 
## PostInt_Ave ~ Int + PreVal_s + Int * PreEff_s + PreInt_s + Gender +  
##     (1 | ClassTeacher)
##    Data: df
## 
## REML criterion at convergence: 612.3
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -3.0813 -0.4602  0.1875  0.6826  1.8974 
## 
## Random effects:
##  Groups       Name        Variance Std.Dev.
##  ClassTeacher (Intercept) 0.2832   0.5322  
##  Residual                 1.6713   1.2928  
## Number of obs: 177, groups:  ClassTeacher, 8
## 
## Fixed effects:
##              Estimate Std. Error t value
## (Intercept)   5.48659    0.25219  21.756
## Int           0.02450    0.19708   0.124
## PreVal_s      0.28567    0.11840   2.413
## PreEff_s     -0.14648    0.14740  -0.994
## PreInt_s      0.41622    0.09966   4.176
## Gender       -0.29684    0.19752  -1.503
## Int:PreEff_s  0.20144    0.20233   0.996
## 
## Correlation of Fixed Effects:
##             (Intr) Int    PrVl_s PrEff_ PrInt_ Gender
## Int         -0.396                                   
## PreVal_s     0.011  0.008                            
## PreEff_s     0.042 -0.025 -0.360                     
## PreInt_s    -0.045  0.038 -0.475 -0.090              
## Gender      -0.367  0.002 -0.024 -0.061  0.117       
## Int:PrEff_s -0.012 -0.030  0.006 -0.543 -0.065 -0.002
df %>% 
  group_by(Int) %>% 
  summarize(sd = sd(PostInt_Ave, na.rm = T),
            n = n())
## # A tibble: 3 x 3
##     Int        sd     n
##   <int>     <dbl> <int>
## 1     0 1.5395672    90
## 2     1 1.6183902    98
## 3    NA 0.8764629    24
calculate_pooled_sd(sd_group1 = 1.61, n_group1 = 98, sd_group2 = 1.53, n_group2 = 90)
## [1] 1.572228
.024 / calculate_pooled_sd(sd_group1 = 1.61, n_group1 = 98, sd_group2 = 1.53, n_group2 = 90)
## [1] 0.01526496
m_interest_ni <- lmer(PostInt_Ave ~ Int + PreVal_s + PreEff_s + PreInt_s + Gender + (1|ClassTeacher), data = df)
sjPlot::sjt.lmer(m_interest_ni, show.se = TRUE)
## Computing p-values via Kenward-Roger approximation. Use `p.kr = FALSE` if computation takes too long.
    PostInt_Ave
    B CI std. Error p
Fixed Parts
(Intercept)   5.49 5.00 – 5.98 0.25 <.001
Int   0.03 -0.36 – 0.42 0.20 .880
PreVal_s   0.28 0.05 – 0.52 0.12 .030
PreEff_s   -0.07 -0.31 – 0.18 0.12 .598
PreInt_s   0.42 0.23 – 0.62 0.10 <.001
Gender   -0.30 -0.68 – 0.09 0.20 .155
Random Parts
σ2   1.672
τ00, ClassTeacher   0.282
NClassTeacher   8
ICCClassTeacher   0.144
Observations   177
R2 / Ω02   .369 / .367
summary(m_interest_ni)
## Linear mixed model fit by REML ['lmerMod']
## Formula: PostInt_Ave ~ Int + PreVal_s + PreEff_s + PreInt_s + Gender +  
##     (1 | ClassTeacher)
##    Data: df
## 
## REML criterion at convergence: 611.9
## 
## Scaled residuals: 
##     Min      1Q  Median      3Q     Max 
## -3.1730 -0.5027  0.1919  0.6837  1.8470 
## 
## Random effects:
##  Groups       Name        Variance Std.Dev.
##  ClassTeacher (Intercept) 0.2816   0.5307  
##  Residual                 1.6716   1.2929  
## Number of obs: 177, groups:  ClassTeacher, 8
## 
## Fixed effects:
##             Estimate Std. Error t value
## (Intercept)  5.48957    0.25178  21.803
## Int          0.03027    0.19700   0.154
## PreVal_s     0.28487    0.11841   2.406
## PreEff_s    -0.06686    0.12383  -0.540
## PreInt_s     0.42278    0.09945   4.251
## Gender      -0.29647    0.19753  -1.501
## 
## Correlation of Fixed Effects:
##          (Intr) Int    PrVl_s PrEff_ PrInt_
## Int      -0.397                            
## PreVal_s  0.011  0.008                     
## PreEff_s  0.042 -0.048 -0.425              
## PreInt_s -0.046  0.036 -0.475 -0.150       
## Gender   -0.368  0.002 -0.024 -0.074  0.117
.030 / calculate_pooled_sd(sd_group1 = 1.61, n_group1 = 98, sd_group2 = 1.53, n_group2 = 90)
## [1] 0.0190812

Participant flow

df <- dplyr::select(df, -dplyr::contains("_s"))

# UTILITY VALUE

df %>%
  dplyr::filter(is.na(PreUV_ave)) # 3 students missing pre UV
##   Gender Age PreUV_all_ave PostUV_all_ave PreInt_Ave PreEff_Ave Int
## 1      1  10            NA            6.2        4.0        6.2   1
## 2      0  11            NA            2.4        4.6        4.2   1
## 3      0  11            NA            4.8        7.0        5.4   0
##   PreUV_ave PostUV_ave PostInt_Ave PreVal_Ave PostVal_Ave ClassTeacher
## 1        NA   5.666667         3.2   4.428571       5.625            0
## 2        NA   2.666667         1.2   4.000000       2.000            6
## 3        NA   5.333333         3.0   7.000000       4.750            7
df %>%
  filter(is.na(PostUV_ave)) # 20 students missing pre UV
##    Gender Age PreUV_all_ave PostUV_all_ave PreInt_Ave PreEff_Ave Int
## 1       0  11           7.0             NA       7.00        7.0   1
## 2       0  10           3.6             NA       5.60        3.2  NA
## 3       0  11           3.6             NA       4.40        6.2   1
## 4       0  11           6.8             NA       6.80        5.4   1
## 5       0  11           6.8             NA       6.40        6.4   1
## 6       1  11           7.0             NA       7.00        6.8   1
## 7       0  10           5.6             NA       6.00        5.4   0
## 8       1  11           6.4             NA       6.80        3.0  NA
## 9       1  11           5.2             NA       7.00        5.6   0
## 10      1  10            NA             NA       6.75        6.6  NA
## 11      0  10           7.0             NA       7.00        7.0   1
## 12      1  10           6.4             NA       6.60        5.8   1
## 13      0  10           7.0             NA       7.00        6.4   1
## 14      0  11           4.8             NA       6.60        5.8   0
## 15      1  10           5.4             NA       6.80        5.6   0
## 16      0  10           5.8             NA       6.40        3.6   1
## 17      1  11           6.4             NA       6.60        5.8   0
## 18      0  10           5.2             NA       5.00        2.8  NA
## 19      0  11           4.2             NA       2.25        6.2   0
## 20      0  10           2.8             NA       1.00        3.4  NA
##    PreUV_ave PostUV_ave PostInt_Ave PreVal_Ave PostVal_Ave ClassTeacher
## 1   7.000000         NA          NA   7.000000          NA            7
## 2   3.666667         NA          NA   3.500000          NA            1
## 3   3.666667         NA          NA   3.875000          NA            7
## 4   6.666667         NA         6.2   6.875000    5.000000            6
## 5   6.666667         NA          NA   6.500000          NA            5
## 6   7.000000         NA          NA   7.000000          NA            7
## 7   5.333333         NA         5.6   5.500000    5.714286            1
## 8   6.000000         NA          NA   6.375000          NA            4
## 9   4.000000         NA          NA   5.750000          NA            4
## 10  6.333333         NA          NA   6.714286          NA            0
## 11  7.000000         NA          NA   7.000000          NA            3
## 12  6.333333         NA          NA   5.750000          NA            2
## 13  7.000000         NA         7.0   7.000000    7.000000            2
## 14  5.000000         NA          NA   5.000000          NA            6
## 15  5.000000         NA          NA   5.500000          NA            0
## 16  5.000000         NA          NA   6.250000          NA            1
## 17  6.666667         NA          NA   6.500000          NA            3
## 18  5.000000         NA          NA   4.875000          NA            3
## 19  4.333333         NA         2.8   3.500000    3.428571            4
## 20  3.000000         NA          NA   2.250000          NA            3
df %>%
  filter(is.na(PreUV_ave) | is.na(PostUV_ave)) # 23 students missing either pre or post UV
##    Gender Age PreUV_all_ave PostUV_all_ave PreInt_Ave PreEff_Ave Int
## 1       1  10            NA            6.2       4.00        6.2   1
## 2       0  11           7.0             NA       7.00        7.0   1
## 3       0  10           3.6             NA       5.60        3.2  NA
## 4       0  11           3.6             NA       4.40        6.2   1
## 5       0  11            NA            2.4       4.60        4.2   1
## 6       0  11           6.8             NA       6.80        5.4   1
## 7       0  11           6.8             NA       6.40        6.4   1
## 8       1  11           7.0             NA       7.00        6.8   1
## 9       0  10           5.6             NA       6.00        5.4   0
## 10      1  11           6.4             NA       6.80        3.0  NA
## 11      0  11            NA            4.8       7.00        5.4   0
## 12      1  11           5.2             NA       7.00        5.6   0
## 13      1  10            NA             NA       6.75        6.6  NA
## 14      0  10           7.0             NA       7.00        7.0   1
## 15      1  10           6.4             NA       6.60        5.8   1
## 16      0  10           7.0             NA       7.00        6.4   1
## 17      0  11           4.8             NA       6.60        5.8   0
## 18      1  10           5.4             NA       6.80        5.6   0
## 19      0  10           5.8             NA       6.40        3.6   1
## 20      1  11           6.4             NA       6.60        5.8   0
## 21      0  10           5.2             NA       5.00        2.8  NA
## 22      0  11           4.2             NA       2.25        6.2   0
## 23      0  10           2.8             NA       1.00        3.4  NA
##    PreUV_ave PostUV_ave PostInt_Ave PreVal_Ave PostVal_Ave ClassTeacher
## 1         NA   5.666667         3.2   4.428571    5.625000            0
## 2   7.000000         NA          NA   7.000000          NA            7
## 3   3.666667         NA          NA   3.500000          NA            1
## 4   3.666667         NA          NA   3.875000          NA            7
## 5         NA   2.666667         1.2   4.000000    2.000000            6
## 6   6.666667         NA         6.2   6.875000    5.000000            6
## 7   6.666667         NA          NA   6.500000          NA            5
## 8   7.000000         NA          NA   7.000000          NA            7
## 9   5.333333         NA         5.6   5.500000    5.714286            1
## 10  6.000000         NA          NA   6.375000          NA            4
## 11        NA   5.333333         3.0   7.000000    4.750000            7
## 12  4.000000         NA          NA   5.750000          NA            4
## 13  6.333333         NA          NA   6.714286          NA            0
## 14  7.000000         NA          NA   7.000000          NA            3
## 15  6.333333         NA          NA   5.750000          NA            2
## 16  7.000000         NA         7.0   7.000000    7.000000            2
## 17  5.000000         NA          NA   5.000000          NA            6
## 18  5.000000         NA          NA   5.500000          NA            0
## 19  5.000000         NA          NA   6.250000          NA            1
## 20  6.666667         NA          NA   6.500000          NA            3
## 21  5.000000         NA          NA   4.875000          NA            3
## 22  4.333333         NA         2.8   3.500000    3.428571            4
## 23  3.000000         NA          NA   2.250000          NA            3
# VALUE

df %>%
  filter(is.na(PreVal_Ave)) # 0 students missing pre val
##  [1] Gender         Age            PreUV_all_ave  PostUV_all_ave
##  [5] PreInt_Ave     PreEff_Ave     Int            PreUV_ave     
##  [9] PostUV_ave     PostInt_Ave    PreVal_Ave     PostVal_Ave   
## [13] ClassTeacher  
## <0 rows> (or 0-length row.names)
df %>%
  filter(is.na(PostVal_Ave)) # 16 students missing pre val
##    Gender Age PreUV_all_ave PostUV_all_ave PreInt_Ave PreEff_Ave Int
## 1       0  11           7.0             NA       7.00        7.0   1
## 2       0  10           3.6             NA       5.60        3.2  NA
## 3       0  11           3.6             NA       4.40        6.2   1
## 4       0  11           6.8             NA       6.40        6.4   1
## 5       1  11           7.0             NA       7.00        6.8   1
## 6       1  11           6.4             NA       6.80        3.0  NA
## 7       1  11           5.2             NA       7.00        5.6   0
## 8       1  10            NA             NA       6.75        6.6  NA
## 9       0  10           7.0             NA       7.00        7.0   1
## 10      1  10           6.4             NA       6.60        5.8   1
## 11      0  11           4.8             NA       6.60        5.8   0
## 12      1  10           5.4             NA       6.80        5.6   0
## 13      0  10           5.8             NA       6.40        3.6   1
## 14      1  11           6.4             NA       6.60        5.8   0
## 15      0  10           5.2             NA       5.00        2.8  NA
## 16      0  10           2.8             NA       1.00        3.4  NA
##    PreUV_ave PostUV_ave PostInt_Ave PreVal_Ave PostVal_Ave ClassTeacher
## 1   7.000000         NA          NA   7.000000          NA            7
## 2   3.666667         NA          NA   3.500000          NA            1
## 3   3.666667         NA          NA   3.875000          NA            7
## 4   6.666667         NA          NA   6.500000          NA            5
## 5   7.000000         NA          NA   7.000000          NA            7
## 6   6.000000         NA          NA   6.375000          NA            4
## 7   4.000000         NA          NA   5.750000          NA            4
## 8   6.333333         NA          NA   6.714286          NA            0
## 9   7.000000         NA          NA   7.000000          NA            3
## 10  6.333333         NA          NA   5.750000          NA            2
## 11  5.000000         NA          NA   5.000000          NA            6
## 12  5.000000         NA          NA   5.500000          NA            0
## 13  5.000000         NA          NA   6.250000          NA            1
## 14  6.666667         NA          NA   6.500000          NA            3
## 15  5.000000         NA          NA   4.875000          NA            3
## 16  3.000000         NA          NA   2.250000          NA            3
df %>%
  filter(is.na(PreVal_Ave) | is.na(PostVal_Ave)) # 16 students missing either pre or post val
##    Gender Age PreUV_all_ave PostUV_all_ave PreInt_Ave PreEff_Ave Int
## 1       0  11           7.0             NA       7.00        7.0   1
## 2       0  10           3.6             NA       5.60        3.2  NA
## 3       0  11           3.6             NA       4.40        6.2   1
## 4       0  11           6.8             NA       6.40        6.4   1
## 5       1  11           7.0             NA       7.00        6.8   1
## 6       1  11           6.4             NA       6.80        3.0  NA
## 7       1  11           5.2             NA       7.00        5.6   0
## 8       1  10            NA             NA       6.75        6.6  NA
## 9       0  10           7.0             NA       7.00        7.0   1
## 10      1  10           6.4             NA       6.60        5.8   1
## 11      0  11           4.8             NA       6.60        5.8   0
## 12      1  10           5.4             NA       6.80        5.6   0
## 13      0  10           5.8             NA       6.40        3.6   1
## 14      1  11           6.4             NA       6.60        5.8   0
## 15      0  10           5.2             NA       5.00        2.8  NA
## 16      0  10           2.8             NA       1.00        3.4  NA
##    PreUV_ave PostUV_ave PostInt_Ave PreVal_Ave PostVal_Ave ClassTeacher
## 1   7.000000         NA          NA   7.000000          NA            7
## 2   3.666667         NA          NA   3.500000          NA            1
## 3   3.666667         NA          NA   3.875000          NA            7
## 4   6.666667         NA          NA   6.500000          NA            5
## 5   7.000000         NA          NA   7.000000          NA            7
## 6   6.000000         NA          NA   6.375000          NA            4
## 7   4.000000         NA          NA   5.750000          NA            4
## 8   6.333333         NA          NA   6.714286          NA            0
## 9   7.000000         NA          NA   7.000000          NA            3
## 10  6.333333         NA          NA   5.750000          NA            2
## 11  5.000000         NA          NA   5.000000          NA            6
## 12  5.000000         NA          NA   5.500000          NA            0
## 13  5.000000         NA          NA   6.250000          NA            1
## 14  6.666667         NA          NA   6.500000          NA            3
## 15  5.000000         NA          NA   4.875000          NA            3
## 16  3.000000         NA          NA   2.250000          NA            3
# INTEREST

df %>%
  filter(is.na(PreInt_Ave)) # 0 students missing pre interest
##  [1] Gender         Age            PreUV_all_ave  PostUV_all_ave
##  [5] PreInt_Ave     PreEff_Ave     Int            PreUV_ave     
##  [9] PostUV_ave     PostInt_Ave    PreVal_Ave     PostVal_Ave   
## [13] ClassTeacher  
## <0 rows> (or 0-length row.names)
df %>%
  filter(is.na(PostInt_Ave)) # 16 students missing pre int
##    Gender Age PreUV_all_ave PostUV_all_ave PreInt_Ave PreEff_Ave Int
## 1       0  11           7.0             NA       7.00        7.0   1
## 2       0  10           3.6             NA       5.60        3.2  NA
## 3       0  11           3.6             NA       4.40        6.2   1
## 4       0  11           6.8             NA       6.40        6.4   1
## 5       1  11           7.0             NA       7.00        6.8   1
## 6       1  11           6.4             NA       6.80        3.0  NA
## 7       1  11           5.2             NA       7.00        5.6   0
## 8       1  10            NA             NA       6.75        6.6  NA
## 9       0  10           7.0             NA       7.00        7.0   1
## 10      1  10           6.4             NA       6.60        5.8   1
## 11      0  11           4.8             NA       6.60        5.8   0
## 12      1  10           5.4             NA       6.80        5.6   0
## 13      0  10           5.8             NA       6.40        3.6   1
## 14      1  11           6.4             NA       6.60        5.8   0
## 15      0  10           5.2             NA       5.00        2.8  NA
## 16      0  10           2.8             NA       1.00        3.4  NA
##    PreUV_ave PostUV_ave PostInt_Ave PreVal_Ave PostVal_Ave ClassTeacher
## 1   7.000000         NA          NA   7.000000          NA            7
## 2   3.666667         NA          NA   3.500000          NA            1
## 3   3.666667         NA          NA   3.875000          NA            7
## 4   6.666667         NA          NA   6.500000          NA            5
## 5   7.000000         NA          NA   7.000000          NA            7
## 6   6.000000         NA          NA   6.375000          NA            4
## 7   4.000000         NA          NA   5.750000          NA            4
## 8   6.333333         NA          NA   6.714286          NA            0
## 9   7.000000         NA          NA   7.000000          NA            3
## 10  6.333333         NA          NA   5.750000          NA            2
## 11  5.000000         NA          NA   5.000000          NA            6
## 12  5.000000         NA          NA   5.500000          NA            0
## 13  5.000000         NA          NA   6.250000          NA            1
## 14  6.666667         NA          NA   6.500000          NA            3
## 15  5.000000         NA          NA   4.875000          NA            3
## 16  3.000000         NA          NA   2.250000          NA            3
df %>%
  filter(is.na(PreInt_Ave) | is.na(PostInt_Ave)) # 16 students missing either pre or post int
##    Gender Age PreUV_all_ave PostUV_all_ave PreInt_Ave PreEff_Ave Int
## 1       0  11           7.0             NA       7.00        7.0   1
## 2       0  10           3.6             NA       5.60        3.2  NA
## 3       0  11           3.6             NA       4.40        6.2   1
## 4       0  11           6.8             NA       6.40        6.4   1
## 5       1  11           7.0             NA       7.00        6.8   1
## 6       1  11           6.4             NA       6.80        3.0  NA
## 7       1  11           5.2             NA       7.00        5.6   0
## 8       1  10            NA             NA       6.75        6.6  NA
## 9       0  10           7.0             NA       7.00        7.0   1
## 10      1  10           6.4             NA       6.60        5.8   1
## 11      0  11           4.8             NA       6.60        5.8   0
## 12      1  10           5.4             NA       6.80        5.6   0
## 13      0  10           5.8             NA       6.40        3.6   1
## 14      1  11           6.4             NA       6.60        5.8   0
## 15      0  10           5.2             NA       5.00        2.8  NA
## 16      0  10           2.8             NA       1.00        3.4  NA
##    PreUV_ave PostUV_ave PostInt_Ave PreVal_Ave PostVal_Ave ClassTeacher
## 1   7.000000         NA          NA   7.000000          NA            7
## 2   3.666667         NA          NA   3.500000          NA            1
## 3   3.666667         NA          NA   3.875000          NA            7
## 4   6.666667         NA          NA   6.500000          NA            5
## 5   7.000000         NA          NA   7.000000          NA            7
## 6   6.000000         NA          NA   6.375000          NA            4
## 7   4.000000         NA          NA   5.750000          NA            4
## 8   6.333333         NA          NA   6.714286          NA            0
## 9   7.000000         NA          NA   7.000000          NA            3
## 10  6.333333         NA          NA   5.750000          NA            2
## 11  5.000000         NA          NA   5.000000          NA            6
## 12  5.000000         NA          NA   5.500000          NA            0
## 13  5.000000         NA          NA   6.250000          NA            1
## 14  6.666667         NA          NA   6.500000          NA            3
## 15  5.000000         NA          NA   4.875000          NA            3
## 16  3.000000         NA          NA   2.250000          NA            3
# SELF-EFFICACY

df %>% 
  filter(is.na(PreEff_Ave)) # 0 students missing pre eff ave
##  [1] Gender         Age            PreUV_all_ave  PostUV_all_ave
##  [5] PreInt_Ave     PreEff_Ave     Int            PreUV_ave     
##  [9] PostUV_ave     PostInt_Ave    PreVal_Ave     PostVal_Ave   
## [13] ClassTeacher  
## <0 rows> (or 0-length row.names)
# GENDER

df %>% 
  filter(is.na(Gender)) # 0 missing
##  [1] Gender         Age            PreUV_all_ave  PostUV_all_ave
##  [5] PreInt_Ave     PreEff_Ave     Int            PreUV_ave     
##  [9] PostUV_ave     PostInt_Ave    PreVal_Ave     PostVal_Ave   
## [13] ClassTeacher  
## <0 rows> (or 0-length row.names)
df %>% 
  filter(is.na(ClassTeacher)) # 0 missing
##  [1] Gender         Age            PreUV_all_ave  PostUV_all_ave
##  [5] PreInt_Ave     PreEff_Ave     Int            PreUV_ave     
##  [9] PostUV_ave     PostInt_Ave    PreVal_Ave     PostVal_Ave   
## [13] ClassTeacher  
## <0 rows> (or 0-length row.names)

For LIWC

library(tidyttest)

to_match <- read_csv("essays_for_matching_fin.csv")
## Parsed with column specification:
## cols(
##   name = col_character(),
##   scienceTeacher = col_integer(),
##   ClassTeacher = col_character(),
##   treatment = col_integer(),
##   text1 = col_character(),
##   text2 = col_character(),
##   text_1_and_2 = col_character()
## )
# data <- read_csv("Fall_2012_Practices_Mot_dataAll1.csv")
# 
# essays <- read_csv("UnitReviews/all_unit_reviews.csv")

df <- readr::read_csv("~/dropbox/1_research/IQWST_Motivation/data/unitreviews/all_unit_reviews_results_FINAL.csv")
## Parsed with column specification:
## cols(
##   .default = col_double(),
##   `Source (A)` = col_character(),
##   `Source (B)` = col_character(),
##   `Source (C)` = col_character(),
##   `Source (D)` = col_character(),
##   `Source (E)` = col_character(),
##   `Source (F)` = col_character(),
##   WC = col_integer()
## )
## See spec(...) for full column specifications.
df <- df[-1, ]
df <- tbl_df(dplyr::rename(df, treatment = `Source (C)`,
                           name = `Source (A)`))
df <- arrange(df, name)

# df <- rename(df, SurveyStudentID = StudentID)

# df$StudentID <- df$SurveyStudentID

# x <- dplyr::select(df, SurveyStudentID, StudentID)
# y <- dplyr::select(to_join, StudentID, ClassTeacher)
# y$EssayStudentID <- y$StudentID
# 
# y$StudentID <- stringr::str_replace(y$StudentID, "\\.", "")

dff <- bind_cols(to_match, df)

dff <- dplyr::select(dff, 
                     ClassTeacher,
                     treatment,
                     ppron, # from Canning
                     Sixltr,
                     WPS,
                     social,
                     family,
                     friend,
                     female,
                     male, # added a fourth
                     cogproc,
                     insight,
                     cause,
                     Analytic, # writing style
                     Clout,
                     Authentic,
                     Tone,
                     work, # those that we added
                     leisure)

dff <- filter(dff, ClassTeacher != "-")

na_mean <- function(x) {
  mean(x, na.rm = T)
}

dff %>% 
  group_by(treatment) %>% 
  summarize_all(na_mean) %>% 
  gather(key, val, -treatment) %>% 
  mutate(treatment = as.factor(treatment)) %>% 
  ggplot(aes(x = reorder(key,val), y = val, fill = treatment, group = treatment)) +
  geom_col(position = "dodge")
## Warning in mean.default(x, na.rm = T): argument is not numeric or logical:
## returning NA

## Warning in mean.default(x, na.rm = T): argument is not numeric or logical:
## returning NA
## Warning: Removed 2 rows containing missing values (geom_col).

#df_ss <- dplyr::select(data, StudentID, ClassTeacher)
#df <- tbl_df(df)
#df$ClassTeacher <- as.character(df$ClassTeacher)

#df
#df_ss

# left_join(df, df_ss, by = "StudentID")

# library(lme4)

Interlude: Our handy-dandy function

library(dplyr)
library(rlang)
## 
## Attaching package: 'rlang'
## The following objects are masked from 'package:purrr':
## 
##     %@%, %||%, as_function, flatten, flatten_chr, flatten_dbl,
##     flatten_int, flatten_lgl, invoke, list_along, modify, prepend,
##     rep_along, splice
## The following object is masked from 'package:tibble':
## 
##     has_name
library(broom)

calculate_pooled_sd <- function(sd_group1, n_group1, sd_group2, n_group2) {
    sqrt(((n_group1 - 1) * (sd_group1 ^ 2) + (n_group2 - 1) * (sd_group2 ^ 2)) / (n_group1 + n_group2 - 2))
}

lmer_effect <- function(df, dv, lmer_model_object, var_name) {

    quo_var_name <- rlang::enquo(var_name)
    quo_var_string <-  rlang::quo_name(quo_var_name)

    quo_dv_name <-  rlang::enquo(dv)
    quo_dv_string <-  rlang::quo_name(quo_dv_name)

    sd_n_d <- df %>%
        dplyr::group_by(!!quo_var_name) %>%
        dplyr::summarise(sd = sd(!!quo_dv_name, na.rm = T),
                         n = n())

    the_mean <- broom::tidy(lmer_model_object) %>%
        dplyr::filter(term == quo_var_string) %>%
        dplyr::pull(estimate)

    sd_group1 <- sd_n_d %>% filter(rlang::UQ(quo_var_name) == 0) %>% dplyr::pull(sd)
    sd_group2 <- sd_n_d %>% filter(rlang::UQ(quo_var_name) == 1) %>% dplyr::pull(sd)
    n_group1 <- sd_n_d %>% filter(rlang::UQ(quo_var_name) == 0) %>% dplyr::pull(n)
    n_group2 <- sd_n_d %>% filter(rlang::UQ(quo_var_name) == 1) %>% dplyr::pull(n)

    pooled_sd <- calculate_pooled_sd(sd_group1 = sd_group1, n_group1 = n_group1, sd_group2 = sd_group1, n_group2 = n_group2)
    message("Cohen's d for the selected variable is: ", round(the_mean / pooled_sd, 3))
}

# example
# library(lme4)
# sleepstudy$dichotomous_var <- rbinom(nrow(sleepstudy), 1, .5)
# fm1 <- lmer(Reaction ~ Days + dichotomous_var + (1 | Subject), sleepstudy)
# lmer_effect(df = sleepstudy, dv = Reaction, lmer_model_object = fm1, var_name = dichotomous_var)

Output for LIWC

m1 <- lmer(ppron ~ treatment + (1|ClassTeacher), data = dff) # p = .055
sjPlot::sjt.lmer(m1, show.se = TRUE)
## Computing p-values via Kenward-Roger approximation. Use `p.kr = FALSE` if computation takes too long.
    ppron
    B CI std. Error p
Fixed Parts
(Intercept)   5.32 4.25 – 6.39 0.55 <.001
treatment   1.60 0.20 – 3.00 0.71 .055
Random Parts
σ2   16.490
τ00, ClassTeacher   0.000
NClassTeacher   6
ICCClassTeacher   0.000
Observations   134
R2 / Ω02   .037 / .037
lmer_effect(dff, ppron, m1, treatment)
## Cohen's d for the selected variable is: 0.373
m1 <- lmer(Sixltr ~ treatment + (1|ClassTeacher), data = dff)
sjPlot::sjt.lmer(m1, show.se = TRUE)
## Computing p-values via Kenward-Roger approximation. Use `p.kr = FALSE` if computation takes too long.
    Sixltr
    B CI std. Error p
Fixed Parts
(Intercept)   17.20 15.59 – 18.80 0.82 <.001
treatment   -0.48 -2.57 – 1.61 1.07 .655
Random Parts
σ2   36.912
τ00, ClassTeacher   0.000
NClassTeacher   6
ICCClassTeacher   0.000
Observations   134
R2 / Ω02   .002 / .002
lmer_effect(dff, Sixltr, m1, treatment)
## Cohen's d for the selected variable is: -0.076
m1 <- lmer(WPS ~ treatment + (1|ClassTeacher), data = dff)
sjPlot::sjt.lmer(m1, show.se = TRUE)
## Computing p-values via Kenward-Roger approximation. Use `p.kr = FALSE` if computation takes too long.
    WPS
    B CI std. Error p
Fixed Parts
(Intercept)   14.56 12.95 – 16.16 0.82 <.001
treatment   1.01 -0.98 – 3.01 1.02 .334
Random Parts
σ2   32.307
τ00, ClassTeacher   0.448
NClassTeacher   6
ICCClassTeacher   0.014
Observations   134
R2 / Ω02   .034 / .026
lmer_effect(dff, WPS, m1, treatment)
## Cohen's d for the selected variable is: 0.168
m1 <- lmer(social ~ treatment + (1|ClassTeacher), data = dff)
sjPlot::sjt.lmer(m1, show.se = TRUE)
## Computing p-values via Kenward-Roger approximation. Use `p.kr = FALSE` if computation takes too long.
    social
    B CI std. Error p
Fixed Parts
(Intercept)   4.45 3.35 – 5.54 0.56 <.001
treatment   -0.04 -1.46 – 1.38 0.73 .958
Random Parts
σ2   17.060
τ00, ClassTeacher   0.005
NClassTeacher   6
ICCClassTeacher   0.000
Observations   134
R2 / Ω02   .003 / .000
lmer_effect(dff, social, m1, treatment)
## Cohen's d for the selected variable is: -0.009
m1 <- lmer(family ~ treatment + (1|ClassTeacher), data = dff) # p = .075
sjPlot::sjt.lmer(m1, show.se = TRUE)
## Computing p-values via Kenward-Roger approximation. Use `p.kr = FALSE` if computation takes too long.
    family
    B CI std. Error p
Fixed Parts
(Intercept)   0.01 -0.11 – 0.14 0.06 .825
treatment   0.15 -0.01 – 0.31 0.08 .075
Random Parts
σ2   0.218
τ00, ClassTeacher   0.000
NClassTeacher   6
ICCClassTeacher   0.000
Observations   134
R2 / Ω02   .024 / .024
lmer_effect(dff, family, m1, treatment)
## Cohen's d for the selected variable is: 1.422
m1 <- lmer(friend ~ treatment + (1|ClassTeacher), data = dff) # p = .095
sjPlot::sjt.lmer(m1, show.se = TRUE)
## Computing p-values via Kenward-Roger approximation. Use `p.kr = FALSE` if computation takes too long.
    friend
    B CI std. Error p
Fixed Parts
(Intercept)   0.18 0.05 – 0.31 0.07 .008
treatment   -0.13 -0.28 – 0.02 0.08 .095
Random Parts
σ2   0.176
τ00, ClassTeacher   0.006
NClassTeacher   6
ICCClassTeacher   0.034
Observations   134
R2 / Ω02   .071 / .064
lmer_effect(dff, friend, m1, treatment)
## Cohen's d for the selected variable is: -0.214
m1 <- lmer(female ~ treatment + (1|ClassTeacher), data = dff)
sjPlot::sjt.lmer(m1, show.se = TRUE)
## Computing p-values via Kenward-Roger approximation. Use `p.kr = FALSE` if computation takes too long.
    female
    B CI std. Error p
Fixed Parts
(Intercept)   0.03 -0.09 – 0.15 0.06 .659
treatment   0.08 -0.07 – 0.24 0.08 .292
Random Parts
σ2   0.206
τ00, ClassTeacher   0.000
NClassTeacher   6
ICCClassTeacher   0.000
Observations   134
R2 / Ω02   .008 / .008
lmer_effect(dff, female, m1, treatment)
## Cohen's d for the selected variable is: 0.421
m1 <- lmer(male ~ treatment + (1|ClassTeacher), data = dff)
sjPlot::sjt.lmer(m1, show.se = TRUE)
## Computing p-values via Kenward-Roger approximation. Use `p.kr = FALSE` if computation takes too long.
    male
    B CI std. Error p
Fixed Parts
(Intercept)   -0.00 -0.14 – 0.14 0.07 .986
treatment   0.09 -0.08 – 0.26 0.09 .304
Random Parts
σ2   0.235
τ00, ClassTeacher   0.003
NClassTeacher   6
ICCClassTeacher   0.013
Observations   134
R2 / Ω02   .033 / .026
lmer_effect(dff, male, m1, treatment)
## Cohen's d for the selected variable is: Inf
m1 <- lmer(cogproc ~ treatment + (1|ClassTeacher), data = dff) # p = .028
sjPlot::sjt.lmer(m1, show.se = TRUE)
## Computing p-values via Kenward-Roger approximation. Use `p.kr = FALSE` if computation takes too long.
    cogproc
    B CI std. Error p
Fixed Parts
(Intercept)   9.27 7.56 – 10.98 0.87 <.001
treatment   2.81 0.84 – 4.77 1.00 .028
Random Parts
σ2   30.604
τ00, ClassTeacher   1.148
NClassTeacher   6
ICCClassTeacher   0.036
Observations   134
R2 / Ω02   .111 / .108
lmer_effect(dff, cogproc, m1, treatment)
## Cohen's d for the selected variable is: 0.501
m1 <- lmer(insight ~ treatment + (1|ClassTeacher), data = dff) # p = .053
sjPlot::sjt.lmer(m1, show.se = TRUE)
## Computing p-values via Kenward-Roger approximation. Use `p.kr = FALSE` if computation takes too long.
    insight
    B CI std. Error p
Fixed Parts
(Intercept)   1.63 1.05 – 2.20 0.30 .004
treatment   1.00 0.25 – 1.76 0.38 .053
Random Parts
σ2   4.798
τ00, ClassTeacher   0.000
NClassTeacher   6
ICCClassTeacher   0.000
Observations   134
R2 / Ω02   .049 / .049
lmer_effect(dff, insight, m1, treatment)
## Cohen's d for the selected variable is: 0.551
m1 <- lmer(cause ~ treatment + (1|ClassTeacher), data = dff)
sjPlot::sjt.lmer(m1, show.se = TRUE)
## Computing p-values via Kenward-Roger approximation. Use `p.kr = FALSE` if computation takes too long.
    cause
    B CI std. Error p
Fixed Parts
(Intercept)   2.89 2.19 – 3.59 0.36 <.001
treatment   0.55 -0.35 – 1.46 0.46 .256
Random Parts
σ2   6.954
τ00, ClassTeacher   0.000
NClassTeacher   6
ICCClassTeacher   0.000
Observations   134
R2 / Ω02   .011 / .011
lmer_effect(dff, cause, m1, treatment)
## Cohen's d for the selected variable is: 0.194
m1 <- lmer(Analytic ~ treatment + (1|ClassTeacher), data = dff)
sjPlot::sjt.lmer(m1, show.se = TRUE)
## Computing p-values via Kenward-Roger approximation. Use `p.kr = FALSE` if computation takes too long.
    Analytic
    B CI std. Error p
Fixed Parts
(Intercept)   65.71 58.47 – 72.94 3.69 <.001
treatment   -7.15 -16.57 – 2.27 4.81 .148
Random Parts
σ2   749.241
τ00, ClassTeacher   0.000
NClassTeacher   6
ICCClassTeacher   0.000
Observations   134
R2 / Ω02   .016 / .016
lmer_effect(dff, Analytic, m1, treatment)
## Cohen's d for the selected variable is: -0.256
m1 <- lmer(Clout ~ treatment + (1|ClassTeacher), data = dff)
sjPlot::sjt.lmer(m1, show.se = TRUE)
## Computing p-values via Kenward-Roger approximation. Use `p.kr = FALSE` if computation takes too long.
    Clout
    B CI std. Error p
Fixed Parts
(Intercept)   50.80 43.99 – 57.61 3.47 <.001
treatment   -7.46 -16.33 – 1.41 4.53 .110
Random Parts
σ2   664.119
τ00, ClassTeacher   0.000
NClassTeacher   6
ICCClassTeacher   0.000
Observations   134
R2 / Ω02   .020 / .020
lmer_effect(dff, Clout, m1, treatment)
## Cohen's d for the selected variable is: -0.327
m1 <- lmer(Authentic ~ treatment + (1|ClassTeacher), data = dff)
sjPlot::sjt.lmer(m1, show.se = TRUE)
## Computing p-values via Kenward-Roger approximation. Use `p.kr = FALSE` if computation takes too long.
    Authentic
    B CI std. Error p
Fixed Parts
(Intercept)   66.74 58.33 – 75.14 4.29 <.001
treatment   -0.47 -11.42 – 10.47 5.58 .933
Random Parts
σ2   1011.110
τ00, ClassTeacher   0.000
NClassTeacher   6
ICCClassTeacher   0.000
Observations   134
R2 / Ω02   .000 / .000
lmer_effect(dff, Authentic, m1, treatment)
## Cohen's d for the selected variable is: -0.016
m1 <- lmer(Tone ~ treatment + (1|ClassTeacher), data = dff)
sjPlot::sjt.lmer(m1, show.se = TRUE)
## Computing p-values via Kenward-Roger approximation. Use `p.kr = FALSE` if computation takes too long.
    Tone
    B CI std. Error p
Fixed Parts
(Intercept)   38.41 31.33 – 45.50 3.61 <.001
treatment   3.77 -5.36 – 12.91 4.66 .431
Random Parts
σ2   698.080
τ00, ClassTeacher   1.930
NClassTeacher   6
ICCClassTeacher   0.003
Observations   134
R2 / Ω02   .011 / .010
lmer_effect(dff, Tone, m1, treatment)
## Cohen's d for the selected variable is: 0.155
m1 <- lmer(work ~ treatment + (1|ClassTeacher), data = dff) # p = .103
sjPlot::sjt.lmer(m1, show.se = TRUE)
## Computing p-values via Kenward-Roger approximation. Use `p.kr = FALSE` if computation takes too long.
    work
    B CI std. Error p
Fixed Parts
(Intercept)   1.15 0.34 – 1.97 0.42 .034
treatment   0.91 -0.01 – 1.84 0.47 .103
Random Parts
σ2   6.699
τ00, ClassTeacher   0.289
NClassTeacher   6
ICCClassTeacher   0.041
Observations   134
R2 / Ω02   .078 / .069
lmer_effect(dff, work, m1, treatment)
## Cohen's d for the selected variable is: 0.513
m1 <- lmer(leisure ~ treatment + (1|ClassTeacher), data = dff)
sjPlot::sjt.lmer(m1, show.se = TRUE)
## Computing p-values via Kenward-Roger approximation. Use `p.kr = FALSE` if computation takes too long.
    leisure
    B CI std. Error p
Fixed Parts
(Intercept)   0.31 -0.07 – 0.70 0.20 .137
treatment   -0.02 -0.38 – 0.35 0.19 .933
Random Parts
σ2   1.018
τ00, ClassTeacher   0.115
NClassTeacher   6
ICCClassTeacher   0.102
Observations   134
R2 / Ω02   .125 / .116
lmer_effect(dff, leisure, m1, treatment)
## Cohen's d for the selected variable is: -0.018