library(Hmisc)
suppressPackageStartupMessages(library(psych))
suppressPackageStartupMessages(library(tidyverse))
suppressPackageStartupMessages(library(lme4))
projectCHPS <- readr::read_csv("ColonialHeightsMAPReadingScores2020.csv")
-- Column specification --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
cols(
.default = col_double(),
Virtual = col_character(),
ESLStatus = col_character(),
FedEthnicity = col_character(),
Gender = col_character()
)
i Use `spec()` for the full column specifications.
glimpse(projectCHPS)
Rows: 1,416
Columns: 20
$ StudentNumber <dbl> 2000, 1585, 2134, 1905, 2333, 1656, 1750, 2240, 2017, 1424, 2157, 1494, 2084, 2299, 2188, 2010, 2215, 2245, 1883, 2131, 2325, 2222, 1926, 2200, 2252, 2150, 2197, 2393, 2192, 2207, 2...
$ ReadingMAPScore <dbl> 140, 146, 183, 182, 168, 158, 148, 156, 151, 157, 142, 154, 150, 138, 144, 142, 151, 150, 139, 144, 141, 208, 146, 178, 153, 134, 185, 140, 149, 137, 152, 164, 166, 141, 157, 197, 1...
$ Virtual <chr> "Virtual", "Virtual", "Virtual", "Virtual", "Virtual", "Virtual", "Traditional", "Traditional", "Traditional", "Traditional", "Traditional", "Traditional", "Traditional", "Tradition...
$ Grade <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1...
$ Grade0 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0...
$ DisabilityStatus <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0...
$ ESLStatus <chr> "Non-ESL", "Non-ESL", "Non-ESL", "Non-ESL", "Non-ESL", "Non-ESL", "Non-ESL", "Non-ESL", "Non-ESL", "Non-ESL", "Non-ESL", "Non-ESL", "Non-ESL", "Non-ESL", "ESL", "ESL", "ESL", "ESL",...
$ SES <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1...
$ FedEthnicity <chr> "Non-Hispanic", "Non-Hispanic", "Non-Hispanic", "Non-Hispanic", "Non-Hispanic", "Non-Hispanic", "Non-Hispanic", "Non-Hispanic", "Non-Hispanic", "Non-Hispanic", "Non-Hispanic", "Non-...
$ Gender <chr> "M", "M", "M", "M", "M", "F", "F", "M", "F", "M", "M", "F", "M", "M", "M", "M", "M", "M", "M", "F", "M", "M", "M", "M", "M", "M", "F", "M", "M", "M", "F", "F", "F", "F", "M", "F", "...
$ TeacherID <dbl> 113, 173, 173, 173, 173, 176, 110, 110, 110, 122, 127, 144, 163, 170, 110, 160, 160, 160, 167, 167, 170, 102, 102, 159, 159, 176, 176, 122, 122, 122, 122, 144, 160, 167, 102, 102, 1...
$ School <dbl> 60, 50, 30, 30, 50, 60, 50, 50, 50, 50, 30, 60, 60, 60, 50, 50, 50, 50, 30, 30, 60, 50, 30, 50, 50, 30, 50, 50, 50, 50, 50, 60, 50, 30, 60, 60, 60, 30, 30, 60, 60, 60, 50, 60, 60, 3...
$ SchoolID <dbl> 70, 70, 70, 70, 70, 70, 50, 50, 50, 50, 30, 60, 60, 60, 50, 50, 50, 50, 30, 30, 60, 70, 70, 70, 70, 70, 70, 50, 50, 50, 50, 60, 50, 30, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 70, 7...
$ AmericanIndian <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0...
$ Asian <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0...
$ Black <dbl> 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1...
$ White <dbl> 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0...
$ PacificIslander <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0...
$ Multirace <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0...
$ StandardReadingMAPScore <dbl> -1.21446848, -0.83609485, 1.49720921, 1.43414694, 0.55127514, -0.07934758, -0.70997030, -0.20547213, -0.52078349, -0.14240986, -1.08834393, -0.33159667, -0.58384576, -1.34059302, -0...
str to Figure out the 2/1 Coding Scheme and Variable LabelsThe str function (short for structure) will show us any variables labels or values that have been attached to a variable. You can use this to find our how variables have been coded.
chps.clean <- projectCHPS %>%
mutate(.,
Virtual.fac = as_factor(Virtual),
DisabilityStatus.fac = as_factor(DisabilityStatus),
ESLStatus.fac = as_factor(ESLStatus),
SES.fac = as.factor(SES),
FedEthnicity.fac = as.factor(FedEthnicity),
Gender.fac = as.factor(Gender),
Asian.fac = as.factor(Asian),
Black.fac = as.factor(Black),
White.fac = as.factor (White),
Multirace.fac = as.factor(Multirace)
) %>%
group_by(TeacherID) %>% # Create a new variable, which is the average SWD by classroom:
mutate(.,
class_swd = mean(DisabilityStatus, na.rm = TRUE),
class_ses = mean(SES, na.rm = TRUE)
) %>%
ungroup() %>%
group_by(SchoolID) %>% # Create a new variable, which is the average SWD by school:
mutate(.,
school_swd = mean(DisabilityStatus, na.rm = TRUE),
school_ses = mean(SES, na.rm = TRUE)
) %>%
ungroup() %>%
select(.,
SchoolID,
TeacherID,
Grade,
Grade0,
ReadingMAPScore,
StandardReadingMAPScore,
Virtual.fac,
DisabilityStatus.fac,
ESLStatus.fac,
SES.fac,
FedEthnicity.fac,
Gender.fac,
Asian.fac,
Black.fac,
White.fac,
Multirace.fac,
class_swd,
school_swd,
class_ses,
school_ses)
glimpse(chps.clean)
Rows: 1,416
Columns: 20
$ SchoolID <dbl> 70, 70, 70, 70, 70, 70, 50, 50, 50, 50, 30, 60, 60, 60, 50, 50, 50, 50, 30, 30, 60, 70, 70, 70, 70, 70, 70, 50, 50, 50, 50, 60, 50, 30, 70, 70, 70, 70, 70, 70, 70, 70,...
$ TeacherID <dbl> 113, 173, 173, 173, 173, 176, 110, 110, 110, 122, 127, 144, 163, 170, 110, 160, 160, 160, 167, 167, 170, 102, 102, 159, 159, 176, 176, 122, 122, 122, 122, 144, 160, 16...
$ Grade <dbl> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,...
$ Grade0 <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,...
$ ReadingMAPScore <dbl> 140, 146, 183, 182, 168, 158, 148, 156, 151, 157, 142, 154, 150, 138, 144, 142, 151, 150, 139, 144, 141, 208, 146, 178, 153, 134, 185, 140, 149, 137, 152, 164, 166, 14...
$ StandardReadingMAPScore <dbl> -1.21446848, -0.83609485, 1.49720921, 1.43414694, 0.55127514, -0.07934758, -0.70997030, -0.20547213, -0.52078349, -0.14240986, -1.08834393, -0.33159667, -0.58384576, -...
$ Virtual.fac <fct> Virtual, Virtual, Virtual, Virtual, Virtual, Virtual, Traditional, Traditional, Traditional, Traditional, Traditional, Traditional, Traditional, Traditional, Tradition...
$ DisabilityStatus.fac <fct> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,...
$ ESLStatus.fac <fct> Non-ESL, Non-ESL, Non-ESL, Non-ESL, Non-ESL, Non-ESL, Non-ESL, Non-ESL, Non-ESL, Non-ESL, Non-ESL, Non-ESL, Non-ESL, Non-ESL, ESL, ESL, ESL, ESL, ESL, ESL, ESL, Non-ES...
$ SES.fac <fct> 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,...
$ FedEthnicity.fac <fct> Non-Hispanic, Non-Hispanic, Non-Hispanic, Non-Hispanic, Non-Hispanic, Non-Hispanic, Non-Hispanic, Non-Hispanic, Non-Hispanic, Non-Hispanic, Non-Hispanic, Non-Hispanic,...
$ Gender.fac <fct> M, M, M, M, M, F, F, M, F, M, M, F, M, M, M, M, M, M, M, F, M, M, M, M, M, M, F, M, M, M, F, F, F, F, M, F, F, F, F, M, F, M, F, M, M, M, F, M, F, F, F, M, F, F, M, F,...
$ Asian.fac <fct> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,...
$ Black.fac <fct> 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0,...
$ White.fac <fct> 1, 1, 1, 0, 0, 1, 1, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 1, 0, 1, 0, 1, 0, 1, 1, 1, 1, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1,...
$ Multirace.fac <fct> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0,...
$ class_swd <dbl> 0.16666667, 0.26315789, 0.26315789, 0.26315789, 0.26315789, 0.09090909, 0.15000000, 0.15000000, 0.15000000, 0.09090909, 0.16666667, 0.23076923, 0.36363636, 0.08333333,...
$ school_swd <dbl> 0.1518325, 0.1518325, 0.1518325, 0.1518325, 0.1518325, 0.1518325, 0.1736527, 0.1736527, 0.1736527, 0.1736527, 0.1278195, 0.1639344, 0.1639344, 0.1639344, 0.1736527, 0....
$ class_ses <dbl> 0.6666667, 0.7894737, 0.7894737, 0.7894737, 0.7894737, 0.9090909, 0.7000000, 0.7000000, 0.7000000, 0.7272727, 0.5000000, 0.4615385, 0.3636364, 0.6666667, 0.7000000, 0....
$ school_ses <dbl> 0.7382199, 0.7382199, 0.7382199, 0.7382199, 0.7382199, 0.7382199, 0.6107784, 0.6107784, 0.6107784, 0.6107784, 0.7368421, 0.4508197, 0.4508197, 0.4508197, 0.6107784, 0....
describe(chps.clean)
model.null <- lmer(StandardReadingMAPScore ~ (1|SchoolID) + (1|TeacherID), REML = FALSE, data = chps.clean)
summary(model.null)
Linear mixed model fit by maximum likelihood ['lmerMod']
Formula: StandardReadingMAPScore ~ (1 | SchoolID) + (1 | TeacherID)
Data: chps.clean
AIC BIC logLik deviance df.resid
3735.8 3756.8 -1863.9 3727.8 1412
Scaled residuals:
Min 1Q Median 3Q Max
-3.5353 -0.5848 0.0756 0.6573 4.8124
Random effects:
Groups Name Variance Std.Dev.
TeacherID (Intercept) 0.310827 0.55752
SchoolID (Intercept) 0.003911 0.06254
Residual 0.730001 0.85440
Number of obs: 1416, groups: TeacherID, 75; SchoolID, 6
Fixed effects:
Estimate Std. Error t value
(Intercept) -0.02857 0.07525 -0.38
ICC.class <- .310827/(0.310827+0.003911+0.730001)
ICC.class
[1] 0.2975164
ICC.school <- 0.003911/(0.310827+0.003911+0.730001)
ICC.school
[1] 0.003743519
model.0 <- lmer(StandardReadingMAPScore ~ (1|TeacherID), REML = FALSE, data = chps.clean)
summary(model.0)
Linear mixed model fit by maximum likelihood ['lmerMod']
Formula: StandardReadingMAPScore ~ (1 | TeacherID)
Data: chps.clean
AIC BIC logLik deviance df.resid
3734.7 3750.5 -1864.4 3728.7 1413
Scaled residuals:
Min 1Q Median 3Q Max
-3.5860 -0.5926 0.0901 0.6594 4.8119
Random effects:
Groups Name Variance Std.Dev.
TeacherID (Intercept) 0.3135 0.5599
Residual 0.7311 0.8550
Number of obs: 1416, groups: TeacherID, 75
Fixed effects:
Estimate Std. Error t value
(Intercept) -0.02764 0.06986 -0.396
ICC.class <- .3135/(.3135+.7311)
ICC.class
[1] 0.3001149
lmerTest::rand(model.0)
ANOVA-like table for random-effects: Single term deletions
Model:
StandardReadingMAPScore ~ (1 | TeacherID)
npar logLik AIC LRT Df Pr(>Chisq)
<none> 3 -1864.4 3734.7
(1 | TeacherID) 2 -2009.2 4022.4 289.72 1 < 2.2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
model.1 <- lmer(StandardReadingMAPScore ~ DisabilityStatus.fac + (1|TeacherID), REML= FALSE, data = chps.clean)
summary(model.1)
Linear mixed model fit by maximum likelihood ['lmerMod']
Formula: StandardReadingMAPScore ~ DisabilityStatus.fac + (1 | TeacherID)
Data: chps.clean
AIC BIC logLik deviance df.resid
3702.1 3723.1 -1847.0 3694.1 1412
Scaled residuals:
Min 1Q Median 3Q Max
-3.7585 -0.5853 0.0671 0.6601 4.7264
Random effects:
Groups Name Variance Std.Dev.
TeacherID (Intercept) 0.2442 0.4942
Residual 0.7209 0.8491
Number of obs: 1416, groups: TeacherID, 75
Fixed effects:
Estimate Std. Error t value
(Intercept) 0.04325 0.06380 0.678
DisabilityStatus.fac1 -0.42964 0.07124 -6.031
Correlation of Fixed Effects:
(Intr)
DsbltyStt.1 -0.177
model.2 <- lmer(StandardReadingMAPScore ~ DisabilityStatus.fac + SES.fac + (1|TeacherID), REML= FALSE, data = chps.clean)
summary(model.2)
Linear mixed model fit by maximum likelihood ['lmerMod']
Formula: StandardReadingMAPScore ~ DisabilityStatus.fac + SES.fac + (1 | TeacherID)
Data: chps.clean
AIC BIC logLik deviance df.resid
3690.4 3716.6 -1840.2 3680.4 1411
Scaled residuals:
Min 1Q Median 3Q Max
-3.9232 -0.5859 0.0671 0.6446 4.7818
Random effects:
Groups Name Variance Std.Dev.
TeacherID (Intercept) 0.2404 0.4903
Residual 0.7142 0.8451
Number of obs: 1416, groups: TeacherID, 75
Fixed effects:
Estimate Std. Error t value
(Intercept) 0.15383 0.06997 2.198
DisabilityStatus.fac1 -0.42488 0.07091 -5.992
SES.fac1 -0.18147 0.04887 -3.714
Correlation of Fixed Effects:
(Intr) DsbS.1
DsbltyStt.1 -0.152
SES.fac1 -0.425 -0.020
model.3 <- lmer(StandardReadingMAPScore ~ DisabilityStatus.fac + SES.fac + Black.fac + (1|TeacherID), REML= FALSE, data = chps.clean)
summary(model.3)
Linear mixed model fit by maximum likelihood ['lmerMod']
Formula: StandardReadingMAPScore ~ DisabilityStatus.fac + SES.fac + Black.fac + (1 | TeacherID)
Data: chps.clean
AIC BIC logLik deviance df.resid
3677.3 3708.9 -1832.7 3665.3 1410
Scaled residuals:
Min 1Q Median 3Q Max
-4.0025 -0.5925 0.0752 0.6290 4.7005
Random effects:
Groups Name Variance Std.Dev.
TeacherID (Intercept) 0.2462 0.4961
Residual 0.7055 0.8400
Number of obs: 1416, groups: TeacherID, 75
Fixed effects:
Estimate Std. Error t value
(Intercept) 0.18639 0.07091 2.629
DisabilityStatus.fac1 -0.41316 0.07058 -5.854
SES.fac1 -0.16345 0.04880 -3.349
Black.fac1 -0.22344 0.05741 -3.892
Correlation of Fixed Effects:
(Intr) DsbS.1 SES.f1
DsbltyStt.1 -0.145
SES.fac1 -0.404 -0.016
Black.fac1 -0.121 -0.034 -0.094
model.4 <- lmer(StandardReadingMAPScore ~ DisabilityStatus.fac + SES.fac + Black.fac + class_swd + (1|TeacherID), REML= FALSE, data = chps.clean)
summary(model.4)
Linear mixed model fit by maximum likelihood ['lmerMod']
Formula: StandardReadingMAPScore ~ DisabilityStatus.fac + SES.fac + Black.fac + class_swd + (1 | TeacherID)
Data: chps.clean
AIC BIC logLik deviance df.resid
3649.6 3686.3 -1817.8 3635.6 1409
Scaled residuals:
Min 1Q Median 3Q Max
-3.9527 -0.6091 0.0728 0.6340 4.7615
Random effects:
Groups Name Variance Std.Dev.
TeacherID (Intercept) 0.1625 0.4031
Residual 0.7030 0.8384
Number of obs: 1416, groups: TeacherID, 75
Fixed effects:
Estimate Std. Error t value
(Intercept) 0.40586 0.07203 5.634
DisabilityStatus.fac1 -0.32044 0.07275 -4.405
SES.fac1 -0.16332 0.04856 -3.363
Black.fac1 -0.21538 0.05707 -3.774
class_swd -1.46810 0.25289 -5.805
Correlation of Fixed Effects:
(Intr) DsbS.1 SES.f1 Blck.1
DsbltyStt.1 0.010
SES.fac1 -0.392 -0.014
Black.fac1 -0.111 -0.030 -0.098
class_swd -0.501 -0.287 -0.006 -0.013
model.5 <- lmer(StandardReadingMAPScore ~ DisabilityStatus.fac + SES.fac + Black.fac + class_swd + (class_swd|TeacherID), REML= FALSE, data = chps.clean)
summary(model.5)
Linear mixed model fit by maximum likelihood ['lmerMod']
Formula: StandardReadingMAPScore ~ DisabilityStatus.fac + SES.fac + Black.fac + class_swd + (class_swd | TeacherID)
Data: chps.clean
AIC BIC logLik deviance df.resid
3648.4 3695.7 -1815.2 3630.4 1407
Scaled residuals:
Min 1Q Median 3Q Max
-3.9636 -0.6019 0.0652 0.6340 4.7664
Random effects:
Groups Name Variance Std.Dev. Corr
TeacherID (Intercept) 0.1552 0.3939
class_swd 0.9896 0.9948 -0.49
Residual 0.7014 0.8375
Number of obs: 1416, groups: TeacherID, 75
Fixed effects:
Estimate Std. Error t value
(Intercept) 0.37723 0.07144 5.280
DisabilityStatus.fac1 -0.32034 0.07266 -4.409
SES.fac1 -0.16392 0.04847 -3.382
Black.fac1 -0.21742 0.05697 -3.816
class_swd -1.20224 0.31049 -3.872
Correlation of Fixed Effects:
(Intr) DsbS.1 SES.f1 Blck.1
DsbltyStt.1 0.010
SES.fac1 -0.393 -0.014
Black.fac1 -0.107 -0.030 -0.099
class_swd -0.530 -0.233 -0.010 -0.022
modelsummary and broom.mixed Packages to Organize Your Results:library(modelsummary)
library(broom.mixed)
models <- list(model.null, model.0, model.1, model.2, model.3, model.4, model.5)
modelsummary(models, output = "default")
| Model 1 | Model 2 | Model 3 | Model 4 | Model 5 | Model 6 | Model 7 | |
|---|---|---|---|---|---|---|---|
| (Intercept) | -0.029 | -0.028 | 0.043 | 0.154 | 0.186 | 0.406 | 0.377 |
| (0.075) | (0.070) | (0.064) | (0.070) | (0.071) | (0.072) | (0.071) | |
| TeacherID sd__(Intercept) | 0.558 | ||||||
| SchoolID sd__(Intercept) | 0.063 | ||||||
| Residual sd__Observation | 0.854 | ||||||
| sd__(Intercept) | 0.560 | 0.494 | 0.490 | 0.496 | 0.403 | 0.394 | |
| sd__Observation | 0.855 | 0.849 | 0.845 | 0.840 | 0.838 | 0.838 | |
| DisabilityStatus.fac1 | -0.430 | -0.425 | -0.413 | -0.320 | -0.320 | ||
| (0.071) | (0.071) | (0.071) | (0.073) | (0.073) | |||
| SES.fac1 | -0.181 | -0.163 | -0.163 | -0.164 | |||
| (0.049) | (0.049) | (0.049) | (0.048) | ||||
| Black.fac1 | -0.223 | -0.215 | -0.217 | ||||
| (0.057) | (0.057) | (0.057) | |||||
| class_swd | -1.468 | -1.202 | |||||
| (0.253) | (0.310) | ||||||
| cor__(Intercept).class_swd | -0.489 | ||||||
| sd__class_swd | 0.995 | ||||||
| AIC | 3735.8 | 3734.7 | 3702.1 | 3690.4 | 3677.3 | 3649.6 | 3648.4 |
| BIC | 3756.8 | 3750.5 | 3723.1 | 3716.6 | 3708.9 | 3686.3 | 3695.7 |
| Log.Lik. | -1863.895 | -1864.358 | -1847.047 | -1840.186 | -1832.665 | -1817.779 | -1815.195 |
modelsummary(models, output = 'msum.html', title = 'MLM Estimates')