hp {BayesMortalityPlus} | R Documentation |

## Bayesian Heligman-Pollard curve for mortality table graduation

### Description

This function fits the Heligman-Pollard (HP) model following a Bayesian framework using Markov chain Monte Carlo techniques to sample the posterior distribution. Three model options are available: The Binomial and the Poisson models consider nine parameters, whereas the Log-Normal model considers eight parameters for modelling the HP curve.

### Usage

```
hp(x, Ex, Dx, model = c("binomial", "lognormal", "poisson"),
M = NULL, bn = NULL, thin = 10, m = rep(NA, 8), v = rep(NA, 8),
inits = NULL, K = NULL, sigma2 = NULL, prop.control = NULL,
reduced_model = FALSE)
```

### Arguments

`x` |
Numeric vector of the ages. |

`Ex` |
Numeric vector with the exposure by age. |

`Dx` |
Numeric vector with the death counts by age. |

`model` |
Character string specifying the model to be adopted. The options are: "binomial", "lognormal" or "poisson". |

`M` |
Positive integer indicating the number of iterations of the MCMC run. The default value is 50000 iterations. For the reduced model, the default is 30000 iterations. |

`bn` |
Non-negative integer indicating the number of iteration to be discarded as the burn-in period. The default value is half of the M value, rounded. |

`thin` |
Positive integer specifying the period for saving samples. The default value is 10. |

`m` |
Numeric vector with the mean of the prior distributions for (A, B, C, D, E, F, G, H). |

`v` |
Numeric vector with the variance of the prior distributions for (A, B, C, D, E, F, G, H). |

`inits` |
Numeric vector with the initial values for the parameters (A, B, C, D, E, F, G, H). |

`K` |
Number that specifies the extra parameter 'K' value for binomial and poisson models. It is considered only if model = "binomial" or model = "poisson". The default value is the optimal value. |

`sigma2` |
Positive number that specifies initial value of sigma2 in lognormal model. It is considered only if model = "lognormal". |

`prop.control` |
Positive number that is considered for tuning the acceptance rate of MCMC. |

`reduced_model` |
Logical value which determines if reduced model should be addressed. If 'TRUE' (default), the first term of the HP curve (infant mortality) is not considered. |

### Details

The binomial model assumes that Dx, the death count for the age x, has a binomial distribution: Bin(Ex, qx), where qx is probability of death in age x. The poisson model assumes that Dx has a Poisson distribution: Po(Ex*qx). Both models consider the nine parameters HP curve, that was proposed by Heligman and Pollard (1980):

`HP_x = A^{(x+B)^C} + De^{(-E(log(x/F))^2)} + GH^x/(1+KGH^x)`

`qx = 1-e^{(-HP_x)}`

This approximation ensures that qx, which is a probability, is in the correct range.

The Log-Normal model assumes that the log odds of death qx/(1-qx) has Normal distribution with a constant variance for all the ages. This model was proposed by Dellaportas et al.(2001) and they consider the eighth parameters HP curve as follows:

`log(qx/(1-qx)) = log(A^{(x+B)^C} + De^{-E(log(x/F))^2} + GH^x) + \epsilon_x`

,

where `\epsilon_x`

has independent distributions Normal(0, sigma2) for all ages. More details
of this model are available in Dellaportas, Smith e Stavropoulos (2001).

The reduced model does not consider the first term of the HP curve: `A^{(x+B)^C}`

. In this
case, A, B and C are fixed as zero.

All parameters, with the exception of the extra parameter K of the Binomial and the Poisson models that is the estimated optimal value, are estimated by the MCMC methods. Gibbs sampling for sigma2 and Metropolis-Hastings for parameters A, B, C, D, E, F, G and H. Informative prior distributions should help the method to converge quickly.

### Value

A `HP`

class object.

`summary` |
A table with summaries measures of the parameters. |

`post.samples` |
A list with the chains generated by MCMC. |

`data` |
A table with the data considered in fitted model. |

`info` |
A list with some informations of the fitted model like prior distributions mean and variance, initial values. |

### References

Dellaportas, P., Smith, A. F., and Stavropoulos, P. (2001). “Bayesian Analysis of Mortality Data.” *Journal of the Royal Statistical Society: Series A (Statistics in Society)* 164 (2). Wiley Online Library: 275–291.

Heligman, Larry, and John H Pollard. (1980). “The Age Pattern of Mortality.” *Journal of the Institute of Actuaries (1886-1994)* 107 (1). JSTOR: 49–80.

### See Also

`fitted.HP()`

, `plot.HP()`

, `print.HP()`

and `summary.HP()`

for `HP`

methods to native R functions `fitted()`

,
`plot()`

, `print()`

and `summary()`

.

`expectancy.HP()`

and `Heatmap.HP()`

for `HP`

methods to compute and visualise the truncated life expectancy
via `expectancy()`

and `Heatmap()`

functions.

`hp_close()`

for close methods to expand the life tables and `hp_mix()`

for mixing life tables.

`plot_chain()`

to visualise the markov chains, respectively.

### Examples

```
## Importing mortality data from the USA available on the Human Mortality Database (HMD):
data(USA)
## Selecting the exposure and death count of the 2010 male population ranging from 0 to 90 years old
USA2010 = USA[USA$Year == 2010,]
x = 0:90
Ex = USA2010$Ex.Male[x+1]
Dx = USA2010$Dx.Male[x+1]
## Fitting binomial model
fit = hp(x = x, Ex = Ex, Dx = Dx)
print(fit)
fit$summary
fit$info
## Fitting lognormal model
## Specifying number of iterations, burn-in, thinning and the initial value of sigma2
fit = hp(x = x, Ex = Ex, Dx = Dx, model = "lognormal",
M = 1000, bn = 0, thin = 10, sigma2 = 0.1)
summary(fit)
## Fitting poisson model
## Specifying the prior distribution parameters for B and E and fixing K as 0.
fit = hp(x = x, Ex = Ex, Dx = Dx, model = "poisson",
m = c(NA, 0.08, NA, NA, 9, NA, NA, NA),
v = c(NA, 1e-4, NA, NA, 0.1, NA, NA, NA), K = 0)
summary(fit)
## Using other functions available in the package:
## plotting (See "?plot.HP" in the BayesMortalityPlus package for more options):
plot(fit)
## qx estimation (See "?fitted.HP" in the BayesMortalityPlus package for more options):
fitted(fit)
## chain's plot (See "?plot_chain" for more options):
plot_chain(fit)
```

*BayesMortalityPlus*version 0.2.4 Index]