pub trait DiffusionOptimize {
// Required method
fn optimize_diffusion(
&self,
data: &Data,
theta: &mut Theta,
sigma_params: &[String],
error_models: &AssayErrorModels,
posterior: Option<&Posterior>,
config: DiffusionConfig,
) -> Result<DiffusionResult>;
}Expand description
Trait for SDEs that support diffusion parameter optimization.
This enables method-style calls: sde.optimize_diffusion(...).
Required Methods§
Sourcefn optimize_diffusion(
&self,
data: &Data,
theta: &mut Theta,
sigma_params: &[String],
error_models: &AssayErrorModels,
posterior: Option<&Posterior>,
config: DiffusionConfig,
) -> Result<DiffusionResult>
fn optimize_diffusion( &self, data: &Data, theta: &mut Theta, sigma_params: &[String], error_models: &AssayErrorModels, posterior: Option<&Posterior>, config: DiffusionConfig, ) -> Result<DiffusionResult>
Optimize SDE diffusion parameters for each support point independently.
Modifies theta in-place: for each support point, the sigma parameter
columns are replaced with values that maximize the log-likelihood of all
subjects under this SDE. Primary (non-sigma) parameter values are held fixed.
If posterior is provided, subject contributions are weighted by their
posterior responsibility for each support point: p(z_i=j) from Stage 1.
If None, falls back to uniform weighting.
§Panics
Panics if any name in sigma_params is not found in theta.parameters().