|
statcpp
C++17 Header-Only Statistics Library
|
Generalized Linear Models (GLM) More...
#include "statcpp/basic_statistics.hpp"#include "statcpp/continuous_distributions.hpp"#include "statcpp/linear_regression.hpp"#include <algorithm>#include <cmath>#include <cstddef>#include <exception>#include <limits>#include <stdexcept>#include <utility>#include <vector>Go to the source code of this file.
Classes | |
| struct | statcpp::glm_result |
| GLM result structure. More... | |
| struct | statcpp::glm_residuals |
| GLM residuals structure. More... | |
Namespaces | |
| namespace | statcpp |
| namespace | statcpp::detail |
| Internal helper functions. | |
Enumerations | |
| enum class | statcpp::link_function { statcpp::identity , statcpp::logit , statcpp::probit , statcpp::log , statcpp::inverse , statcpp::cloglog } |
| Link function types. More... | |
| enum class | statcpp::distribution_family { statcpp::gaussian , statcpp::binomial , statcpp::poisson , statcpp::gamma_family } |
| Distribution family. More... | |
Functions | |
| double | statcpp::detail::link_transform (double mu, link_function link) |
| Link function g(mu) -> eta. | |
| double | statcpp::detail::inverse_link (double eta, link_function link) |
| Inverse link function g^{-1}(eta) -> mu. | |
| double | statcpp::detail::link_derivative (double mu, link_function link) |
| Derivative of link function d(eta)/d(mu) = g'(mu) | |
| double | statcpp::detail::variance_function (double mu, distribution_family family) |
| Variance function V(mu) | |
| double | statcpp::detail::deviance_residual (double y, double mu, distribution_family family) |
| Calculate deviance (for a single observation) | |
| std::vector< double > | statcpp::detail::solve_weighted_least_squares (const std::vector< std::vector< double > > &X, const std::vector< double > &z, const std::vector< double > &w, std::vector< std::vector< double > > &XtWX_inv) |
| Solve weighted least squares. | |
| glm_result | statcpp::glm_fit (const std::vector< std::vector< double > > &X, const std::vector< double > &y, distribution_family family=distribution_family::gaussian, link_function link=link_function::identity, std::size_t max_iter=100, double tol=1e-8) |
| Fit a generalized linear model. | |
| glm_result | statcpp::logistic_regression (const std::vector< std::vector< double > > &X, const std::vector< double > &y, std::size_t max_iter=100, double tol=1e-8) |
| Logistic regression. | |
| double | statcpp::predict_probability (const glm_result &model, const std::vector< double > &x) |
| Probability prediction with logistic regression. | |
| std::vector< double > | statcpp::odds_ratios (const glm_result &model) |
| Calculate odds ratios. | |
| std::vector< std::pair< double, double > > | statcpp::odds_ratios_ci (const glm_result &model, double confidence=0.95) |
| Confidence intervals for odds ratios. | |
| glm_result | statcpp::poisson_regression (const std::vector< std::vector< double > > &X, const std::vector< double > &y, std::size_t max_iter=100, double tol=1e-8) |
| Poisson regression. | |
| double | statcpp::predict_count (const glm_result &model, const std::vector< double > &x) |
| Expected count prediction with Poisson regression. | |
| std::vector< double > | statcpp::incidence_rate_ratios (const glm_result &model) |
| Calculate Incidence Rate Ratios. | |
| glm_residuals | statcpp::compute_glm_residuals (const glm_result &model, const std::vector< std::vector< double > > &X, const std::vector< double > &y) |
| Calculate GLM residuals. | |
| double | statcpp::overdispersion_test (const glm_result &model, const std::vector< std::vector< double > > &X, const std::vector< double > &y) |
| Overdispersion test (for Poisson regression) | |
| double | statcpp::pseudo_r_squared_mcfadden (const glm_result &model) |
| McFadden's pseudo R-squared. | |
| double | statcpp::pseudo_r_squared_nagelkerke (const glm_result &model, const std::vector< double > &y, std::size_t n) |
| Nagelkerke's pseudo R-squared. | |
Generalized Linear Models (GLM)
Provides generalized linear models including logistic regression and Poisson regression. Uses the IRLS (Iteratively Reweighted Least Squares) algorithm for parameter estimation.
Definition in file glm.hpp.