pub fn ridge_fit(
x: &Matrix,
y: &[f64],
options: &RidgeFitOptions,
) -> Result<RidgeFit>Expand description
Fits ridge regression for a single lambda value.
Ridge regression adds an L2 penalty to the coefficients, which helps with multicollinearity and overfitting. The intercept is never penalized.
§Arguments
x- Design matrix (n rows × p columns including intercept)y- Response variable (n observations)options- Configuration options for ridge regression
§Returns
A RidgeFit containing coefficients, fitted values, residuals, and metrics.
§Example
let y = vec![2.0, 4.0, 6.0, 8.0];
let x = Matrix::new(4, 2, vec![1.0, 1.0, 1.0, 2.0, 1.0, 3.0, 1.0, 4.0]);
let options = RidgeFitOptions {
lambda: 0.1,
intercept: true,
standardize: false,
..Default::default()
};
let fit = ridge_fit(&x, &y, &options).unwrap();
assert!(fit.coefficients.len() == 1); // One slope coefficient
assert!(fit.r_squared > 0.9); // Good fit for linear data