# SuanShu, a Java numerical and statistical library

com.numericalmethod.suanshu.stats.regression.linear.glm

## Class GeneralizedLinearModel

• java.lang.Object
• com.numericalmethod.suanshu.stats.regression.linear.glm.GeneralizedLinearModel
• All Implemented Interfaces:
LinearModel

public class GeneralizedLinearModel
extends Object
implements LinearModel
The Generalized Linear Model (GLM) is a flexible generalization of the Ordinary Least Squares regression. GLM generalizes linear regression by allowing the linear model to be related to the response variable via a link function and by allowing the magnitude of the variance of each measurement to be a function of its predicted value. In GLM, each outcome of the dependent variables, Y, is assumed to be generated from a particular distribution in the exponential family, a large range of probability distributions that includes the normal, binomial and Poisson distributions, among others. The mean, μ, of the distribution depends on the independent variables, X, through
E(Y) = μ = g-1(Xβ)
where E(Y) is the expected value of Y; is the linear predictor, a linear combination of unknown parameters, β; g is the link function.

The R equivalent function is glm.

• Wikipedia: Generalized linear model
• "P. J. MacCullagh and J. A. Nelder. An algorithm for fitting generalized linear models," in Generalized Linear Models, 2nd ed. pp.40. Section 2.5."
• ### Constructor Summary

Constructors
Constructor and Description
GeneralizedLinearModel(GLMProblem problem)
Solves a generalized linear problem using the Iterative Re-weighted Least Squares algorithm.
GeneralizedLinearModel(GLMProblem problem, GLMFitting fitting)
Constructs a GeneralizedLinearModel instance.
• ### Method Summary

All Methods
Modifier and Type Method and Description
double AIC()
Gets the Akaike information criterion (AIC).
GLMBeta beta()
Gets the GLM coefficients estimator, β^.
double Ey(Vector x)
Computes the expectation $$E(y(x))$$ given an input.
GLMResiduals residuals()
Gets the residual analysis of this GLM regression.
• ### Methods inherited from class java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
• ### Constructor Detail

• #### GeneralizedLinearModel

public GeneralizedLinearModel(GLMProblem problem,
GLMFitting fitting)
Constructs a GeneralizedLinearModel instance.
Parameters:
problem - the generalized linear regression problem to be solved
fitting - the fitting method, c.f., GLMFitting
• #### GeneralizedLinearModel

public GeneralizedLinearModel(GLMProblem problem)
Solves a generalized linear problem using the Iterative Re-weighted Least Squares algorithm.
Parameters:
problem - the generalized linear regression problem to be solved
IWLS
• ### Method Detail

• #### Ey

public double Ey(Vector x)
Description copied from interface: LinearModel
Computes the expectation $$E(y(x))$$ given an input.
Specified by:
Ey in interface LinearModel
Parameters:
x - an input
Returns:
$$E(y(x))$$
• #### beta

public GLMBeta beta()
Gets the GLM coefficients estimator, β^.
Specified by:
beta in interface LinearModel
Returns:
the GLM coefficients estimator, β^
• #### residuals

public GLMResiduals residuals()
Gets the residual analysis of this GLM regression.
Specified by:
residuals in interface LinearModel
Returns:
the residual analysis of this GLM regression
• #### AIC

public double AIC()
Gets the Akaike information criterion (AIC).
Returns:
the Akaike information criterion (AIC)