pub struct BinomialMultiFitInputs<'a> {
pub design: ArrayView2<'a, f64>,
pub y: ArrayView2<'a, f64>,
pub penalty: ArrayView2<'a, f64>,
pub lambdas: ArrayView1<'a, f64>,
pub row_weights: Option<ArrayView1<'a, f64>>,
pub fisher_w_override: Option<ArrayView3<'a, f64>>,
pub max_iter: usize,
pub tol: f64,
}Expand description
Inputs for fit_penalized_binomial_multi.
Fields§
§design: ArrayView2<'a, f64>Design matrix X ∈ ℝ^{N×P} (one row per observation, shared across
all response columns).
y: ArrayView2<'a, f64>Multi-column binomial response Y ∈ ℝ^{N×K}. Each column is treated
as an independent binomial-logit response, so every entry must be a
binomial proportion in [0, 1] (hard {0, 1} Bernoulli labels and soft
proportions / probabilities alike). Entries outside [0, 1] are
rejected because the per-entry log-likelihood is then unbounded in η.
penalty: ArrayView2<'a, f64>Shared smoothing penalty S ∈ ℝ^{P×P} (symmetric, PSD).
lambdas: ArrayView1<'a, f64>Per-response smoothing parameter λ_a (length K).
row_weights: Option<ArrayView1<'a, f64>>Optional per-row weights (length N); None ⇒ uniform 1.0.
fisher_w_override: Option<ArrayView3<'a, f64>>Optional per-row Fisher-block override, shape (N, K, K). The K
binomial-logit columns are fit independently, so only the per-column
diagonal [n, a, a] is consumed as the curvature w_n μ_a(1 − μ_a);
off-diagonals must be zero (enforced at the FFI boundary) since a
non-zero cross term cannot be represented by the separable per-column
solve. The gradient/residual path stays analytic — this is a
curvature-only override (issue #349). Diagonal entries must be finite
and non-negative.
max_iter: usizeMaximum Newton iterations per response column; recommend 50.
tol: f64Relative-step convergence tolerance; recommend 1e-7.
Trait Implementations§
Source§impl<'a> Clone for BinomialMultiFitInputs<'a>
impl<'a> Clone for BinomialMultiFitInputs<'a>
Source§fn clone(&self) -> BinomialMultiFitInputs<'a>
fn clone(&self) -> BinomialMultiFitInputs<'a>
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<'a> Freeze for BinomialMultiFitInputs<'a>
impl<'a> RefUnwindSafe for BinomialMultiFitInputs<'a>
impl<'a> Send for BinomialMultiFitInputs<'a>
impl<'a> Sync for BinomialMultiFitInputs<'a>
impl<'a> Unpin for BinomialMultiFitInputs<'a>
impl<'a> UnsafeUnpin for BinomialMultiFitInputs<'a>
impl<'a> UnwindSafe for BinomialMultiFitInputs<'a>
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, U> Imply<T> for U
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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.