library(tidyverse)
library(survey)
library(ggplot2)
library(plotly)
source("table-builders.R")

acs_data_year = 2024

pus = readRDS(paste0("../../Data/ACS_MEDICAID",acs_data_year,".rds"))

Analysis 1

Source

ACS 2024

Outome

Medicaid, Medical Assistance, or any kind of government-assistance plan for those with low incomes or a disability

Domain of analysis

Children living in the community, with and without disability, who receive medicaid

t1 <- 
  tdev3(data = pus,
       measure = c("POP","MEDICAID"),
       filters = c("POP","AGEP"),
       demographic = "POP == 1 &   
                      AGEP <= 17", 
       strata = "DIS_text",
       strataLevels = c("Yes","No"))

#[[1]]
#[[1]][[1]]

# Population without Disabilities

#[[1]][[1]]

# Population with Disabilities

#[[2]]
#[[2]][[1]]

t1
[[1]]
[[1]][[1]]

[[1]][[2]]


[[2]]
[[2]][[1]]

[[2]][[2]]
NANA

Analysis 2

Source

ACS 2024

Outome

Medicaid, Medical Assistance, or any kind of government-assistance plan for those with low incomes or a disability

Domain of analysis

Adults 18-64 living in the community, with and without disability, who receive medicaid

t2 <- 
  tdev3(data = pus,
       measure = c("POP","MEDICAID"),
       filters = c("POP","AGEP"),
       demographic = "POP == 1 &   
                      AGEP >= 18 &
                      AGEP <= 64", 
       strata = "DIS_text",
       strataLevels = c("Yes","No"))


#[[1]]
#[[1]][[1]]

# Population without Disabilities

#[[1]][[1]]

# Population with Disabilities

#[[2]]
#[[2]][[1]]

t2
[[1]]
[[1]][[1]]

[[1]][[2]]


[[2]]
[[2]][[1]]

[[2]][[2]]
NANA

Medicaid Expansion States

Source: https://www.kff.org/affordable-care-act/state-indicator/state-activity-around-expanding-medicaid-under-the-affordable-care-act/?currentTimeframe=0&sortModel=%7B%22colId%22:%22Location%22,%22sort%22:%22asc%22%7D

expansion = read.csv("../../Data/Medicaid Expansion States/raw_data.csv") %>% 
  filter(!Status.of.Medicaid.Expansion.Decision=="")

expansion <- expansion %>%
  mutate(ExpansionYear = ifelse(is.na(year(as.Date(expansion$Expansion.Implementation.Date, format = "%m/%d/%Y"))),9999,year(as.Date(expansion$Expansion.Implementation.Date, format = "%m/%d/%Y")))) %>%
  select(Location,ExpansionYear)

expansion

NH Yearly Analysis

pnh <- readRDS(paste0("../../Data/ACS_MEDICAID_NH",2008,".rds"))

names(pnh) <- names(pnh) %>% str_replace("pwgtp","PWGTP")

for (i in 2009:2024) {
  print(i)
  tmp <- readRDS(paste0("../../Data/ACS_MEDICAID_NH",i,".rds"))
  names(tmp) <- names(tmp) %>% str_replace("pwgtp","PWGTP")
  pnh <- pnh %>% 
    rbind(tmp)
}
[1] 2009
[1] 2010
[1] 2011
[1] 2012
[1] 2013
[1] 2014
[1] 2015
[1] 2016
[1] 2017
[1] 2018
[1] 2019
[1] 2020
[1] 2021
[1] 2022
[1] 2023
[1] 2024
pops = data.frame()

for (i in 2009:2024) {
  # estimate the pops, prevalence and RR in NH
  out = tdev3(data = pnh %>% filter(YEAR == i),
       measure = c("POP","MEDICAID"),
       filters = c("POP","AGEP"),
       demographic = "POP == 1 &   
                      AGEP >= 18 &
                      AGEP <= 64", 
       strata = "DIS_text",
       strataLevels = c("Yes","No"))
  pops = pops %>% 
    rbind(out[[1]][[1]] %>% mutate(year = i)) %>% rbind(out[[1]][[2]] %>% mutate(year = i))
}

pops <- pops %>% filter(ST_text != "U.S.")

pops
NA
NA
averages <- pops %>%
  mutate(expansionstat = ifelse(year <=2014,"Pre-",
                         ifelse(year > 2014, "Post-",NA)),
         se = (MEDICAID_perc - MEDICAID_perc_LCI)/qnorm(0.975)) %>%
  group_by(`eval(parse(text = strata))`,expansionstat) %>%
  summarise(MEDICAID_perc = mean(MEDICAID_perc),
            se = sqrt(sum(se^2)/n()),
            upperCI= (MEDICAID_perc + qnorm(0.975)*se) %>% round(1),
            lowerCI = (MEDICAID_perc - qnorm(0.975)*se) %>% round(1)) %>%
  filter(expansionstat != "") %>%
  right_join(pops %>%
  mutate(expansionstat = ifelse(year <=2014,"Pre-",
                         ifelse(year > 2014, "Post-",NA))), by = c("eval(parse(text = strata))","expansionstat"))
  

averages %>% 
  arrange(year) 
p <- averages %>% 
  arrange(year) %>%
  ggplot(aes(x =year, group = `eval(parse(text = strata))`)) + 
  geom_ribbon(aes(ymin = lowerCI, ymax = upperCI, fill="steelblue"), alpha = 0.5) + 
  geom_line(aes(y = MEDICAID_perc.x, color = "steelblue", alpha = 0.1)) +
  geom_line(aes(y = MEDICAID_perc.y, color = `eval(parse(text = strata))`)) +
  annotate("text", label="Expansion Implementation Date 8/15/2014", x = 2016.666, y = 20) + 
  geom_vline(xintercept = expansion %>% filter(Location == "New Hampshire") %>% select(ExpansionYear) %>% unlist()) + 
  scale_x_continuous(breaks = 2008:2024) + 
  theme(legend.position = "bottom")

ggplotly(p, width = 1100, height = 1100)%>%
      plotly::layout(legend=list(x=0, 
                                 xanchor='left',
                                 yanchor='bottom',
                                 orientation='h'))    
LS0tDQp0aXRsZTogIlIgTm90ZWJvb2siDQpvdXRwdXQ6IGh0bWxfbm90ZWJvb2sNCi0tLQ0KDQpgYGB7cn0NCmxpYnJhcnkodGlkeXZlcnNlKQ0KbGlicmFyeShzdXJ2ZXkpDQpsaWJyYXJ5KGdncGxvdDIpDQpsaWJyYXJ5KHBsb3RseSkNCnNvdXJjZSgidGFibGUtYnVpbGRlcnMuUiIpDQoNCmFjc19kYXRhX3llYXIgPSAyMDI0DQoNCnB1cyA9IHJlYWRSRFMocGFzdGUwKCIuLi8uLi9EYXRhL0FDU19NRURJQ0FJRCIsYWNzX2RhdGFfeWVhciwiLnJkcyIpKQ0KYGBgDQoNCiMgQW5hbHlzaXMgMQ0KDQojIyBTb3VyY2UNCg0KQUNTIDIwMjQNCg0KIyMgT3V0b21lDQoNCk1lZGljYWlkLCBNZWRpY2FsIEFzc2lzdGFuY2UsIG9yIGFueSBraW5kIG9mIGdvdmVybm1lbnQtYXNzaXN0YW5jZSBwbGFuDQpmb3IgdGhvc2Ugd2l0aCBsb3cgaW5jb21lcyBvciBhIGRpc2FiaWxpdHkNCg0KIyMgRG9tYWluIG9mIGFuYWx5c2lzDQoNCioqQ2hpbGRyZW4gbGl2aW5nIGluIHRoZSBjb21tdW5pdHksIHdpdGggYW5kIHdpdGhvdXQgZGlzYWJpbGl0eSwgd2hvIHJlY2VpdmUgbWVkaWNhaWQqKg0KDQpgYGB7cn0NCnQxIDwtIA0KICB0ZGV2MyhkYXRhID0gcHVzLA0KICAgICAgIG1lYXN1cmUgPSBjKCJQT1AiLCJNRURJQ0FJRCIpLA0KICAgICAgIGZpbHRlcnMgPSBjKCJQT1AiLCJBR0VQIiksDQogICAgICAgZGVtb2dyYXBoaWMgPSAiUE9QID09IDEgJiAgIA0KICAgICAgICAgICAgICAgICAgICAgIEFHRVAgPD0gMTciLCANCiAgICAgICBzdHJhdGEgPSAiRElTX3RleHQiLA0KICAgICAgIHN0cmF0YUxldmVscyA9IGMoIlllcyIsIk5vIikpDQoNCiNbWzFdXQ0KI1tbMV1dW1sxXV0NCg0KIyBQb3B1bGF0aW9uIHdpdGhvdXQgRGlzYWJpbGl0aWVzDQoNCiNbWzFdXVtbMV1dDQoNCiMgUG9wdWxhdGlvbiB3aXRoIERpc2FiaWxpdGllcw0KDQojW1syXV0NCiNbWzJdXVtbMV1dDQoNCnQxDQpgYGANCg0KIyBBbmFseXNpcyAyDQoNCiMjIFNvdXJjZQ0KDQpBQ1MgMjAyNA0KDQojIyBPdXRvbWUNCg0KTWVkaWNhaWQsIE1lZGljYWwgQXNzaXN0YW5jZSwgb3IgYW55IGtpbmQgb2YgZ292ZXJubWVudC1hc3Npc3RhbmNlIHBsYW4NCmZvciB0aG9zZSB3aXRoIGxvdyBpbmNvbWVzIG9yIGEgZGlzYWJpbGl0eQ0KDQojIyBEb21haW4gb2YgYW5hbHlzaXMNCg0KKipBZHVsdHMgMTgtNjQgbGl2aW5nIGluIHRoZSBjb21tdW5pdHksIHdpdGggYW5kIHdpdGhvdXQgZGlzYWJpbGl0eSwgd2hvIHJlY2VpdmUgbWVkaWNhaWQqKg0KDQpgYGB7cn0NCnQyIDwtIA0KICB0ZGV2MyhkYXRhID0gcHVzLA0KICAgICAgIG1lYXN1cmUgPSBjKCJQT1AiLCJNRURJQ0FJRCIpLA0KICAgICAgIGZpbHRlcnMgPSBjKCJQT1AiLCJBR0VQIiksDQogICAgICAgZGVtb2dyYXBoaWMgPSAiUE9QID09IDEgJiAgIA0KICAgICAgICAgICAgICAgICAgICAgIEFHRVAgPj0gMTggJg0KICAgICAgICAgICAgICAgICAgICAgIEFHRVAgPD0gNjQiLCANCiAgICAgICBzdHJhdGEgPSAiRElTX3RleHQiLA0KICAgICAgIHN0cmF0YUxldmVscyA9IGMoIlllcyIsIk5vIikpDQoNCg0KI1tbMV1dDQojW1sxXV1bWzFdXQ0KDQojIFBvcHVsYXRpb24gd2l0aG91dCBEaXNhYmlsaXRpZXMNCg0KI1tbMV1dW1sxXV0NCg0KIyBQb3B1bGF0aW9uIHdpdGggRGlzYWJpbGl0aWVzDQoNCiNbWzJdXQ0KI1tbMl1dW1sxXV0NCg0KdDINCg0KYGBgDQoNCiMgTWVkaWNhaWQgRXhwYW5zaW9uIFN0YXRlcw0KDQpTb3VyY2U6IGh0dHBzOi8vd3d3LmtmZi5vcmcvYWZmb3JkYWJsZS1jYXJlLWFjdC9zdGF0ZS1pbmRpY2F0b3Ivc3RhdGUtYWN0aXZpdHktYXJvdW5kLWV4cGFuZGluZy1tZWRpY2FpZC11bmRlci10aGUtYWZmb3JkYWJsZS1jYXJlLWFjdC8/Y3VycmVudFRpbWVmcmFtZT0wJnNvcnRNb2RlbD0lN0IlMjJjb2xJZCUyMjolMjJMb2NhdGlvbiUyMiwlMjJzb3J0JTIyOiUyMmFzYyUyMiU3RA0KDQpgYGB7cn0NCmV4cGFuc2lvbiA9IHJlYWQuY3N2KCIuLi8uLi9EYXRhL01lZGljYWlkIEV4cGFuc2lvbiBTdGF0ZXMvcmF3X2RhdGEuY3N2IikgJT4lIA0KICBmaWx0ZXIoIVN0YXR1cy5vZi5NZWRpY2FpZC5FeHBhbnNpb24uRGVjaXNpb249PSIiKQ0KDQpleHBhbnNpb24gPC0gZXhwYW5zaW9uICU+JQ0KICBtdXRhdGUoRXhwYW5zaW9uWWVhciA9IGlmZWxzZShpcy5uYSh5ZWFyKGFzLkRhdGUoZXhwYW5zaW9uJEV4cGFuc2lvbi5JbXBsZW1lbnRhdGlvbi5EYXRlLCBmb3JtYXQgPSAiJW0vJWQvJVkiKSkpLDk5OTkseWVhcihhcy5EYXRlKGV4cGFuc2lvbiRFeHBhbnNpb24uSW1wbGVtZW50YXRpb24uRGF0ZSwgZm9ybWF0ID0gIiVtLyVkLyVZIikpKSkgJT4lDQogIHNlbGVjdChMb2NhdGlvbixFeHBhbnNpb25ZZWFyKQ0KDQpleHBhbnNpb24NCmBgYA0KDQojIE5IIFllYXJseSBBbmFseXNpcw0KDQpgYGB7cn0NCnBuaCA8LSByZWFkUkRTKHBhc3RlMCgiLi4vLi4vRGF0YS9BQ1NfTUVESUNBSURfTkgiLDIwMDgsIi5yZHMiKSkNCg0KbmFtZXMocG5oKSA8LSBuYW1lcyhwbmgpICU+JSBzdHJfcmVwbGFjZSgicHdndHAiLCJQV0dUUCIpDQoNCmZvciAoaSBpbiAyMDA5OjIwMjQpIHsNCiAgcHJpbnQoaSkNCiAgdG1wIDwtIHJlYWRSRFMocGFzdGUwKCIuLi8uLi9EYXRhL0FDU19NRURJQ0FJRF9OSCIsaSwiLnJkcyIpKQ0KICBuYW1lcyh0bXApIDwtIG5hbWVzKHRtcCkgJT4lIHN0cl9yZXBsYWNlKCJwd2d0cCIsIlBXR1RQIikNCiAgcG5oIDwtIHBuaCAlPiUgDQogICAgcmJpbmQodG1wKQ0KfQ0KYGBgDQoNCmBgYHtyfQ0KcG9wcyA9IGRhdGEuZnJhbWUoKQ0KDQpmb3IgKGkgaW4gMjAwOToyMDI0KSB7DQogICMgZXN0aW1hdGUgdGhlIHBvcHMsIHByZXZhbGVuY2UgYW5kIFJSIGluIE5IDQogIG91dCA9IHRkZXYzKGRhdGEgPSBwbmggJT4lIGZpbHRlcihZRUFSID09IGkpLA0KICAgICAgIG1lYXN1cmUgPSBjKCJQT1AiLCJNRURJQ0FJRCIpLA0KICAgICAgIGZpbHRlcnMgPSBjKCJQT1AiLCJBR0VQIiksDQogICAgICAgZGVtb2dyYXBoaWMgPSAiUE9QID09IDEgJiAgIA0KICAgICAgICAgICAgICAgICAgICAgIEFHRVAgPj0gMTggJg0KICAgICAgICAgICAgICAgICAgICAgIEFHRVAgPD0gNjQiLCANCiAgICAgICBzdHJhdGEgPSAiRElTX3RleHQiLA0KICAgICAgIHN0cmF0YUxldmVscyA9IGMoIlllcyIsIk5vIikpDQogIHBvcHMgPSBwb3BzICU+JSANCiAgICByYmluZChvdXRbWzFdXVtbMV1dICU+JSBtdXRhdGUoeWVhciA9IGkpKSAlPiUgcmJpbmQob3V0W1sxXV1bWzJdXSAlPiUgbXV0YXRlKHllYXIgPSBpKSkNCn0NCg0KcG9wcyA8LSBwb3BzICU+JSBmaWx0ZXIoU1RfdGV4dCAhPSAiVS5TLiIpDQoNCnBvcHMNCg0KDQpgYGANCg0KYGBge3J9DQphdmVyYWdlcyA8LSBwb3BzICU+JQ0KICBtdXRhdGUoZXhwYW5zaW9uc3RhdCA9IGlmZWxzZSh5ZWFyIDw9MjAxNCwiUHJlLSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKHllYXIgPiAyMDE0LCAiUG9zdC0iLE5BKSksDQogICAgICAgICBzZSA9IChNRURJQ0FJRF9wZXJjIC0gTUVESUNBSURfcGVyY19MQ0kpL3Fub3JtKDAuOTc1KSkgJT4lDQogIGdyb3VwX2J5KGBldmFsKHBhcnNlKHRleHQgPSBzdHJhdGEpKWAsZXhwYW5zaW9uc3RhdCkgJT4lDQogIHN1bW1hcmlzZShNRURJQ0FJRF9wZXJjID0gbWVhbihNRURJQ0FJRF9wZXJjKSwNCiAgICAgICAgICAgIHNlID0gc3FydChzdW0oc2VeMikvbigpKSwNCiAgICAgICAgICAgIHVwcGVyQ0k9IChNRURJQ0FJRF9wZXJjICsgcW5vcm0oMC45NzUpKnNlKSAlPiUgcm91bmQoMSksDQogICAgICAgICAgICBsb3dlckNJID0gKE1FRElDQUlEX3BlcmMgLSBxbm9ybSgwLjk3NSkqc2UpICU+JSByb3VuZCgxKSkgJT4lDQogIGZpbHRlcihleHBhbnNpb25zdGF0ICE9ICIiKSAlPiUNCiAgcmlnaHRfam9pbihwb3BzICU+JQ0KICBtdXRhdGUoZXhwYW5zaW9uc3RhdCA9IGlmZWxzZSh5ZWFyIDw9MjAxNCwiUHJlLSIsDQogICAgICAgICAgICAgICAgICAgICAgICAgaWZlbHNlKHllYXIgPiAyMDE0LCAiUG9zdC0iLE5BKSkpLCBieSA9IGMoImV2YWwocGFyc2UodGV4dCA9IHN0cmF0YSkpIiwiZXhwYW5zaW9uc3RhdCIpKQ0KICANCg0KYXZlcmFnZXMgJT4lIA0KICBhcnJhbmdlKHllYXIpIA0KYGBgDQoNCg0KYGBge3Igb3V0LndpZHRoPSIxMDAlIn0NCnAgPC0gYXZlcmFnZXMgJT4lIA0KICBhcnJhbmdlKHllYXIpICU+JQ0KICBnZ3Bsb3QoYWVzKHggPXllYXIsIGdyb3VwID0gYGV2YWwocGFyc2UodGV4dCA9IHN0cmF0YSkpYCkpICsgDQogIGdlb21fcmliYm9uKGFlcyh5bWluID0gbG93ZXJDSSwgeW1heCA9IHVwcGVyQ0ksIGZpbGw9InN0ZWVsYmx1ZSIpLCBhbHBoYSA9IDAuNSkgKyANCiAgZ2VvbV9saW5lKGFlcyh5ID0gTUVESUNBSURfcGVyYy54LCBjb2xvciA9ICJzdGVlbGJsdWUiLCBhbHBoYSA9IDAuMSkpICsNCiAgZ2VvbV9saW5lKGFlcyh5ID0gTUVESUNBSURfcGVyYy55LCBjb2xvciA9IGBldmFsKHBhcnNlKHRleHQgPSBzdHJhdGEpKWApKSArDQogIGFubm90YXRlKCJ0ZXh0IiwgbGFiZWw9IkV4cGFuc2lvbiBJbXBsZW1lbnRhdGlvbiBEYXRlIDgvMTUvMjAxNCIsIHggPSAyMDE2LjY2NiwgeSA9IDIwKSArIA0KICBnZW9tX3ZsaW5lKHhpbnRlcmNlcHQgPSBleHBhbnNpb24gJT4lIGZpbHRlcihMb2NhdGlvbiA9PSAiTmV3IEhhbXBzaGlyZSIpICU+JSBzZWxlY3QoRXhwYW5zaW9uWWVhcikgJT4lIHVubGlzdCgpKSArIA0KICBzY2FsZV94X2NvbnRpbnVvdXMoYnJlYWtzID0gMjAwODoyMDI0KSArIA0KICB0aGVtZShsZWdlbmQucG9zaXRpb24gPSAiYm90dG9tIikNCg0KZ2dwbG90bHkocCwgd2lkdGggPSAxMTAwLCBoZWlnaHQgPSAxMTAwKSU+JQ0KICAgICAgcGxvdGx5OjpsYXlvdXQobGVnZW5kPWxpc3QoeD0wLCANCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhhbmNob3I9J2xlZnQnLA0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgeWFuY2hvcj0nYm90dG9tJywNCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG9yaWVudGF0aW9uPSdoJykpICAgIA0KYGBgDQoNCg0K