This is an R Markdown Notebook. When you execute code within the notebook, the results appear beneath the code.
Try executing this chunk by clicking the Run button within the chunk or by placing your cursor inside it and pressing Ctrl+Shift+Enter.
suppressPackageStartupMessages(library(tidyverse))
suppressPackageStartupMessages(library(lme4))
projectSTAR <- haven::read_dta("projectSTAR.dta")
glimpse(projectSTAR)
str(projectSTAR)
star.clean <- projectSTAR %>%
mutate(.,
schoolid = gkschid,
classid = gktchid,
math = gktmathss,
classtype = as_factor(gkclasstype),
degree = as_factor(gkthighdegree),
self_concept = gkselfconcraw
) %>%
group_by(schoolid) %>%
mutate(.,
schoolmath = mean(math, na.rm = TRUE) - 1
) %>%
ungroup()%>%
select(.,
schoolid,
classid,
math,
classtype,
degree,
self_concept,
schoolmath)
glimpse(star.clean)
- Run and interpret a null model with math scores gktmathss as the DV, with students clustered within classrooms and schools. How much variation in math scores is at the teacher level? The school level? Which level demonstrates more variability? And how much variability remains at the student level?
model.0 <- lmer(math ~ (1|schoolid) + (1|classid), REML = FALSE, data = star.clean)
summary(model.0)
ICC.class <- 287.6/(287.6 + 381.9 + 1612.4)
ICC.class
ICC.school <- 381.9/(287.6 + 381.9 + 1612.4)
ICC.school
12.6% of the variability in math scores is at the teacher level. 16.7% of the variability in math scores is at the school level. 70.7 of the variability in math scores is at the student level. The student level demonstrates the most variability and then the school level does.
- Now, run a conditional random intercept model with math scores (gktmathss) as the DV, and self-concept (gkselfconcraw) as a student-level IV, classroom type (gkclasstype) and teacher highest degree (gkthighdegree) as teacher-level IVs, and school average math scores as a school level IV. (Hint- you will need to calculate the last one using the procedures I demonstrated in the videos). Interpret the results and evaluate model fit using AIC/BIC and your choice of effect size.
model.1 <- lmer(math ~ self_concept + classtype + degree + schoolmath + (1|schoolid) + (1|classid), REML = FALSE, data = star.clean)
summary(model.1)
The AIC and BIC have improved. AIC went from 60618.8 to 48768.2 and BIC 60645.5 to 48839.3. I’m wondering why for schoolid I got 0 for their random effect. I don’t think I am calculating the effect size correctly, I used the same excel spreadsheet as we did with the two level modeling. I somehow got negative numbers???
- Try adding a random slope for self-concept gkselfconcraw at both the teacher and school levels. You can do this as two separate models- one with the random slope at the teacher level, and one with the random slope at the school level. What do these random slopes “mean”? Use AIC/BIC to evaluate whether the slopes should be treated as random.
model.2 <- lmer(math ~ self_concept + classtype + degree + schoolmath + (self_concept|schoolid) + (1|classid), REML = FALSE, data = star.clean)
summary(model.2)
model.3 <- lmer(math ~ self_concept + classtype + degree + schoolmath + (1|schoolid) + (self_concept|classid), REML = FALSE, data = star.clean)
summary(model.3)
Adding a random slope for self-concept at the class level means were allowing self-concept to function differently for different class clusters. Adding a random slope for self-concept at the school level means were allowing self-concept to function differently for different school clusters. The BIC and AIC do not change if it is at the class level or the school level, meaning it isn’t random(?) ```
LS0tDQp0aXRsZTogIlIgTm90ZWJvb2siDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQpUaGlzIGlzIGFuIFtSIE1hcmtkb3duXShodHRwOi8vcm1hcmtkb3duLnJzdHVkaW8uY29tKSBOb3RlYm9vay4gV2hlbiB5b3UgZXhlY3V0ZSBjb2RlIHdpdGhpbiB0aGUgbm90ZWJvb2ssIHRoZSByZXN1bHRzIGFwcGVhciBiZW5lYXRoIHRoZSBjb2RlLiANCg0KVHJ5IGV4ZWN1dGluZyB0aGlzIGNodW5rIGJ5IGNsaWNraW5nIHRoZSAqUnVuKiBidXR0b24gd2l0aGluIHRoZSBjaHVuayBvciBieSBwbGFjaW5nIHlvdXIgY3Vyc29yIGluc2lkZSBpdCBhbmQgcHJlc3NpbmcgKkN0cmwrU2hpZnQrRW50ZXIqLiANCi0tLQ0KDQoNCmBgYHtyfQ0Kc3VwcHJlc3NQYWNrYWdlU3RhcnR1cE1lc3NhZ2VzKGxpYnJhcnkodGlkeXZlcnNlKSkNCnN1cHByZXNzUGFja2FnZVN0YXJ0dXBNZXNzYWdlcyhsaWJyYXJ5KGxtZTQpKQ0KYGBgDQoNCg0KYGBge3J9DQoNCnByb2plY3RTVEFSIDwtIGhhdmVuOjpyZWFkX2R0YSgicHJvamVjdFNUQVIuZHRhIikNCmdsaW1wc2UocHJvamVjdFNUQVIpDQoNCmBgYA0KDQoNCmBgYHtyfQ0Kc3RyKHByb2plY3RTVEFSKQ0KDQpgYGANCg0KDQpgYGB7cn0NCnN0YXIuY2xlYW4gPC0gcHJvamVjdFNUQVIgJT4lDQogIG11dGF0ZSguLA0KICAgICAgICAgc2Nob29saWQgPSBna3NjaGlkLA0KICAgICAgICAgY2xhc3NpZCA9IGdrdGNoaWQsDQogICAgICAgICBtYXRoID0gZ2t0bWF0aHNzLA0KICAgICAgICAgY2xhc3N0eXBlID0gYXNfZmFjdG9yKGdrY2xhc3N0eXBlKSwNCiAgICAgICAgIGRlZ3JlZSA9IGFzX2ZhY3Rvcihna3RoaWdoZGVncmVlKSwNCiAgICAgICAgc2VsZl9jb25jZXB0ID0gZ2tzZWxmY29uY3Jhdw0KICAgICAgICAgKSAlPiUNCiAgZ3JvdXBfYnkoc2Nob29saWQpICU+JSANCiAgbXV0YXRlKC4sDQogICAgICAgICAgICBzY2hvb2xtYXRoID0gbWVhbihtYXRoLCBuYS5ybSA9IFRSVUUpIC0gMQ0KICAgICAgICAgKSAlPiUNCiAgdW5ncm91cCgpJT4lIA0KICBzZWxlY3QoLiwNCiAgICAgICAgIHNjaG9vbGlkLA0KICAgICAgICAgY2xhc3NpZCwNCiAgICAgICAgIG1hdGgsDQogICAgICAgICBjbGFzc3R5cGUsDQogICAgICAgICBkZWdyZWUsDQogICAgICAgICBzZWxmX2NvbmNlcHQsDQogICAgICAgICBzY2hvb2xtYXRoKQ0KDQpnbGltcHNlKHN0YXIuY2xlYW4pICANCmBgYA0KMS4gUnVuIGFuZCBpbnRlcnByZXQgYSBudWxsIG1vZGVsIHdpdGggbWF0aCBzY29yZXMgZ2t0bWF0aHNzIGFzIHRoZSBEViwgd2l0aCBzdHVkZW50cyBjbHVzdGVyZWQgd2l0aGluIGNsYXNzcm9vbXMgYW5kIHNjaG9vbHMuIEhvdyBtdWNoIHZhcmlhdGlvbiBpbiBtYXRoIHNjb3JlcyBpcyBhdCB0aGUgdGVhY2hlciBsZXZlbD8gVGhlIHNjaG9vbCBsZXZlbD8gV2hpY2ggbGV2ZWwgZGVtb25zdHJhdGVzIG1vcmUgdmFyaWFiaWxpdHk/IEFuZCBob3cgbXVjaCB2YXJpYWJpbGl0eSByZW1haW5zIGF0IHRoZSBzdHVkZW50IGxldmVsPw0KDQoNCmBgYHtyfQ0KDQptb2RlbC4wIDwtIGxtZXIobWF0aCB+ICgxfHNjaG9vbGlkKSArICgxfGNsYXNzaWQpLCBSRU1MID0gRkFMU0UsIGRhdGEgPSBzdGFyLmNsZWFuKQ0Kc3VtbWFyeShtb2RlbC4wKQ0KDQpgYGANCg0KYGBge3J9DQoNCklDQy5jbGFzcyA8LSAyODcuNi8oMjg3LjYgKyAzODEuOSArIDE2MTIuNCkNCklDQy5jbGFzcw0KDQpgYGANCg0KYGBge3J9DQoNCklDQy5zY2hvb2wgPC0gMzgxLjkvKDI4Ny42ICsgMzgxLjkgKyAxNjEyLjQpDQpJQ0Muc2Nob29sDQoNCmBgYA0KMTIuNiUgb2YgdGhlIHZhcmlhYmlsaXR5IGluIG1hdGggc2NvcmVzIGlzIGF0IHRoZSB0ZWFjaGVyIGxldmVsLiAxNi43JSBvZiB0aGUgdmFyaWFiaWxpdHkgaW4gbWF0aCBzY29yZXMgaXMgYXQgdGhlIHNjaG9vbCBsZXZlbC4gNzAuNyBvZiB0aGUgdmFyaWFiaWxpdHkgaW4gbWF0aCBzY29yZXMgaXMgYXQgdGhlIHN0dWRlbnQgbGV2ZWwuIFRoZSBzdHVkZW50IGxldmVsIGRlbW9uc3RyYXRlcyB0aGUgbW9zdCB2YXJpYWJpbGl0eSBhbmQgdGhlbiB0aGUgc2Nob29sIGxldmVsIGRvZXMuIA0KDQoyLiBOb3csIHJ1biBhIGNvbmRpdGlvbmFsIHJhbmRvbSBpbnRlcmNlcHQgbW9kZWwgd2l0aCBtYXRoIHNjb3JlcyAoZ2t0bWF0aHNzKSBhcyB0aGUgRFYsIGFuZCBzZWxmLWNvbmNlcHQgKGdrc2VsZmNvbmNyYXcpIGFzIGEgc3R1ZGVudC1sZXZlbCBJViwgY2xhc3Nyb29tIHR5cGUgKGdrY2xhc3N0eXBlKSBhbmQgdGVhY2hlciBoaWdoZXN0IGRlZ3JlZSAoZ2t0aGlnaGRlZ3JlZSkgYXMgdGVhY2hlci1sZXZlbCBJVnMsIGFuZCBzY2hvb2wgYXZlcmFnZSBtYXRoIHNjb3JlcyBhcyBhIHNjaG9vbCBsZXZlbCBJVi4gKEhpbnQtIHlvdSB3aWxsIG5lZWQgdG8gY2FsY3VsYXRlIHRoZSBsYXN0IG9uZSB1c2luZyB0aGUgcHJvY2VkdXJlcyBJIGRlbW9uc3RyYXRlZCBpbiB0aGUgdmlkZW9zKS4gSW50ZXJwcmV0IHRoZSByZXN1bHRzIGFuZCBldmFsdWF0ZSBtb2RlbCBmaXQgdXNpbmcgQUlDL0JJQyBhbmQgeW91ciBjaG9pY2Ugb2YgZWZmZWN0IHNpemUuDQpgYGB7cn0NCg0KbW9kZWwuMSA8LSBsbWVyKG1hdGggfiBzZWxmX2NvbmNlcHQgKyBjbGFzc3R5cGUgKyBkZWdyZWUgKyBzY2hvb2xtYXRoICsgKDF8c2Nob29saWQpICsgKDF8Y2xhc3NpZCksIFJFTUwgPSBGQUxTRSwgZGF0YSA9IHN0YXIuY2xlYW4pDQpzdW1tYXJ5KG1vZGVsLjEpDQoNCmBgYA0KVGhlIEFJQyBhbmQgQklDIGhhdmUgaW1wcm92ZWQuIEFJQyB3ZW50IGZyb20gNjA2MTguOCB0byA0ODc2OC4yIGFuZCBCSUMgNjA2NDUuNSB0byA0ODgzOS4zLiBJJ20gd29uZGVyaW5nIHdoeSBmb3Igc2Nob29saWQgSSBnb3QgMCBmb3IgdGhlaXIgcmFuZG9tIGVmZmVjdC4gSSBkb24ndCB0aGluayBJIGFtIGNhbGN1bGF0aW5nIHRoZSBlZmZlY3Qgc2l6ZSBjb3JyZWN0bHksIEkgdXNlZCB0aGUgc2FtZSBleGNlbCBzcHJlYWRzaGVldCBhcyB3ZSBkaWQgd2l0aCB0aGUgdHdvIGxldmVsIG1vZGVsaW5nLiBJIHNvbWVob3cgZ290IG5lZ2F0aXZlIG51bWJlcnM/Pz8NCg0KMy4gVHJ5IGFkZGluZyBhIHJhbmRvbSBzbG9wZSBmb3Igc2VsZi1jb25jZXB0IGdrc2VsZmNvbmNyYXcgYXQgYm90aCB0aGUgdGVhY2hlciBhbmQgc2Nob29sIGxldmVscy4gWW91IGNhbiBkbyB0aGlzIGFzIHR3byBzZXBhcmF0ZSBtb2RlbHMtIG9uZSB3aXRoIHRoZSByYW5kb20gc2xvcGUgYXQgdGhlIHRlYWNoZXIgbGV2ZWwsIGFuZCBvbmUgd2l0aCB0aGUgcmFuZG9tIHNsb3BlIGF0IHRoZSBzY2hvb2wgbGV2ZWwuIFdoYXQgZG8gdGhlc2UgcmFuZG9tIHNsb3BlcyDigJxtZWFu4oCdPyBVc2UgQUlDL0JJQyB0byBldmFsdWF0ZSB3aGV0aGVyIHRoZSBzbG9wZXMgc2hvdWxkIGJlIHRyZWF0ZWQgYXMgcmFuZG9tLg0KYGBge3J9DQptb2RlbC4yIDwtIGxtZXIobWF0aCB+IHNlbGZfY29uY2VwdCArIGNsYXNzdHlwZSArIGRlZ3JlZSArIHNjaG9vbG1hdGggKyAoc2VsZl9jb25jZXB0fHNjaG9vbGlkKSArICgxfGNsYXNzaWQpLCBSRU1MID0gRkFMU0UsIGRhdGEgPSBzdGFyLmNsZWFuKQ0Kc3VtbWFyeShtb2RlbC4yKQ0KYGBgDQpgYGB7cn0NCm1vZGVsLjMgPC0gbG1lcihtYXRoIH4gc2VsZl9jb25jZXB0ICsgY2xhc3N0eXBlICsgZGVncmVlICsgc2Nob29sbWF0aCArICgxfHNjaG9vbGlkKSArIChzZWxmX2NvbmNlcHR8Y2xhc3NpZCksIFJFTUwgPSBGQUxTRSwgZGF0YSA9IHN0YXIuY2xlYW4pDQpzdW1tYXJ5KG1vZGVsLjMpDQpgYGANCkFkZGluZyBhIHJhbmRvbSBzbG9wZSBmb3Igc2VsZi1jb25jZXB0IGF0IHRoZSBjbGFzcyBsZXZlbCBtZWFucyB3ZXJlIGFsbG93aW5nIHNlbGYtY29uY2VwdCB0byBmdW5jdGlvbiBkaWZmZXJlbnRseSBmb3IgZGlmZmVyZW50IGNsYXNzIGNsdXN0ZXJzLiBBZGRpbmcgYSByYW5kb20gc2xvcGUgZm9yIHNlbGYtY29uY2VwdCBhdCB0aGUgc2Nob29sIGxldmVsIG1lYW5zIHdlcmUgYWxsb3dpbmcgc2VsZi1jb25jZXB0IHRvIGZ1bmN0aW9uIGRpZmZlcmVudGx5IGZvciBkaWZmZXJlbnQgc2Nob29sIGNsdXN0ZXJzLiBUaGUgQklDIGFuZCBBSUMgZG8gbm90IGNoYW5nZSBpZiBpdCBpcyBhdCB0aGUgY2xhc3MgbGV2ZWwgb3IgdGhlIHNjaG9vbCBsZXZlbCwgbWVhbmluZyBpdCBpc24ndCByYW5kb20oPykNCmBgYA0KDQoNCg==