The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.

nowcastr

Lifecycle: experimental License: MIT R version

R package for nowcasting with non-cumulative chain-ladder method.

Installation

pak::pak("whocov/nowcastr")

Quick Start

library(nowcastr)

# Run nowcast with built-in demo data
result <- nowcast_demo %>% 
  nowcast_cl(
    col_date_occurrence = date_occurrence,
    col_date_reporting = date_report,
    col_value = value,
    group_cols = "group"
  )

# View results
print(result@results)
plot(result, which = "results")

Data Requirements

Dataset with at least 2 date columns and a value column. The dataset can also have multiple group-by columns for batch processing.

Note that the delays (difference between the 2 dates) should have constant intervals, i.e., multiples of 1 day or 7 days.

print(nowcast_demo)

# # A tibble: 1,624 × 4
#     value date_occurrence date_report group        
#     <dbl> <date>         <date>      <chr>
#  1 251563 2024-12-16     2025-05-26  Syndromic ARI
#  2 219818 2024-12-23     2025-05-26  Syndromic ARI
#  3 219815 2024-12-23     2025-06-02  Syndromic ARI
#  4 253451 2024-12-30     2025-05-26  Syndromic ARI
#  5 253454 2024-12-30     2025-06-09  Syndromic ARI
#  6 311660 2025-01-06     2025-05-26  Syndromic ARI
#  7 311666 2025-01-06     2025-06-02  Syndromic ARI
#  8 311654 2025-01-06     2025-06-09  Syndromic ARI
#  9 311657 2025-01-06     2025-06-16  Syndromic ARI
# 10 313798 2025-01-13     2025-05-26  Syndromic ARI
# # ℹ 1,614 more rows

Usage

Data Preparation

## Visualize input data
nowcast_demo %>%
  plot_nc_input(
    option = "triangle",
    col_date_occurrence = date_occurrence,
    col_date_reporting = date_report,
    col_value = value,
    group_cols = "group"
  )

## Fill the missing (optional)
data <-
  nowcast_demo %>%
  fill_future_reported_values(
    col_date_occurrence = date_occurrence,
    col_date_reporting = date_report,
    col_value = value,
    group_cols = "group",
    max_delay = "auto"
  )

## Visualize the change
data %>%
  plot_nc_input(
    option = "triangle",
    col_date_occurrence = date_occurrence,
    col_date_reporting = date_report,
    col_value = value,
    group_cols = "group"
  )

Nowcast

nowcast <- data %>%
  nowcast_cl(
    col_date_occurrence = date_occurrence,
    col_date_reporting = date_report,
    col_value = value,
    group_cols = "group",
    time_units = "weeks",
    do_model_fitting = TRUE,
  )

Plotting Results

print(nowcast@delays)
nowcast %>% plot(which = "delays")
print(nowcast@results)
nowcast %>% plot(which = "results")

Output Object

nowcast_cl() returns an S7 object of class nowcast_results with the following properties:

Property Type Description
name character Timestamp identifier for the run
params list Parameters used for nowcasting (unevaluated call)
time_start POSIXct Sys time when function started
time_end POSIXct Sys time when function ended
n_groups numeric Number of groups processed
max_delay numeric Maximum delay used
data data.frame Original input data (required columns only)
completeness data.frame Input data with delays and completeness columns
delays data.frame Aggregated completeness per delay (+ modelled column if fitted)
models data.frame Fitted models (empty if do_model_fitting = FALSE)
results data.frame Final nowcasting predictions

Access properties with $:

nowcast$delays
nowcast$results
nowcast$params

Available methods: - print(nowcast) - Summary of nowcast results - plot(nowcast, which = "delays") - Delay distribution - plot(nowcast, which = "results") - Nowcast time series

Methods

Summary:

  1. Input Data: Ensure three core columns: observed_value / date_of_reporting / date_of_occurrence (e.g. date_of_event / date_of_onset) data has 3 cols
  2. Calculate the reporting_delay (= date_of_reporting - date_of_occurrence) calculate reporting delay
  3. Compute the completeness (= observed_value / true_value (approximated by last_reported_value)) calculate completeness
  4. Aggregate the avg_completeness for each reporting_delay aggregate average completeness
  5. Optional: Fit a curve through that fit model curve
  6. Apply Nowcast: nowcast = observed_value / avg_completeness apply nowcast factor

These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.