This function is auxiliary to zigzag(), see ?zigzag for a description.

smooth_age_5_zigzag_p(
  Value,
  Age,
  ageMin = 40,
  ageMax = 80,
  p = rep(0.05, floor((ageMax - ageMin)/10))
)

Arguments

Value

numeric vector of (presumably) counts in 5-year age groups.

Age

integer vector of age group lower bounds.

ageMin

integer. Lower age bound to adjust values.

ageMax

integer. Upper age bound to adjust values.

p

numeric vector of adjustment parameters.

Value

numeric vector of smoothed population counts.

Details

This function is not intended to be used at the top level, but just in case, make sure that ageMax = ageMin + 10 * length(p). Age groups >= ageMin AND <= ageMin must be in 5-year age groups. This function does no checks.

References

Feeney, G. 2013 "Removing "Zigzag" from Age Data," http://demographer.com/white-papers/2013-removing-zigzag-from-age-data/

Examples

Age <- c(0,1,seq(5,90,by=5)) smooth_age_5_zigzag_min(dth5_zigzag,Age,ageMin=40,ageMax = 80,p=rep(.05,4))
#> [1] 233.0282
# it's used like this in smooth_age_5_zigzag_inner() (p <- optim( rep(.05,4), smooth_age_5_zigzag_min, Value = dth5_zigzag, Age = Age, ageMin = 40, ageMax = 80)$par)
#> [1] 0.02287705 0.07425311 0.01993714 0.09800848
Smoothed <- smooth_age_5_zigzag_p(dth5_zigzag,Age,40,80,p)