pub struct PairedStats {Show 18 fields
pub paired_tasks: usize,
pub treatment_passes: usize,
pub control_passes: usize,
pub treatment_pass_rate: f64,
pub control_pass_rate: f64,
pub pass_rate_delta: f64,
pub both_pass: usize,
pub treatment_only: usize,
pub control_only: usize,
pub both_fail: usize,
pub mcnemar_chi2: f64,
pub mcnemar_significant_05: bool,
pub treatment_infra_failures: usize,
pub control_infra_failures: usize,
pub treatment_mean_cost_usd: f64,
pub control_mean_cost_usd: f64,
pub treatment_cost_per_pass: Option<f64>,
pub control_cost_per_pass: Option<f64>,
}Expand description
Aggregate paired statistics over the scorable intersection.
Fields§
§paired_tasks: usizeTasks both arms scored (the honest denominator).
treatment_passes: usize§control_passes: usize§treatment_pass_rate: f64§control_pass_rate: f64§pass_rate_delta: f64treatment_pass_rate - control_pass_rate (>0 = the arm under test ahead).
both_pass: usizeConcordant/discordant breakdown of the paired outcomes.
treatment_only: usizeDiscordant, treatment’s favor (McNemar’s b).
control_only: usizeDiscordant, control’s favor (McNemar’s c).
both_fail: usize§mcnemar_chi2: f64McNemar’s chi-square with continuity correction: (|b-c|-1)^2/(b+c).
0.0 when there are no discordant pairs.
mcnemar_significant_05: boolmcnemar_chi2 > 3.841 — the delta is unlikely to be noise at α=0.05.
treatment_infra_failures: usizeArms that couldn’t be attempted (reported, excluded from the delta).
control_infra_failures: usize§treatment_mean_cost_usd: f64Mean inference cost per scorable arm run.
control_mean_cost_usd: f64§treatment_cost_per_pass: Option<f64>Total cost / passes — None when an arm never passed (undefined).
control_cost_per_pass: Option<f64>Trait Implementations§
Source§impl Clone for PairedStats
impl Clone for PairedStats
Source§impl Debug for PairedStats
impl Debug for PairedStats
Source§impl<'de> Deserialize<'de> for PairedStats
impl<'de> Deserialize<'de> for PairedStats
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Source§impl PartialEq for PairedStats
impl PartialEq for PairedStats
Source§impl Serialize for PairedStats
impl Serialize for PairedStats
impl StructuralPartialEq for PairedStats
Auto Trait Implementations§
impl Freeze for PairedStats
impl RefUnwindSafe for PairedStats
impl Send for PairedStats
impl Sync for PairedStats
impl Unpin for PairedStats
impl UnsafeUnpin for PairedStats
impl UnwindSafe for PairedStats
Blanket Implementations§
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
Mutably borrows from an owned value. Read more
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,
impl<T> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
impl<S, T> Duplex<S> for Twhere
T: FromSample<S> + ToSample<S>,
impl<T> ErasedDestructor for Twhere
T: 'static,
Source§impl<S> FromSample<S> for S
impl<S> FromSample<S> for S
fn from_sample_(s: S) -> S
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
fn instrument(self, span: Span) -> Instrumented<Self> ⓘ
Source§fn in_current_span(self) -> Instrumented<Self> ⓘ
fn in_current_span(self) -> Instrumented<Self> ⓘ
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> ⓘ
Converts
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> ⓘ
Converts
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