pub struct FactorModel;Expand description
Fama-French style multi-factor OLS regression engine.
§Algorithm
Given T observations and K factors, form the T × (K+1) design matrix
X (first column all-ones for the intercept) and solve the normal equations:
β̂ = (X'X)⁻¹ X'yMatrix inversion is done analytically for 2×2 and 3×3 systems and via Gaussian elimination with partial pivoting for larger systems.
Implementations§
Source§impl FactorModel
impl FactorModel
Sourcepub fn fit(
asset: &str,
asset_returns: &[f64],
factors: &[Factor],
) -> FactorExposure
pub fn fit( asset: &str, asset_returns: &[f64], factors: &[Factor], ) -> FactorExposure
Fit a factor model to asset_returns using the provided factors.
§Panics
Does not panic; returns a zero-exposure result if the system is singular or if the return series have mismatched lengths.
Sourcepub fn decompose(
exposure: &FactorExposure,
factor_cov: &CovarianceMatrix,
factor_names: &[String],
) -> VarianceDecomposition
pub fn decompose( exposure: &FactorExposure, factor_cov: &CovarianceMatrix, factor_names: &[String], ) -> VarianceDecomposition
Decompose total variance into systematic and idiosyncratic components.
factor_contributions[i] = β_i² σ_i² + 2 Σ_{j>i} β_i β_j cov(i,j)
Auto Trait Implementations§
impl Freeze for FactorModel
impl RefUnwindSafe for FactorModel
impl Send for FactorModel
impl Sync for FactorModel
impl Unpin for FactorModel
impl UnsafeUnpin for FactorModel
impl UnwindSafe for FactorModel
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