In the previous vignette, we discussed the model setup process
in-depth. But how do we get our estimates once we’ve run our model? In
this vignette, we discuss extracting estimates from our model object
with the get_estimates() function, and how to
age-standardize those estimates with age_standardize().
get_estimates() functionIn the RSTr introductory vignette, we generated age-standardized
estimates for lambda based on our example Michigan dataset.
To extract rates from an RSTr object, we can simply run
get_estimates():
# For computational reasons, full model fitting is not run during CRAN checks.
# When building on CRAN, this vignette loads a pre-fitted example model included with the package.
# The pkgdown website shows the full model-fitting workflow.
example_dir <- system.file("extdata", package = "RSTr")
mod_mst <- load_model("mstcar_example", example_dir)estimates <- get_estimates(mod_mst, rates_per = 1e5)
head(estimates)
#> county group year medians ci_lower ci_upper rel_prec events population
#> 1 26001 35-44 1979 41.09875 31.76009 47.11024 2.677417 1 964
#> 2 26003 35-44 1979 61.79864 50.74198 80.73919 2.060146 1 1011
#> 3 26005 35-44 1979 23.44843 18.67969 28.12923 2.481436 0 9110
#> 4 26007 35-44 1979 38.04293 26.32669 48.99415 1.678306 0 3650
#> 5 26009 35-44 1979 36.87313 31.41068 44.70636 2.773316 0 1763
#> 6 26011 35-44 1979 36.02715 32.00151 47.83611 2.275216 0 1470age_standardization() functionIn many cases, we will want to age-standardize our estimates based on
some (or all) age groups in our dataset. In our Michigan dataset, we
have six ten-year age groups over which we can standardize; let’s
age-standardize from ages 35-64. For RSTr objects,
age_standardize() takes in four arguments:
RSTr_obj: The RSTr model object created
with *car();
std_pop: A vector of standard
populations associated with the age groups of interest. Since our
Michigan data is from 1979-1988, we can use 1980 standard populations
from NIH.
It is recommended that you use the standard population that is most
closely associated with your dataset;
new_name: The name of your new standard population
group; and
groups: A vector of names matching each
group of interest. To age-standardize by all groups in a dataset, leave
this argument blank.
Once we have our std_pop vector, we can age-standardize
our estimates:
std_pop <- c(113154, 100640, 95799)
mod_mst <- age_standardize(mod_mst, std_pop, new_name = "35-64", groups = c("35-44", "45-54", "55-64"))
mod_mst
#> RSTr object:
#>
#> Model name: mstcar_example
#> Model type: MSTCAR
#> Data likelihood: binomial
#> Estimate Credible Interval: 95%
#> Number of geographic units: 83
#> Number of samples: 3000
#> Estimates age-standardized: Yes
#> Age-standardized groups: 35-64
#> Estimates suppressed: NoNotice now that the mod_mst object indicates we have
age-standardized our estimates and the names of our age-standardized
group. We can also add on to our list of age-standardized estimates by
simply specifying a different group:
std_pop <- c(68775, 34116, 9888)
mod_mst <- age_standardize(mod_mst, std_pop, new_name = "65up", groups = c("65-74", "75-84", "85+"))
mod_mst
#> RSTr object:
#>
#> Model name: mstcar_example
#> Model type: MSTCAR
#> Data likelihood: binomial
#> Estimate Credible Interval: 95%
#> Number of geographic units: 83
#> Number of samples: 3000
#> Estimates age-standardized: Yes
#> Age-standardized groups: 35-64 65up
#> Estimates suppressed: NoIf we want to generate estimates for all groups, i.e. 35 and
up, we can omit the groups argument and expand
std_pop to include all of our populations:
std_pop <- c(113154, 100640, 95799, 68775, 34116, 9888)
mod_mst <- age_standardize(mod_mst, std_pop, new_name = "35up")
mod_mst
#> RSTr object:
#>
#> Model name: mstcar_example
#> Model type: MSTCAR
#> Data likelihood: binomial
#> Estimate Credible Interval: 95%
#> Number of geographic units: 83
#> Number of samples: 3000
#> Estimates age-standardized: Yes
#> Age-standardized groups: 35-64 65up 35up
#> Estimates suppressed: No
mst_estimates_as <- get_estimates(mod_mst)
head(mst_estimates_as)
#> county group year medians ci_lower ci_upper rel_prec events population
#> 1 26001 35-64 1979 202.9310 166.2747 242.0648 2.677538 7 3353
#> 2 26003 35-64 1979 256.0684 214.3235 348.2249 1.912365 12 3105
#> 3 26005 35-64 1979 126.2409 112.8141 147.4087 3.649160 27 23926
#> 4 26007 35-64 1979 174.0603 154.6135 209.3011 3.182813 15 10000
#> 5 26009 35-64 1979 184.0658 163.5568 205.2774 4.411868 11 5152
#> 6 26011 35-64 1979 207.9429 185.7425 231.7124 4.523455 8 4517Now, get_estimates(mod_mst) shows the age-standardized
estimates as opposed to our non-standardized estimates. Should you want
to see the non-standardized estimates instead, you can set the argument
standardized = FALSE.
In this vignette, we explored the get_estimates()
function and investigated age-standardization with the
age_standardize() function. Age-standardization is one of
the most important features of the RSTr package; using just a few
arguments, we can easily generate estimates across our population
groups.