[][src]Crate linregress

Crate linregress provides an easy to use implementation of ordinary least squared linear regression with some basic statistics. See RegressionModel for details.

The builder FormulaRegressionBuilder is used to construct a model from a table of data and a R-style formula. Currently only very simple formulae are supported, see FormulaRegressionBuilder.formula for details.

Example

use linregress::{FormulaRegressionBuilder, RegressionDataBuilder};

let y = vec![1.,2. ,3. , 4., 5.];
let x1 = vec![5., 4., 3., 2., 1.];
let x2 = vec![729.53, 439.0367, 42.054, 1., 0.];
let x3 = vec![258.589, 616.297, 215.061, 498.361, 0.];
let data = vec![("Y", y), ("X1", x1), ("X2", x2), ("X3", x3)];
let data = RegressionDataBuilder::new().build_from(data)?;
let formula = "Y ~ X1 + X2 + X3";
let model = FormulaRegressionBuilder::new()
    .data(&data)
    .formula(formula)
    .fit()?;
let parameters = model.parameters;
let standard_errors = model.se;
let pvalues = model.pvalues;
assert_eq!(
    parameters.pairs(),
    vec![
        ("X1".to_string(), -0.9999999999999745),
        ("X2".to_string(), 0.00000000000000005637851296924623),
        ("X3".to_string(), 0.00000000000000008283304597789254),
    ]
);
assert_eq!(
    standard_errors.pairs(),
    vec![
        ("X1".to_string(), 0.00000000000019226371555402852),
        ("X2".to_string(), 0.0000000000000008718958950659518),
        ("X3".to_string(), 0.0000000000000005323837152041135),
    ]
);
assert_eq!(
    pvalues.pairs(),
    vec![
        ("X1".to_string(), 0.00000000000012239888283055414),
        ("X2".to_string(), 0.9588921357097694),
        ("X3".to_string(), 0.9017368322742073),
    ]
);

Structs

FormulaRegressionBuilder

A builder to create and fit a linear regression model.

RegressionData

A container struct for the regression data.

RegressionDataBuilder

A builder to create a RegressionData struct for use with a FormulaRegressionBuilder.

RegressionModel

A fitted regression model.

RegressionParameters

A parameter of a fitted RegressionModel given for the intercept and each regressor.

Enums

InvalidValueHandling

How to proceed if given non real f64 values (NaN or infinity or negative infinity).