Skip to contents

Fits an OU process \(dX_t = theta(mu - X_t) dt + sigma dW_t\) to daily incident counts via OLS on first-differences, then runs n_paths forward simulations of length T_days.

Usage

morie_tps_langevin_simulate(
  df,
  ds_name = "?",
  n_paths = 100L,
  T_days = 365L,
  dt = 1,
  seed = 42L
)

Arguments

df

A data.frame.

ds_name

Character label.

n_paths

Number of forward paths to simulate.

T_days

Forward horizon in days.

dt

Time step (days).

seed

RNG seed.

Value

A morie_rich_result list with theta, mu, sigma, paths (matrix of n_paths x n_steps), and final-day quantiles.

Examples

set.seed(1)
df <- data.frame(OCC_YEAR = rep(2014:2023, each = 30),
                 OCC_MONTH = sample(month.name, 300, TRUE),
                 HOOD_158 = sample(sprintf("%03d", 1:20), 300, TRUE),
                 LAT_WGS84 = runif(300, 43.6, 43.8),
                 LONG_WGS84 = runif(300, -79.5, -79.2))
res <- try(morie_tps_langevin_simulate(df, ds_name = "synthetic", n_paths = 20L))
if (!inherits(res, "try-error")) str(res, max.level = 1)
#> List of 5
#>  $ title         : chr "Langevin OU -- synthetic"
#>  $ call          : chr "morie_tps_langevin_simulate(df=<300r>, n_paths=20, T_days=365)"
#>  $ summary_lines : list()
#>  $ warnings      : chr "only 0 timestamps"
#>  $ interpretation: chr "No analysis: at least 60 timestamps required."
#>  - attr(*, "class")= chr [1:3] "morie_tps_stochastic_result" "morie_rich_result" "list"