1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
//! # inferust
//!
//! **Statistical modeling for Rust** — a `statsmodels`-inspired library.
//!
//! ## Modules
//!
//! | Module | Contents |
//! |--------|---------|
//! | [`regression`] | OLS/WLS with fast/stable solvers, robust SEs, confidence intervals, influence/residual diagnostics, and full summary output |
//! | [`glm`] | Binary logistic and Poisson regression with Wald inference, covariance, residual diagnostics, likelihood-ratio tests, prediction intervals, classification metrics, and post-estimation helpers |
//! | [`discrete`] | Probit, negative binomial, and multinomial logit starters |
//! | [`glm_family`] | Generic Gaussian/Binomial/Poisson GLM front-end |
//! | [`time_series`] | AR/ARIMA starters plus ACF, PACF, and Ljung-Box diagnostics |
//! | [`diagnostics`] | VIF, Breusch-Pagan, White, and RESET diagnostics |
//! | [`evaluation`] | Regression/classification metrics and bootstrap intervals |
//! | [`robust`] | Huber robust linear regression |
//! | [`gee`] | Independence-working-correlation GEE starters |
//! | [`mixed`] | Random-intercept mixed linear model starter |
//! | [`hypothesis`] | t-tests, chi-squared, one-way ANOVA |
//! | [`descriptive`] | Summary stats (mean, std, skewness, kurtosis, quartiles) |
//! | [`data`] | Minimal named-column data frame and formula-based OLS/WLS/logistic/Poisson fitting |
//! | [`correlation`] | Pearson, Spearman, correlation matrices |
//!
//! ## OLS solver strategy
//!
//! [`regression::Ols`] defaults to a fast Cholesky solve for full-rank,
//! well-conditioned designs. Use `.stable()` or
//! [`regression::OlsSolver::Svd`] when you prefer the more robust SVD path.
//! Use `.robust()` or [`regression::OlsCovariance`] for HC robust inference.
//!
//! ## Quick start
//!
//! ```rust
//! use inferust::regression::Ols;
//!
//! let x = vec![vec![1.0], vec![2.0], vec![3.0], vec![4.0], vec![5.0]];
//! let y = vec![2.1, 3.9, 6.2, 7.8, 10.1];
//!
//! Ols::new()
//! .with_feature_names(vec!["hours".to_string()])
//! .fit(&x, &y)
//! .unwrap()
//! .print_summary();
//! ```
pub use ;