pub struct PredictiveCheckReport {
pub kind: PredictiveCheckKind,
pub observed: f64,
pub predictive_mean: f64,
pub predictive_sd: f64,
pub p_value: f64,
pub observed_dispersion: f64,
pub predictive_dispersion_mean: f64,
pub dispersion_p_value: f64,
pub n_sims: u32,
}Expand description
Result of a prior or posterior predictive check.
Carries two discriminating axes so a model cannot pass merely by getting
the predictive mean right: (1) location, via the mean of mean_y over
simulations, and (2) dispersion, via the mean of the per-simulation
cross-observation SD of predicted values. A model whose predictive mean is
unbiased but whose predictive spread is badly wrong (e.g. off by 5×) fails
on the dispersion axis even though the location axis looks fine.
Fields§
§kind: PredictiveCheckKindCheck kind.
observed: f64Observed summary statistic (e.g. outcome mean).
predictive_mean: f64Mean of the predictive summary across simulations.
predictive_sd: f64SD of the predictive summary.
p_value: f64Two-sided tail probability of observed under the predictive distribution.
observed_dispersion: f64Observed dispersion statistic: sample SD of the outcome across rows.
predictive_dispersion_mean: f64Mean, across simulations, of the per-simulation cross-observation SD of predicted values (the dispersion test statistic).
dispersion_p_value: f64Two-sided Monte Carlo p-value of observed_dispersion under the
simulated dispersion-statistic distribution.
n_sims: u32Number of predictive simulations.
Implementations§
Source§impl PredictiveCheckReport
impl PredictiveCheckReport
Sourcepub fn to_refutation_report(
&self,
original_ate: f64,
alpha: f64,
) -> RefutationReport
pub fn to_refutation_report( &self, original_ate: f64, alpha: f64, ) -> RefutationReport
Convert to a suite RefutationReport using a two-sided α threshold on both
the location (p_value) and dispersion (dispersion_p_value) axes.
A single mean-only statistic cannot distinguish a well-calibrated predictive distribution from one with the right mean but the wrong spread (U/M-shaped misspecification on variance), so both axes must clear the threshold.
Trait Implementations§
Source§impl Clone for PredictiveCheckReport
impl Clone for PredictiveCheckReport
Source§fn clone(&self) -> PredictiveCheckReport
fn clone(&self) -> PredictiveCheckReport
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreAuto Trait Implementations§
impl Freeze for PredictiveCheckReport
impl RefUnwindSafe for PredictiveCheckReport
impl Send for PredictiveCheckReport
impl Sync for PredictiveCheckReport
impl Unpin for PredictiveCheckReport
impl UnsafeUnpin for PredictiveCheckReport
impl UnwindSafe for PredictiveCheckReport
Blanket Implementations§
impl<T> Allocation for T
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> DistributionExt for Twhere
T: ?Sized,
impl<T> DistributionExt for Twhere
T: ?Sized,
impl<T> ForeignBufferOwner for T
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more