Skip to main content

Module iov

Module iov 

Source
Expand description

SDE-based Inter-Occasion Variability optimization. SDE-based Inter-Occasion Variability (IOV) analysis.

This module provides optimize_diffusion, which optimizes SDE diffusion (sigma) parameters for each support point independently, using the NelderMead algorithm. The optimization runs in parallel over support points via rayon.

§Workflow

  1. Fit an ODE model with NPAG/NPOD to obtain support points (Stage 1).
  2. Add sigma parameter columns to the theta using Theta::with_added_parameter.
  3. Construct an SDE model (user-provided) that maps sigma parameters to diffusion terms.
  4. Call optimize_diffusion to optimize sigma per support point.

§Example

use pmcore::prelude::*;
use pmcore::iov::DiffusionOptimize;
use pmcore::iov::DiffusionConfig;

let r_ode = problem.fit_with(NPAG::default())?;
let mut joint = r_ode.get_theta()
    .with_added_parameter("ske", 1e-6, 1.0, 0.01)?;

let diff = sde.optimize_diffusion(
    &r_ode.data(), &mut joint,
    &["ske"], &r_ode.error_models(),
    DiffusionConfig::default(),
)?;

Structs§

DiffusionConfig
Configuration for SDE diffusion parameter optimization.
DiffusionResult
Results of SDE diffusion parameter optimization.

Traits§

DiffusionOptimize
Trait for SDEs that support diffusion parameter optimization.