Load assessment data

library(tidyverse)
library(caret)
Loading required package: lattice
Registered S3 method overwritten by 'data.table':
  method           from
  print.data.table     

Attaching package: ‘caret’

The following object is masked from ‘package:purrr’:

    lift
library(rpart)
library(readxl)
library(usmap)

getwd()
[1] "/Users/elireeves/Documents/LAST HALF SEMESTER/ACCT 426/Project_2"
library(readxl)


t_assess_raw_school <- read_excel("Historical_AssessmentResults_SY15-to-SY21.xlsx", 
     sheet = 'SY21 School & District',
     range = 'b2:f7312',
     skip = 1)



t_assess_raw_science <- read_excel("Historical_AssessmentResults_SY15-to-SY21.xlsx",
                           sheet = 'SY21 School & District',
                           range = 'db3:db7312', 
                           col_names = c('science_proficiency'),
                           na = '**')

t_assess_raw <- t_assess_raw_school %>%
  bind_cols(t_assess_raw_science) %>% 
  janitor::clean_names()  


# Remove subgroups
t_assess <- t_assess_raw %>% 
  filter(school == 999) %>% 
  filter(population_group == 'Total Population') %>% 
  filter(county != 'Statewide') %>% 
  mutate(proficiency = science_proficiency)  

print(t_assess)

Load spending data

t_spending_raw <- read_excel("~/Documents/LAST HALF SEMESTER/ACCT 426/Project_2/elsec22t.xls",
                           sheet = 'elsec22t',
                           range = 'a1:gb14106') %>% 
  janitor::clean_names()
New names:

Load demographic data

Joined data

# Merge data
t <- t_assess %>% 
  full_join(t_spending, by = "county") %>%
  full_join(t_demographics, by = "county") %>% 
  mutate(fips = fips(state = "WV", county = county))
Error: object 't_demographics' not found

Correlations

Linear Regression Model

summary(model)

Call:
lm(formula = proficiency ~ totalexp + tlocrev + unemployed, data = t)

Residuals:
     Min       1Q   Median       3Q      Max 
-10.0422  -3.9992  -0.1445   3.1993  10.4680 

Coefficients:
              Estimate Std. Error t value Pr(>|t|)    
(Intercept)  2.543e+01  2.351e+00  10.817 8.27e-15 ***
totalexp    -4.228e-05  2.936e-05  -1.440   0.1560    
tlocrev      1.887e-04  8.063e-05   2.341   0.0232 *  
unemployed  -2.705e-01  2.694e-01  -1.004   0.3200    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Residual standard error: 5.182 on 51 degrees of freedom
Multiple R-squared:  0.2505,    Adjusted R-squared:  0.2064 
F-statistic: 5.682 on 3 and 51 DF,  p-value: 0.001954

LS0tCnRpdGxlOiAiV1YgQ291bnR5IEVkdWNhdGlvbiBPdXRjb21lcyBQcmVkaWN0aW9uIgpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sKLS0tCgoKIyMgTG9hZCBhc3Nlc3NtZW50IGRhdGEKCmBgYHtyfQpsaWJyYXJ5KHRpZHl2ZXJzZSkKbGlicmFyeShjYXJldCkKbGlicmFyeShycGFydCkKbGlicmFyeShyZWFkeGwpCmxpYnJhcnkodXNtYXApCgpnZXR3ZCgpCmxpYnJhcnkocmVhZHhsKQoKCnRfYXNzZXNzX3Jhd19zY2hvb2wgPC0gcmVhZF9leGNlbCgiSGlzdG9yaWNhbF9Bc3Nlc3NtZW50UmVzdWx0c19TWTE1LXRvLVNZMjEueGxzeCIsIAogICAgIHNoZWV0ID0gJ1NZMjEgU2Nob29sICYgRGlzdHJpY3QnLAogICAgIHJhbmdlID0gJ2IyOmY3MzEyJywKICAgICBza2lwID0gMSkKCgoKdF9hc3Nlc3NfcmF3X3NjaWVuY2UgPC0gcmVhZF9leGNlbCgiSGlzdG9yaWNhbF9Bc3Nlc3NtZW50UmVzdWx0c19TWTE1LXRvLVNZMjEueGxzeCIsCiAgICAgICAgICAgICAgICAgICAgICAgICAgIHNoZWV0ID0gJ1NZMjEgU2Nob29sICYgRGlzdHJpY3QnLAogICAgICAgICAgICAgICAgICAgICAgICAgICByYW5nZSA9ICdkYjM6ZGI3MzEyJywgCiAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbF9uYW1lcyA9IGMoJ3NjaWVuY2VfcHJvZmljaWVuY3knKSwKICAgICAgICAgICAgICAgICAgICAgICAgICAgbmEgPSAnKionKQoKdF9hc3Nlc3NfcmF3IDwtIHRfYXNzZXNzX3Jhd19zY2hvb2wgJT4lCiAgYmluZF9jb2xzKHRfYXNzZXNzX3Jhd19zY2llbmNlKSAlPiUgCiAgamFuaXRvcjo6Y2xlYW5fbmFtZXMoKSAgCgoKIyBSZW1vdmUgc3ViZ3JvdXBzCnRfYXNzZXNzIDwtIHRfYXNzZXNzX3JhdyAlPiUgCiAgZmlsdGVyKHNjaG9vbCA9PSA5OTkpICU+JSAKICBmaWx0ZXIocG9wdWxhdGlvbl9ncm91cCA9PSAnVG90YWwgUG9wdWxhdGlvbicpICU+JSAKICBmaWx0ZXIoY291bnR5ICE9ICdTdGF0ZXdpZGUnKSAlPiUgCiAgbXV0YXRlKHByb2ZpY2llbmN5ID0gc2NpZW5jZV9wcm9maWNpZW5jeSkgIAoKcHJpbnQodF9hc3Nlc3MpCmBgYAoKIyMgTG9hZCBzcGVuZGluZyBkYXRhCgoKYGBge3J9CnRfc3BlbmRpbmdfcmF3IDwtIHJlYWRfZXhjZWwoIn4vRG9jdW1lbnRzL0xBU1QgSEFMRiBTRU1FU1RFUi9BQ0NUIDQyNi9Qcm9qZWN0XzIvZWxzZWMyMnQueGxzIiwKICAgICAgICAgICAgICAgICAgICAgICAgICAgc2hlZXQgPSAnZWxzZWMyMnQnLAogICAgICAgICAgICAgICAgICAgICAgICAgICByYW5nZSA9ICdhMTpnYjE0MTA2JykgJT4lIAogIGphbml0b3I6OmNsZWFuX25hbWVzKCkKCgpjb29wZXJhdGVzIDwtIGMoJ01PVU5UQUlOIFNUQVRFIEVEVUNBVElPTkFMIFNFUlZJQ0VTIENPT1BFUkFUSVZFJywKICAgICAgICAgICAgICAgICdFQVNURVJOIFBBTkhBTkRMRSBJTlNUUlVDVElPTkFMIENPT1BFUkFUSVZFJywKICAgICAgICAgICAgICAgICdTT1VUSEVSTiBFRFVDQVRJT05BTCBTRVJWSUNFUyBDT09QRVJBVElWRScpCgp0X3NwZW5kaW5nIDwtIHRfc3BlbmRpbmdfcmF3ICU+JSAKICBmaWx0ZXIoc3RhdGUgPT0gNDkpICU+JSAKICBmaWx0ZXIoIW5hbWUgJWluJSBjb29wZXJhdGVzKSAlPiUgCiAgc2VsZWN0KG5hbWUsIGVucm9sbCwgdGZlZHJldiwgdHN0cmV2LCB0bG9jcmV2LCB0b3RhbGV4cCwgcHBjc3RvdCkgJT4lIAogIG11dGF0ZShjb3VudHkgPSBzdHJfdG9fdGl0bGUoc3RyX3NwbGl0X2kobmFtZSwgJyAnLDEpKSwKICAgICAgICAgY291bnR5ID0gaWZlbHNlKGNvdW50eSA9PSAnTWMnLCAnTWNEb3dlbGwnLCBjb3VudHkpKQoKCjJwcmludCh0X3NwZW5kaW5nKQpgYGAKCiMjIExvYWQgZGVtb2dyYXBoaWMgZGF0YQoKYGBge3J9CgogIAoKdF9kZW1vZ3JhcGhpY3NfdW5lbXBsb3llZCA8LSByZWFkX2V4Y2VsKCJ+L0RvY3VtZW50cy9MQVNUIEhBTEYgU0VNRVNURVIvQUNDVCA0MjYvUHJvamVjdF8yL3VuZW1wbG95ZWQueGxzIiwgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBza2lwID0gNCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgIG5hID0gJ04vQScpICU+JQogIGphbml0b3I6OmNsZWFuX25hbWVzKCkgJT4lIAogIGZpbHRlcihjb3VudHkgIT0gJ1dlc3QgVmlyZ2luaWEnLAogICAgICAgICBjb3VudHkgIT0gJ1VuaXRlZCBTdGF0ZXMnLAogICAgICAgICAhaXMubmEodmFsdWVfcGVyY2VudCkgKSAlPiUgCiAgc2VsZWN0KGNvdW50eSwgdmFsdWVfcGVyY2VudCkgJT4lCiAgcmVuYW1lKHVuZW1wbG95ZWQgPSB2YWx1ZV9wZXJjZW50KSAlPiUgCiAgbXV0YXRlKGNvdW50eSA9IHN0cl9yZW1vdmUoY291bnR5LCAiIENvdW50eSQiKSkKCgoKdF9kZW1vZ3JhcGhpY3MgPC0gIHRfZGVtb2dyYXBoaWNzX3VuZW1wbG95ZWQKCgpwcmludCh0X2RlbW9ncmFwaGljcykKYGBgCgojIyBKb2luZWQgZGF0YQoKYGBge3J9CgojIE1lcmdlIGRhdGEKdCA8LSB0X2Fzc2VzcyAlPiUgCiAgZnVsbF9qb2luKHRfc3BlbmRpbmcsIGJ5ID0gImNvdW50eSIpICU+JQogIGZ1bGxfam9pbih0X2RlbW9ncmFwaGljcywgYnkgPSAiY291bnR5IikgJT4lIAogIG11dGF0ZShmaXBzID0gZmlwcyhzdGF0ZSA9ICJXViIsIGNvdW50eSA9IGNvdW50eSkpCiAgCgogIApgYGAKCgojIyBDb3JyZWxhdGlvbnMKCmBgYHtyfQpsaWJyYXJ5KGdnY29ycnBsb3QpCnRfY29yciA8LSB0ICU+JQogIHNlbGVjdCh3aGVyZShpcy5udW1lcmljKSkKCmNvcnJfbWF0cml4IDwtIGNvcih0X2NvcnIsIHVzZSA9ICJwYWlyd2lzZS5jb21wbGV0ZS5vYnMiKQoKcHJpbnQoY29ycl9tYXRyaXgpCgpnZ2NvcnJwbG90KGNvcnJfbWF0cml4LCAKICAgICAgICAgICBoYy5vcmRlciA9IFRSVUUsIAogICAgICAgICAgIHR5cGUgPSAibG93ZXIiLAogICAgICAgICAgIGxhYiA9IFRSVUUsCiAgICAgICAgICAgbGFiX2NvbCA9ICJibGFjayIsCiAgICAgICAgICAgbGFiX3NpemUgPSAzKQoKYGBgCgoKIyMgTGluZWFyIFJlZ3Jlc3Npb24gTW9kZWwKCmBgYCB7cn0gCm1vZGVsIDwtIGxtKHByb2ZpY2llbmN5IH4gdG90YWxleHAgKyB0bG9jcmV2ICsgdW5lbXBsb3llZCwgZGF0YSA9IHQpCnN1bW1hcnkobW9kZWwpCmBgYAoKCmBgYCB7cn0KbGlicmFyeSh1c21hcCkKCnBsb3RfdXNtYXAoZGF0YSA9IHQsIAogICAgICAgICAgIHZhbHVlcyA9ICJwcm9maWNpZW5jeSIsIAogICAgICAgICAgIGluY2x1ZGUgPSAnV2VzdCBWaXJnaW5pYScpICsgCiAgc2NhbGVfZmlsbF9jb250aW51b3VzKG5hbWUgPSAiUHJvZmljaWVuY3kiLAogICAgICAgICAgICAgICAgICAgICAgICBsb3cgPSAncmVkJywKICAgICAgICAgICAgICAgICAgICAgICAgaGlnaCA9ICdibHVlJykgKyAKICB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAicmlnaHQiKSArCiAgbGFicygnUHJvZmljaWVuY3knKQoKCgpgYGAK