Load packages

library(tidyverse)
library(readr)
library(corrplot)
library(ggthemes)
source("../scripts/prune_race_variables.R")
theme_set(theme_clean())

assess <- read_csv("../data/assess.csv")
hh <- read_csv("../data/hh.csv") %>%
  select(-contains("MOE"))
race <- read_csv("../data/race.csv") %>% 
    prune_and_predom() %>%
    mutate(leaid = as.integer(leaid), 
           predom_race = as.character(predom_race))
grad <- read_csv("../data/grad.csv")

Reading Scores

Lets check out the distribution of reading scores. There is quite a lot of variability in reading scores, but the bulk of the reading scores tend to be between about 40 and 75.

assess %>%
  ggplot(aes(x=read_score)) +
  geom_histogram(bins = 100)+
  theme_minimal()

ggplot(assess, aes(x=read_score)) +
  geom_boxplot()+
  theme_minimal()

Math Scores

The math scores are also pretty variable and ranges between 0 and 100. The average math scores tend to be lower than the reading scores with the bulk of the districts having scores between 25 and 63.

ggplot(assess, aes(x=math_score)) +
  geom_histogram(bins = 100)+
  theme_minimal()

ggplot(assess, aes(x=math_score)) +
  geom_boxplot()+
  theme_minimal()

Join by LEAID

district_assess <- hh %>%
  left_join(assess, by = "leaid")%>%
  left_join(race, by = "leaid") %>%
  left_join(grad, by = "leaid")

Correlations

HH Conditions and Assessment Correlation

It appears that pct poverty is negatively correlated with both assessments but more so with reading scores. Additionally, we can see that graduation rates are positively correlated with reading and math scores.

 district_assess_corr <- district_assess %>%
  select(grad_rate_midpt, pct_pov:pct_CLI, read_score, math_score, total_score) %>%
  na.omit()

district_assess_corr[,1:ncol(district_assess_corr)] %>% 
    cor() %>%
    corrplot(method = "number")

Race Data and Assessment Correlation

Being white is somewhat positively correlated with assessments, reading scores with a stronger correlation. The other races are weaker correlations, but are generally negative accept for asian.

 district_assess_corr_race <- district_assess %>%
  select(grad_rate_midpt, pct_hisp_latino:pct_PI, read_score, math_score, total_score) %>%
  na.omit()

district_assess_corr_race[,1:ncol(district_assess_corr_race)] %>% 
    cor() %>%
    corrplot(method = "number")

HH Conditions and Assessment Correlation: Predominanlty White

For predominantly white districts, we can see that poverty is somewhat negatively correlated with reading and math scores. For predominantly white districts reading and math assessment scores are somewhat positively correlated wit graduation rates.

 district_assess_corr_white <- district_assess %>%
  filter(predom_race == "White") %>%
  select(grad_rate_midpt, pct_pov:pct_CLI, read_score, math_score, total_score) %>%
  na.omit()

district_assess_corr_white[,1:ncol(district_assess_corr_white)] %>% 
    cor() %>%
    corrplot(method = "number")

HH Conditions and Assessment Correlation: Predominanlty Black

For predominantly Black districts, reading and math scores are significantly less correlated with graduation rates. Reading and math scores have stronger negative correlations with single parent households, poverty and households with no computer or internet.

 district_assess_corr_black <- district_assess %>%
  filter(predom_race == "Black") %>%
  select(grad_rate_midpt, pct_pov:pct_CLI, read_score, math_score, total_score) %>%
  na.omit()

district_assess_corr_black[,1:ncol(district_assess_corr_black)] %>% 
    cor() %>%
    corrplot(method = "number")

HH Conditions and Assessment Correlation: Predominanlty Hispanic and Latino

For predominantly Hispanic and Latino school districts, we can see that reading and math assessment scores do not show significant correlations with household conditions. However, in contrast with other racial groups and the overall correlations math scores have a stronger positive correlation with graduation rates than reading scores for Hispanics/Latinos.

 district_assess_corr_HL <- district_assess %>%
  filter(predom_race == "Hispanic/Latino") %>%
  select(grad_rate_midpt, pct_pov:pct_CLI, read_score, math_score, total_score) %>%
  na.omit()

district_assess_corr_HL[,1:ncol(district_assess_corr_HL)] %>% 
    cor() %>%
    corrplot(method = "number")

LS0tCnRpdGxlOiAiU2Nob29sIEFzc2Vzc21lbnQgQW5hbHlzaXMiCmF1dGhvcjogIkpvaG4gR2VpZ2VyLCBOb2VsIEdvb2R3aW4sIEFiaWdhaWwgSm9wcGEiCmRhdGU6ICJgciBTeXMuRGF0ZSgpYCIKb3V0cHV0OiBvcGVuaW50cm86OmxhYl9yZXBvcnQKLS0tCgojIyBMb2FkIHBhY2thZ2VzIAoKYGBge3IgbG9hZC1wYWNrYWdlcywgbWVzc2FnZT1GQUxTRX0KCmxpYnJhcnkodGlkeXZlcnNlKQpsaWJyYXJ5KHJlYWRyKQpsaWJyYXJ5KGNvcnJwbG90KQpsaWJyYXJ5KGdndGhlbWVzKQpzb3VyY2UoIi4uL3NjcmlwdHMvcHJ1bmVfcmFjZV92YXJpYWJsZXMuUiIpCnRoZW1lX3NldCh0aGVtZV9jbGVhbigpKQoKYXNzZXNzIDwtIHJlYWRfY3N2KCIuLi9kYXRhL2Fzc2Vzcy5jc3YiKQpoaCA8LSByZWFkX2NzdigiLi4vZGF0YS9oaC5jc3YiKSAlPiUKICBzZWxlY3QoLWNvbnRhaW5zKCJNT0UiKSkKcmFjZSA8LSByZWFkX2NzdigiLi4vZGF0YS9yYWNlLmNzdiIpICU+JSAKICAgIHBydW5lX2FuZF9wcmVkb20oKSAlPiUKICAgIG11dGF0ZShsZWFpZCA9IGFzLmludGVnZXIobGVhaWQpLCAKICAgICAgICAgICBwcmVkb21fcmFjZSA9IGFzLmNoYXJhY3RlcihwcmVkb21fcmFjZSkpCmdyYWQgPC0gcmVhZF9jc3YoIi4uL2RhdGEvZ3JhZC5jc3YiKQoKYGBgCgoKIyMgUmVhZGluZyBTY29yZXMKCkxldHMgY2hlY2sgb3V0IHRoZSBkaXN0cmlidXRpb24gb2YgcmVhZGluZyBzY29yZXMuIFRoZXJlIGlzIHF1aXRlIGEgbG90IG9mIHZhcmlhYmlsaXR5IGluIHJlYWRpbmcgc2NvcmVzLCBidXQgdGhlIGJ1bGsgb2YgdGhlIHJlYWRpbmcgc2NvcmVzIHRlbmQgdG8gYmUgYmV0d2VlbiBhYm91dCA0MCBhbmQgNzUuIApgYGB7cn0KYXNzZXNzICU+JQogIGdncGxvdChhZXMoeD1yZWFkX3Njb3JlKSkgKwogIGdlb21faGlzdG9ncmFtKGJpbnMgPSAxMDApKwogIHRoZW1lX21pbmltYWwoKQoKZ2dwbG90KGFzc2VzcywgYWVzKHg9cmVhZF9zY29yZSkpICsKICBnZW9tX2JveHBsb3QoKSsKICB0aGVtZV9taW5pbWFsKCkKYGBgCgojIyBNYXRoIFNjb3JlcwoKVGhlIG1hdGggc2NvcmVzIGFyZSBhbHNvIHByZXR0eSB2YXJpYWJsZSBhbmQgcmFuZ2VzIGJldHdlZW4gMCBhbmQgMTAwLiBUaGUgYXZlcmFnZSBtYXRoIHNjb3JlcyB0ZW5kIHRvIGJlIGxvd2VyIHRoYW4gdGhlIHJlYWRpbmcgc2NvcmVzIHdpdGggdGhlIGJ1bGsgb2YgdGhlIGRpc3RyaWN0cyBoYXZpbmcgc2NvcmVzIGJldHdlZW4gMjUgYW5kIDYzLiAKCmBgYHtyfQpnZ3Bsb3QoYXNzZXNzLCBhZXMoeD1tYXRoX3Njb3JlKSkgKwogIGdlb21faGlzdG9ncmFtKGJpbnMgPSAxMDApKwogIHRoZW1lX21pbmltYWwoKQoKZ2dwbG90KGFzc2VzcywgYWVzKHg9bWF0aF9zY29yZSkpICsKICBnZW9tX2JveHBsb3QoKSsKICB0aGVtZV9taW5pbWFsKCkKYGBgCgojIyBKb2luIGJ5IExFQUlEIAoKYGBge3J9CmRpc3RyaWN0X2Fzc2VzcyA8LSBoaCAlPiUKICBsZWZ0X2pvaW4oYXNzZXNzLCBieSA9ICJsZWFpZCIpJT4lCiAgbGVmdF9qb2luKHJhY2UsIGJ5ID0gImxlYWlkIikgJT4lCiAgbGVmdF9qb2luKGdyYWQsIGJ5ID0gImxlYWlkIikKYGBgCgoKIyMgQ29ycmVsYXRpb25zCgojIyMgSEggQ29uZGl0aW9ucyBhbmQgQXNzZXNzbWVudCBDb3JyZWxhdGlvbgoKCkl0IGFwcGVhcnMgdGhhdCBwY3QgcG92ZXJ0eSBpcyBuZWdhdGl2ZWx5IGNvcnJlbGF0ZWQgd2l0aCBib3RoIGFzc2Vzc21lbnRzIGJ1dCBtb3JlIHNvIHdpdGggcmVhZGluZyBzY29yZXMuIEFkZGl0aW9uYWxseSwgd2UgY2FuIHNlZSB0aGF0IGdyYWR1YXRpb24gcmF0ZXMgYXJlIHBvc2l0aXZlbHkgY29ycmVsYXRlZCB3aXRoIHJlYWRpbmcgYW5kIG1hdGggc2NvcmVzLiAKYGBge3J9CiBkaXN0cmljdF9hc3Nlc3NfY29yciA8LSBkaXN0cmljdF9hc3Nlc3MgJT4lCiAgc2VsZWN0KGdyYWRfcmF0ZV9taWRwdCwgcGN0X3BvdjpwY3RfQ0xJLCByZWFkX3Njb3JlLCBtYXRoX3Njb3JlLCB0b3RhbF9zY29yZSkgJT4lCiAgbmEub21pdCgpCgpkaXN0cmljdF9hc3Nlc3NfY29yclssMTpuY29sKGRpc3RyaWN0X2Fzc2Vzc19jb3JyKV0gJT4lIAogICAgY29yKCkgJT4lCiAgICBjb3JycGxvdChtZXRob2QgPSAibnVtYmVyIikKCgpgYGAKCgojIyMgUmFjZSBEYXRhIGFuZCBBc3Nlc3NtZW50IENvcnJlbGF0aW9uCgoKQmVpbmcgd2hpdGUgaXMgc29tZXdoYXQgcG9zaXRpdmVseSBjb3JyZWxhdGVkIHdpdGggYXNzZXNzbWVudHMsIHJlYWRpbmcgc2NvcmVzIHdpdGggYSBzdHJvbmdlciBjb3JyZWxhdGlvbi4gVGhlIG90aGVyIHJhY2VzIGFyZSB3ZWFrZXIgY29ycmVsYXRpb25zLCBidXQgYXJlIGdlbmVyYWxseSBuZWdhdGl2ZSBhY2NlcHQgZm9yIGFzaWFuLiAKCmBgYHtyfQogZGlzdHJpY3RfYXNzZXNzX2NvcnJfcmFjZSA8LSBkaXN0cmljdF9hc3Nlc3MgJT4lCiAgc2VsZWN0KGdyYWRfcmF0ZV9taWRwdCwgcGN0X2hpc3BfbGF0aW5vOnBjdF9QSSwgcmVhZF9zY29yZSwgbWF0aF9zY29yZSwgdG90YWxfc2NvcmUpICU+JQogIG5hLm9taXQoKQoKZGlzdHJpY3RfYXNzZXNzX2NvcnJfcmFjZVssMTpuY29sKGRpc3RyaWN0X2Fzc2Vzc19jb3JyX3JhY2UpXSAlPiUgCiAgICBjb3IoKSAlPiUKICAgIGNvcnJwbG90KG1ldGhvZCA9ICJudW1iZXIiKQpgYGAKCiMjIyBISCBDb25kaXRpb25zIGFuZCBBc3Nlc3NtZW50IENvcnJlbGF0aW9uOiBQcmVkb21pbmFubHR5IFdoaXRlIAoKCkZvciBwcmVkb21pbmFudGx5IHdoaXRlIGRpc3RyaWN0cywgd2UgY2FuIHNlZSB0aGF0IHBvdmVydHkgaXMgc29tZXdoYXQgbmVnYXRpdmVseSBjb3JyZWxhdGVkIHdpdGggcmVhZGluZyBhbmQgbWF0aCBzY29yZXMuIEZvciBwcmVkb21pbmFudGx5IHdoaXRlIGRpc3RyaWN0cyByZWFkaW5nIGFuZCBtYXRoIGFzc2Vzc21lbnQgc2NvcmVzIGFyZSBzb21ld2hhdCBwb3NpdGl2ZWx5IGNvcnJlbGF0ZWQgd2l0IGdyYWR1YXRpb24gcmF0ZXMuIAoKYGBge3J9CiBkaXN0cmljdF9hc3Nlc3NfY29ycl93aGl0ZSA8LSBkaXN0cmljdF9hc3Nlc3MgJT4lCiAgZmlsdGVyKHByZWRvbV9yYWNlID09ICJXaGl0ZSIpICU+JQogIHNlbGVjdChncmFkX3JhdGVfbWlkcHQsIHBjdF9wb3Y6cGN0X0NMSSwgcmVhZF9zY29yZSwgbWF0aF9zY29yZSwgdG90YWxfc2NvcmUpICU+JQogIG5hLm9taXQoKQoKZGlzdHJpY3RfYXNzZXNzX2NvcnJfd2hpdGVbLDE6bmNvbChkaXN0cmljdF9hc3Nlc3NfY29ycl93aGl0ZSldICU+JSAKICAgIGNvcigpICU+JQogICAgY29ycnBsb3QobWV0aG9kID0gIm51bWJlciIpCmBgYAoKCiMjIyBISCBDb25kaXRpb25zIGFuZCBBc3Nlc3NtZW50IENvcnJlbGF0aW9uOiBQcmVkb21pbmFubHR5IEJsYWNrIAoKCkZvciBwcmVkb21pbmFudGx5IEJsYWNrIGRpc3RyaWN0cywgcmVhZGluZyBhbmQgbWF0aCBzY29yZXMgYXJlIHNpZ25pZmljYW50bHkgbGVzcyBjb3JyZWxhdGVkIHdpdGggZ3JhZHVhdGlvbiByYXRlcy4gUmVhZGluZyBhbmQgbWF0aCBzY29yZXMgaGF2ZSBzdHJvbmdlciBuZWdhdGl2ZSBjb3JyZWxhdGlvbnMgd2l0aCBzaW5nbGUgcGFyZW50IGhvdXNlaG9sZHMsIHBvdmVydHkgYW5kIGhvdXNlaG9sZHMgd2l0aCBubyBjb21wdXRlciBvciBpbnRlcm5ldC4gCgoKYGBge3J9CiBkaXN0cmljdF9hc3Nlc3NfY29ycl9ibGFjayA8LSBkaXN0cmljdF9hc3Nlc3MgJT4lCiAgZmlsdGVyKHByZWRvbV9yYWNlID09ICJCbGFjayIpICU+JQogIHNlbGVjdChncmFkX3JhdGVfbWlkcHQsIHBjdF9wb3Y6cGN0X0NMSSwgcmVhZF9zY29yZSwgbWF0aF9zY29yZSwgdG90YWxfc2NvcmUpICU+JQogIG5hLm9taXQoKQoKZGlzdHJpY3RfYXNzZXNzX2NvcnJfYmxhY2tbLDE6bmNvbChkaXN0cmljdF9hc3Nlc3NfY29ycl9ibGFjayldICU+JSAKICAgIGNvcigpICU+JQogICAgY29ycnBsb3QobWV0aG9kID0gIm51bWJlciIpCmBgYAoKCgojIyMgSEggQ29uZGl0aW9ucyBhbmQgQXNzZXNzbWVudCBDb3JyZWxhdGlvbjogUHJlZG9taW5hbmx0eSBIaXNwYW5pYyBhbmQgTGF0aW5vICAKCgpGb3IgcHJlZG9taW5hbnRseSBIaXNwYW5pYyBhbmQgTGF0aW5vIHNjaG9vbCBkaXN0cmljdHMsIHdlIGNhbiBzZWUgdGhhdCByZWFkaW5nIGFuZCBtYXRoIGFzc2Vzc21lbnQgc2NvcmVzIGRvIG5vdCBzaG93IHNpZ25pZmljYW50IGNvcnJlbGF0aW9ucyB3aXRoIGhvdXNlaG9sZCBjb25kaXRpb25zLiBIb3dldmVyLCBpbiBjb250cmFzdCB3aXRoIG90aGVyIHJhY2lhbCBncm91cHMgYW5kIHRoZSBvdmVyYWxsIGNvcnJlbGF0aW9ucyBtYXRoIHNjb3JlcyBoYXZlIGEgc3Ryb25nZXIgcG9zaXRpdmUgY29ycmVsYXRpb24gd2l0aCBncmFkdWF0aW9uIHJhdGVzIHRoYW4gcmVhZGluZyBzY29yZXMgZm9yIEhpc3Bhbmljcy9MYXRpbm9zLiAKCgpgYGB7cn0KIGRpc3RyaWN0X2Fzc2Vzc19jb3JyX0hMIDwtIGRpc3RyaWN0X2Fzc2VzcyAlPiUKICBmaWx0ZXIocHJlZG9tX3JhY2UgPT0gIkhpc3BhbmljL0xhdGlubyIpICU+JQogIHNlbGVjdChncmFkX3JhdGVfbWlkcHQsIHBjdF9wb3Y6cGN0X0NMSSwgcmVhZF9zY29yZSwgbWF0aF9zY29yZSwgdG90YWxfc2NvcmUpICU+JQogIG5hLm9taXQoKQoKZGlzdHJpY3RfYXNzZXNzX2NvcnJfSExbLDE6bmNvbChkaXN0cmljdF9hc3Nlc3NfY29ycl9ITCldICU+JSAKICAgIGNvcigpICU+JQogICAgY29ycnBsb3QobWV0aG9kID0gIm51bWJlciIpCmBgYAoKCgoK