Function log_likelihood_batch
pub fn log_likelihood_batch(
equation: &impl Equation,
subjects: &Data,
parameters: &ArrayBase<OwnedRepr<f64>, Dim<[usize; 2]>>,
residual_error_models: &ResidualErrorModels,
) -> Result<Vec<f64>, PharmsolError>Expand description
Compute log-likelihoods for all subjects in parallel, where each subject has its own parameter vector.
This function simulates each subject with their individual parameters and computes log-likelihood using prediction-based sigma (appropriate for parametric algorithms like SAEM, FOCE).
§Parameters
equation: The equation to use for simulationsubjects: The subject data (N subjects)parameters: Parameter vectors for each subject (N × P matrix, row i = params for subject i)residual_error_models: The residual error models (prediction-based sigma)
§Returns
A vector of N log-likelihoods, one per subject. Returns f64::NEG_INFINITY
for subjects where simulation fails.
§Example
ⓘ
use pharmsol::prelude::simulator::log_likelihood_batch;
use pharmsol::{ResidualErrorModel, ResidualErrorModels};
let residual_error = ResidualAssayErrorModels::new()
.add(0, ResidualErrorModel::constant(0.5));
let log_liks = log_likelihood_batch(
&equation,
&data,
¶meters,
&residual_error,
)?;