Ring et al. 2017 Age distributions

Caroline Ring

2018-01-23

library(httk)
library(survey)
library(data.table)
library(ggplot2)

Get lists of all possible race/ethnicity categories and gender categories.

all.reth <- levels(nhanes_mec_svy$variables[, ridreth1])
all.gendr <- levels(nhanes_mec_svy$variables[, riagendr])

Get smoothed density estimates for age in months, by cycle for each gender and race/ethnicity, using the survey::svysmooth function.

grct <- 1
smth.year <- vector(mode="list", length=10)
for (gendr in all.gendr){
  for (r in all.reth){
    grsub <- subset(nhanes_mec_svy, riagendr==gendr & ridreth1==r & !is.na(ridexagm))
    smth.list <- vector(mode="list", length=3)
    ct <- 1
    for (y in grsub$variables[, levels(sddsrvyr)]){ #by cycle
      ysub <- subset(grsub, sddsrvyr==y)
      tmp <- svysmooth(~ridexagm,
                       ysub,
                       ngrid=960)$ridexagm 
      smth.list[[ct]] <- c(tmp, list(year=rep(y, length(tmp$x))))
      ct <- ct + 1
    }
    tmp.year <- rbindlist(lapply(smth.list, as.data.table))
    tmp.year[, gender:=gendr]
    tmp.year[, reth:=r]
    smth.year[[grct]] <- tmp.year
    grct <- grct+1
  }
}
#bind with smoothed data for all cycles combined
smth.all <- rbind(rbindlist(smth.year), 
                  age_dist_smooth[, smth[[1]], by=.(gender, reth)])
smth.all[, gender:=factor(gender, levels=all.gendr)]
smth.all[, reth:=factor(reth, levels=all.reth)]

Plot smoothed density estimates of age, by cycle and lumped.

#Plot
colvect <- c(RColorBrewer::brewer.pal(3, "Set2"), "black")
names(colvect) <- c('NHANES 2007-2008',
                    'NHANES 2009-2010',
                    'NHANES 2011-2012',
                    'Overall')
p <- ggplot(data=smth.all) +
  geom_line(aes(x=x, y=y, color=year)) +
  scale_color_manual(values=colvect) +
  labs(x='Age, months',
       y='Smoothed density estimate') +
  facet_grid(reth~gender)+
  theme_bw() +
  theme(strip.background=element_blank())
print(p)
ggsave(filename="pdf_figures/age_smooth.pdf",
       plot=p,
       width=8.5,
       height=11)