library(tidyverse)
library(Hmisc)
Loading required package: lattice
Loading required package: survival
Loading required package: Formula
Registered S3 method overwritten by 'htmlwidgets':
  method           from         
  print.htmlwidget tools:rstudio
Registered S3 method overwritten by 'data.table':
  method           from
  print.data.table     

Attaching package: 㤼㸱Hmisc㤼㸲

The following objects are masked from 㤼㸱package:dplyr㤼㸲:

    src, summarize

The following objects are masked from 㤼㸱package:base㤼㸲:

    format.pval, units
library(lme4)
scot.clean <- scotland %>%
  mutate(., 
         dadunemp.fac = as_factor(dadunemp),
         daded.fac = as_factor(daded),
         momed.fac = as_factor(momed),
         male.fac = as_factor(male))

levels(scot.clean$dadunemp.fac) = c("No","Yes")
levels(scot.clean$daded.fac) = c("No","Yes")
levels(scot.clean$momed.fac) = c("No","Yes")
levels(scot.clean$male.fac) = c("No","Yes")

glimpse(scot.clean)
Rows: 2,310
Columns: 15
$ neighid      <dbl> 26, 26, 26, 26, 26, 27, 29, 29, 29, 29, 29, 29,...
$ schid        <dbl> 20, 20, 20, 20, 20, 20, 18, 20, 20, 20, 20, 20,...
$ attain       <dbl> 1.5177, -1.3276, 0.5610, 1.5177, -1.3276, -0.13...
$ p7vrq        <dbl> 17.972, -10.028, 2.972, 1.972, -1.028, 3.972, 8...
$ p7read       <dbl> 17.134, -27.866, 6.134, 11.134, -0.866, -0.866,...
$ dadocc       <dbl> 16.196, -3.454, 2.316, -9.094, -3.454, -3.454, ...
$ dadunemp     <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,...
$ daded        <dbl> 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 1,...
$ momed        <dbl> 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0,...
$ male         <dbl> 1, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 1, 0, 1, 1,...
$ deprive      <dbl> -0.551, -0.551, -0.551, -0.551, -0.551, 0.147, ...
$ dadunemp.fac <fct> No, No, No, No, No, No, No, No, No, No, No, No,...
$ daded.fac    <fct> No, No, No, No, No, No, Yes, No, No, No, No, No...
$ momed.fac    <fct> No, No, No, No, No, Yes, Yes, No, No, No, No, N...
$ male.fac     <fct> Yes, No, No, No, Yes, No, Yes, No, Yes, No, No,...
model.null.school <- lmer(p7read ~ (1|schid), REML = FALSE, data = scot.clean)
summary(model.null.school)
Linear mixed model fit by maximum likelihood . t-tests use
  Satterthwaite's method [lmerModLmerTest]
Formula: p7read ~ (1 | schid)
   Data: scot.clean

     AIC      BIC   logLik deviance df.resid 
 18558.8  18576.0  -9276.4  18552.8     2307 

Scaled residuals: 
    Min      1Q  Median      3Q     Max 
-2.7611 -0.6895 -0.0027  0.6854  2.5664 

Random effects:
 Groups   Name        Variance Std.Dev.
 schid    (Intercept)  18.75    4.33   
 Residual             176.64   13.29   
Number of obs: 2310, groups:  schid, 17

Fixed effects:
            Estimate Std. Error      df t value Pr(>|t|)
(Intercept)  -0.2912     1.0951 16.1869  -0.266    0.794
icc.school <- 18.75/(18.75+176.64)
icc.school
[1] 0.09596192
model.null.neigh <- lmer(p7read ~ (1|neighid), REML = FALSE, data = scot.clean)
summary(model.null.neigh)
Linear mixed model fit by maximum likelihood . t-tests use
  Satterthwaite's method [lmerModLmerTest]
Formula: p7read ~ (1 | neighid)
   Data: scot.clean

     AIC      BIC   logLik deviance df.resid 
 18606.3  18623.5  -9300.1  18600.3     2307 

Scaled residuals: 
     Min       1Q   Median       3Q      Max 
-2.65885 -0.67581 -0.01035  0.67042  2.51256 

Random effects:
 Groups   Name        Variance Std.Dev.
 neighid  (Intercept)  32.89    5.735  
 Residual             160.37   12.664  
Number of obs: 2310, groups:  neighid, 524

Fixed effects:
            Estimate Std. Error       df t value Pr(>|t|)
(Intercept)  -0.2407     0.3816 454.9417  -0.631    0.529
icc.neighboorhood <- 32.89 / (32.89 +  160.37)
icc.neighboorhood
[1] 0.1701852
model.null.crossed <- lmer(p7read ~ (1|schid) + (1|neighid), REML = FALSE, data = scot.clean)
summary(model.null.crossed)
Linear mixed model fit by maximum likelihood . t-tests use
  Satterthwaite's method [lmerModLmerTest]
Formula: p7read ~ (1 | schid) + (1 | neighid)
   Data: scot.clean

     AIC      BIC   logLik deviance df.resid 
 18524.9  18547.8  -9258.4  18516.9     2306 

Scaled residuals: 
     Min       1Q   Median       3Q      Max 
-2.61239 -0.66099  0.01158  0.66532  2.55698 

Random effects:
 Groups   Name        Variance Std.Dev.
 neighid  (Intercept)  17.21    4.148  
 schid    (Intercept)  16.59    4.074  
 Residual             160.36   12.663  
Number of obs: 2310, groups:  neighid, 524; schid, 17

Fixed effects:
            Estimate Std. Error      df t value Pr(>|t|)
(Intercept)  -0.3701     1.0522 16.2037  -0.352     0.73
icc.school.crossed <- 16.59 / (16.59 + 17.21 + 160.36)
icc.school.crossed
[1] 0.08544499
icc.neighborhood.crossed <- 17.21 / (17.21 + 16.59 + 160.36)
icc.neighborhood.crossed
[1] 0.08863824
model.1 <- lmer(p7read ~ daded.fac + momed.fac + (1|schid) + (1|neighid), REML = FALSE, data = scot.clean)
summary(model.1)
Linear mixed model fit by maximum likelihood . t-tests use
  Satterthwaite's method [lmerModLmerTest]
Formula: p7read ~ daded.fac + momed.fac + (1 | schid) + (1 | neighid)
   Data: scot.clean

     AIC      BIC   logLik deviance df.resid 
 18424.4  18458.9  -9206.2  18412.4     2304 

Scaled residuals: 
     Min       1Q   Median       3Q      Max 
-2.99961 -0.66409  0.01792  0.66336  2.63998 

Random effects:
 Groups   Name        Variance Std.Dev.
 neighid  (Intercept)  13.24    3.639  
 schid    (Intercept)  13.06    3.614  
 Residual             155.66   12.476  
Number of obs: 2310, groups:  neighid, 524; schid, 17

Fixed effects:
              Estimate Std. Error        df t value Pr(>|t|)    
(Intercept)    -2.1132     0.9580   17.2968  -2.206 0.041199 *  
daded.facYes    5.3704     0.7504 2286.9432   7.157 1.11e-12 ***
momed.facYes    2.4043     0.7069 2272.7606   3.401 0.000683 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Correlation of Fixed Effects:
            (Intr) ddd.fY
daded.facYs -0.083       
momed.facYs -0.110 -0.460
model.2 <- lmer(p7read ~ daded.fac + momed.fac + dadocc + (1|schid) + (1|neighid), REML = FALSE, data = scot.clean)
summary(model.2)
Linear mixed model fit by maximum likelihood . t-tests use
  Satterthwaite's method [lmerModLmerTest]
Formula: p7read ~ daded.fac + momed.fac + dadocc + (1 | schid) + (1 |  
    neighid)
   Data: scot.clean

     AIC      BIC   logLik deviance df.resid 
 18310.2  18350.5  -9148.1  18296.2     2303 

Scaled residuals: 
    Min      1Q  Median      3Q     Max 
-3.2651 -0.6765  0.0008  0.6506  2.6851 

Random effects:
 Groups   Name        Variance Std.Dev.
 neighid  (Intercept)   7.921   2.814  
 schid    (Intercept)   9.900   3.146  
 Residual             151.718  12.317  
Number of obs: 2310, groups:  neighid, 524; schid, 17

Fixed effects:
               Estimate Std. Error         df t value Pr(>|t|)    
(Intercept)    -1.38112    0.84752   17.86409  -1.630  0.12069    
daded.facYes    3.47317    0.75559 2291.80157   4.597 4.53e-06 ***
momed.facYes    1.83651    0.69334 2283.63704   2.649  0.00813 ** 
dadocc          0.26808    0.02425 2279.12078  11.057  < 2e-16 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Correlation of Fixed Effects:
            (Intr) ddd.fY mmd.fY
daded.facYs -0.107              
momed.facYs -0.127 -0.428       
dadocc       0.078 -0.242 -0.079
model.3 <- lmer(p7read ~ daded.fac + momed.fac + dadocc + deprive + (1|schid) + (1|neighid), REML = FALSE, data = scot.clean)
summary(model.3)
Linear mixed model fit by maximum likelihood . t-tests use
  Satterthwaite's method [lmerModLmerTest]
Formula: 
p7read ~ daded.fac + momed.fac + dadocc + deprive + (1 | schid) +  
    (1 | neighid)
   Data: scot.clean

     AIC      BIC   logLik deviance df.resid 
 18253.9  18299.9  -9119.0  18237.9     2302 

Scaled residuals: 
    Min      1Q  Median      3Q     Max 
-3.3799 -0.6834  0.0091  0.6557  3.1614 

Random effects:
 Groups   Name        Variance Std.Dev.
 neighid  (Intercept)   3.716   1.928  
 schid    (Intercept)   6.381   2.526  
 Residual             151.646  12.314  
Number of obs: 2310, groups:  neighid, 524; schid, 17

Fixed effects:
               Estimate Std. Error         df t value Pr(>|t|)    
(Intercept)    -1.15892    0.70581   17.75224  -1.642   0.1182    
daded.facYes    3.31275    0.74800 2300.75393   4.429 9.92e-06 ***
momed.facYes    1.66801    0.68663 2294.65484   2.429   0.0152 *  
dadocc          0.23752    0.02435 2284.76701   9.752  < 2e-16 ***
deprive        -3.84492    0.48529  408.72238  -7.923 2.22e-14 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Correlation of Fixed Effects:
            (Intr) ddd.fY mmd.fY dadocc
daded.facYs -0.128                     
momed.facYs -0.151 -0.427              
dadocc       0.085 -0.232 -0.075       
deprive     -0.033  0.039  0.032  0.197
model.4 <- lmer(p7read ~ daded.fac + momed.fac + dadocc + deprive + momed.fac:daded.fac + (1|schid) + (1|neighid), REML = FALSE, data = scot.clean)
summary(model.4)
Linear mixed model fit by maximum likelihood . t-tests use
  Satterthwaite's method [lmerModLmerTest]
Formula: 
p7read ~ daded.fac + momed.fac + dadocc + deprive + momed.fac:daded.fac +  
    (1 | schid) + (1 | neighid)
   Data: scot.clean

     AIC      BIC   logLik deviance df.resid 
 18247.3  18299.0  -9114.6  18229.3     2301 

Scaled residuals: 
    Min      1Q  Median      3Q     Max 
-3.3143 -0.6715  0.0026  0.6539  3.1707 

Random effects:
 Groups   Name        Variance Std.Dev.
 neighid  (Intercept)   3.513   1.874  
 schid    (Intercept)   6.506   2.551  
 Residual             151.222  12.297  
Number of obs: 2310, groups:  neighid, 524; schid, 17

Fixed effects:
                            Estimate Std. Error         df t value
(Intercept)                 -1.37684    0.71429   18.13613  -1.928
daded.facYes                 5.34180    1.01514 2296.98834   5.262
momed.facYes                 3.12965    0.84626 2292.70713   3.698
dadocc                       0.23530    0.02432 2284.28187   9.676
deprive                     -3.75830    0.48407  410.53776  -7.764
daded.facYes:momed.facYes   -4.24203    1.43861 2272.83105  -2.949
                          Pr(>|t|)    
(Intercept)               0.069719 .  
daded.facYes              1.56e-07 ***
momed.facYes              0.000222 ***
dadocc                     < 2e-16 ***
deprive                   6.62e-14 ***
daded.facYes:momed.facYes 0.003224 ** 
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Correlation of Fixed Effects:
            (Intr) ddd.fY mmd.fY dadocc depriv
daded.facYs -0.163                            
momed.facYs -0.181  0.143                     
dadocc       0.087 -0.192 -0.079              
deprive     -0.039  0.067  0.059  0.195       
ddd.fcYs:.Y  0.103 -0.678 -0.587  0.032 -0.057
interplot::interplot(model.4, var1 = "momed", var2 = "daded")
Error in interplot.lmerMod(model.4, var1 = "momed", var2 = "daded") : 
  The function does not support interactions between two factors.
LS0tDQp0aXRsZTogIlIgTm90ZWJvb2siDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQoNCg0KYGBge3J9DQpsaWJyYXJ5KHRpZHl2ZXJzZSkNCmxpYnJhcnkoSG1pc2MpDQpsaWJyYXJ5KGxtZTQpDQpgYGANCmBgYHtyfQ0Kc2NvdC5jbGVhbiA8LSBzY290bGFuZCAlPiUNCiAgbXV0YXRlKC4sIA0KICAgICAgICAgZGFkdW5lbXAuZmFjID0gYXNfZmFjdG9yKGRhZHVuZW1wKSwNCiAgICAgICAgIGRhZGVkLmZhYyA9IGFzX2ZhY3RvcihkYWRlZCksDQogICAgICAgICBtb21lZC5mYWMgPSBhc19mYWN0b3IobW9tZWQpLA0KICAgICAgICAgbWFsZS5mYWMgPSBhc19mYWN0b3IobWFsZSkpDQoNCmxldmVscyhzY290LmNsZWFuJGRhZHVuZW1wLmZhYykgPSBjKCJObyIsIlllcyIpDQpsZXZlbHMoc2NvdC5jbGVhbiRkYWRlZC5mYWMpID0gYygiTm8iLCJZZXMiKQ0KbGV2ZWxzKHNjb3QuY2xlYW4kbW9tZWQuZmFjKSA9IGMoIk5vIiwiWWVzIikNCmxldmVscyhzY290LmNsZWFuJG1hbGUuZmFjKSA9IGMoIk5vIiwiWWVzIikNCg0KZ2xpbXBzZShzY290LmNsZWFuKQ0KYGBgDQpgYGB7cn0NCm1vZGVsLm51bGwuc2Nob29sIDwtIGxtZXIocDdyZWFkIH4gKDF8c2NoaWQpLCBSRU1MID0gRkFMU0UsIGRhdGEgPSBzY290LmNsZWFuKQ0Kc3VtbWFyeShtb2RlbC5udWxsLnNjaG9vbCkNCmBgYA0KYGBge3J9DQppY2Muc2Nob29sIDwtIDE4Ljc1LygxOC43NSsxNzYuNjQpDQppY2Muc2Nob29sDQpgYGANCmBgYHtyfQ0KbW9kZWwubnVsbC5uZWlnaCA8LSBsbWVyKHA3cmVhZCB+ICgxfG5laWdoaWQpLCBSRU1MID0gRkFMU0UsIGRhdGEgPSBzY290LmNsZWFuKQ0Kc3VtbWFyeShtb2RlbC5udWxsLm5laWdoKQ0KYGBgDQpgYGB7cn0NCmljYy5uZWlnaGJvb3Job29kIDwtIDMyLjg5IC8gKDMyLjg5ICsgIDE2MC4zNykNCmljYy5uZWlnaGJvb3Job29kDQpgYGANCmBgYHtyfQ0KbW9kZWwubnVsbC5jcm9zc2VkIDwtIGxtZXIocDdyZWFkIH4gKDF8c2NoaWQpICsgKDF8bmVpZ2hpZCksIFJFTUwgPSBGQUxTRSwgZGF0YSA9IHNjb3QuY2xlYW4pDQpzdW1tYXJ5KG1vZGVsLm51bGwuY3Jvc3NlZCkNCmBgYA0KYGBge3J9DQppY2Muc2Nob29sLmNyb3NzZWQgPC0gMTYuNTkgLyAoMTYuNTkgKyAxNy4yMSArIDE2MC4zNikNCmljYy5zY2hvb2wuY3Jvc3NlZA0KYGBgDQpgYGB7cn0NCmljYy5uZWlnaGJvcmhvb2QuY3Jvc3NlZCA8LSAxNy4yMSAvICgxNy4yMSArIDE2LjU5ICsgMTYwLjM2KQ0KaWNjLm5laWdoYm9yaG9vZC5jcm9zc2VkDQpgYGANCmBgYHtyfQ0KbW9kZWwuMSA8LSBsbWVyKHA3cmVhZCB+IGRhZGVkLmZhYyArIG1vbWVkLmZhYyArICgxfHNjaGlkKSArICgxfG5laWdoaWQpLCBSRU1MID0gRkFMU0UsIGRhdGEgPSBzY290LmNsZWFuKQ0Kc3VtbWFyeShtb2RlbC4xKQ0KYGBgDQpgYGB7cn0NCm1vZGVsLjIgPC0gbG1lcihwN3JlYWQgfiBkYWRlZC5mYWMgKyBtb21lZC5mYWMgKyBkYWRvY2MgKyAoMXxzY2hpZCkgKyAoMXxuZWlnaGlkKSwgUkVNTCA9IEZBTFNFLCBkYXRhID0gc2NvdC5jbGVhbikNCnN1bW1hcnkobW9kZWwuMikNCmBgYA0KYGBge3J9DQptb2RlbC4zIDwtIGxtZXIocDdyZWFkIH4gZGFkZWQuZmFjICsgbW9tZWQuZmFjICsgZGFkb2NjICsgZGVwcml2ZSArICgxfHNjaGlkKSArICgxfG5laWdoaWQpLCBSRU1MID0gRkFMU0UsIGRhdGEgPSBzY290LmNsZWFuKQ0Kc3VtbWFyeShtb2RlbC4zKQ0KYGBgDQpgYGB7cn0NCm1vZGVsLjQgPC0gbG1lcihwN3JlYWQgfiBkYWRlZC5mYWMgKyBtb21lZC5mYWMgKyBkYWRvY2MgKyBkZXByaXZlICsgbW9tZWQuZmFjOmRhZGVkLmZhYyArICgxfHNjaGlkKSArICgxfG5laWdoaWQpLCBSRU1MID0gRkFMU0UsIGRhdGEgPSBzY290LmNsZWFuKQ0Kc3VtbWFyeShtb2RlbC40KQ0KYGBgDQpgYGB7cn0NCmludGVycGxvdDo6aW50ZXJwbG90KG1vZGVsLjQsIHZhcjEgPSAibW9tZWQiLCB2YXIyID0gImRhZGVkIikNCmBgYA0KDQoNCg==