Type: | Package |
Title: | Zero-Inflated and Hurdle INAR(1) Models |
Version: | 0.1.0 |
Maintainer: | Fusheng Yang <fusheng.yang@uconn.edu> |
Description: | Provides tools for estimating Zero-Inflated INAR(1) (ZI-INAR(1)) and Hurdle INAR(1) (H-INAR(1)) models using 'Stan'. It allows users to simulate time series data for these models, estimate parameters, and evaluate model fit using various criteria. Functions include model estimation, simulation, and likelihood-based metrics. |
License: | GPL-3 |
Encoding: | UTF-8 |
Imports: | rstan, VGAM, actuar, matrixStats, coda, ggplot2, gridExtra, stats, knitr, utils |
Suggests: | testthat (≥ 3.0.0), rmarkdown |
RoxygenNote: | 7.3.3 |
Depends: | R (≥ 4.0.0) |
NeedsCompilation: | no |
Packaged: | 2025-10-11 21:02:31 UTC; ivyyang |
Author: | Fusheng Yang [aut, cre], Victor Hugo Lachos Davila [aut] |
Repository: | CRAN |
Date/Publication: | 2025-10-16 18:30:07 UTC |
Simulate Time Series Data for ZI-INAR(1) or H-INAR(1) Models
Description
This function simulates time series data for Zero-Inflated INAR(1) (ZI-INAR(1)) or Hurdle INAR(1) (H-INAR(1)) models, using either Poisson or Negative Binomial distributions.
Usage
data_simu(n, alpha, rho, theta, mod_type, distri)
Arguments
n |
Integer specifying the number of observations to simulate. |
alpha |
Numeric value between 0 and 1 representing the autoregressive parameter. |
rho |
Numeric value between 0 and 1 representing the zero-inflation or hurdle parameter. |
theta |
Numeric vector of model parameters. For Poisson, it should be
|
mod_type |
Character string indicating the model type. Use |
distri |
Character string specifying the distribution. Options are
|
Value
A numeric vector containing the simulated time series data.
References
Part of the implementation of this function was adapted from the ZINAR1 package. The ZINAR1 package simulates first-order integer-valued autoregressive processes with zero-inflated innovations (ZINAR(1)) and estimates its parameters under a frequentist approach.
For more information about the ZINAR1 package, please refer to:
Aldo M. Garay, João Vitor Ribeiro (2022). ZINAR1: Simulates ZINAR(1) Model and Estimates Its Parameters Under Frequentist Approach. R package version 0.1.0. Available at: https://CRAN.R-project.org/package=ZINAR1.
Garay, A. M., Ribeiro, J. V. (2021). First-Order Integer Valued AR Processes with Zero-Inflated Innovations. In: Nonstationary Systems: Theory and Applications, Springer. DOI: doi:10.1007/978-3-030-82110-4_2.
We acknowledge the original authors, Aldo M. Garay and João Vitor Ribeiro, for their contributions.
Examples
# Simulate 50 observations from a Zero-Inflated Poisson INAR(1) model
y_data <- data_simu(n = 50, alpha = 0.5, rho = 0.3, theta = c(5),
mod_type = "zi", distri = "poi")
head(y_data)
Get Parameter Estimates from Stan Model Fit
Description
Extracts parameter estimates from a Stan model fit, including mean, median, standard deviation, and HPD intervals.
Usage
get_est(distri, stan_fit)
Arguments
distri |
Character string specifying the distribution. Options are "poi" or "nb". |
stan_fit |
A |
Value
A summary of the parameter estimates.
Examples
# Generate toy data
y_data <- data_simu(n = 60, alpha = 0.5, rho = 0.3, theta = c(5),
mod_type = "zi", distri = "poi")
# Fit a small Stan model (may take > 5s on first compile)
stan_fit <- get_stanfit(mod_type = "zi", distri = "poi", y = y_data)
# Get parameter estimates from the Stan model fit
get_est(distri = "poi", stan_fit = stan_fit)
Get Model Selection Criteria
Description
Calculates model selection criteria such as AIC, BIC, DIC, and WAIC from a Stan model fit.
Usage
get_mod_sel(y, mod_type, distri, stan_fit)
Arguments
y |
A numeric vector representing the observed data. |
mod_type |
Character string indicating the model type ("zi" or "h"). |
distri |
Character string specifying the distribution ("poi" or "nb"). |
stan_fit |
A |
Value
A summary table of model selection criteria, including:
- EAIC
Expected Akaike Information Criterion (AIC).
- EBIC
Expected Bayesian Information Criterion (BIC).
- DIC
Deviance Information Criterion (DIC).
- WAIC1
First version of Watanabe-Akaike Information Criterion (WAIC).
- WAIC2
Second version of Watanabe-Akaike Information Criterion (WAIC).
The summary is printed in a table format for easy interpretation.
Examples
# Generate toy data
y_data <- data_simu(n = 60, alpha = 0.5, rho = 0.3, theta = c(5),
mod_type = "zi", distri = "poi")
# Fit a small Stan model (may take > 5s on first compile)
stan_fit <- get_stanfit(mod_type = "zi", distri = "poi", y = y_data)
# Get model selection criteria
get_mod_sel(y = y_data, mod_type = "zi", distri = "poi",
stan_fit = stan_fit)
Get Predictions from Stan Model Fit
Description
Extracts predicted values from a Stan model fit.
Usage
get_pred(stan_fit)
Arguments
stan_fit |
A |
Value
A summary of the predictions and bar charts of each prediction.
Examples
# Generate toy data
y_data <- data_simu(n = 60, alpha = 0.5, rho = 0.3, theta = c(5),
mod_type = "zi", distri = "poi")
# Fit a small Stan model (may take > 5s on first compile)
stan_fit <- get_stanfit(mod_type = "zi", distri = "poi", y = y_data)
# Get predicted values from the Stan model fit
get_pred(stan_fit = stan_fit)
Fit ZI-INAR(1) or H-INAR(1) Model using Stan
Description
This function fits a Zero-Inflated INAR(1) (ZI-INAR(1)) or Hurdle INAR(1) (H-INAR(1)) model using Stan and returns the model fit.
Usage
get_stanfit(
mod_type,
distri,
y,
n_pred = 4,
thin = 2,
chains = 1,
iter = 2000,
warmup = iter/2,
seed = NA
)
Arguments
mod_type |
Character string indicating the model type. Use "zi" for zero-inflated models and "h" for hurdle models. |
distri |
Character string specifying the distribution. Options are "poi" for Poisson or "nb" for Negative Binomial. |
y |
A numeric vector of integers representing the observed data. |
n_pred |
Integer specifying the number of time points for future predictions (default is 4). |
thin |
Integer indicating the thinning interval for Stan sampling (default is 2). |
chains |
Integer specifying the number of Markov chains to run (default is 1). |
iter |
Integer specifying the total number of iterations per chain (default is 2000). |
warmup |
Integer specifying the number of warmup iterations per chain
(default is |
seed |
Numeric seed for reproducibility (default is NA). |
Value
A stanfit
object containing the Stan model fit.
Examples
# Generate toy data
y_data <- data_simu(n = 60, alpha = 0.5, rho = 0.3, theta = c(5),
mod_type = "zi", distri = "poi")
# Fit the model using Stan (small config)
stan_fit <- get_stanfit(mod_type = "zi", distri = "poi", y = y_data)
print(stan_fit)