algorithms.statistics.models.glm

Module: algorithms.statistics.models.glm

Inheritance diagram for nipy.algorithms.statistics.models.glm:

Inheritance diagram of nipy.algorithms.statistics.models.glm

General linear models

Model

class nipy.algorithms.statistics.models.glm.Model(design, family=<nipy.algorithms.statistics.models.family.family.Gaussian object>)

Bases: nipy.algorithms.statistics.models.regression.WLSModel, nipy.externals.six.Iterator

Methods

cont([tol]) Continue iterating, or has convergence been obtained?
deviance([Y, results, scale]) Return (unnormalized) log-likelihood for GLM.
estimate_scale([Y, results]) Return Pearson’s X^2 estimate of scale.
fit(Y)
has_intercept() Check if column of 1s is in column space of design
information(beta[, nuisance]) Returns the information matrix at (beta, Y, nuisance).
initialize(design)
logL(beta, Y[, nuisance]) Returns the value of the loglikelihood function at beta.
next()
predict([design]) After a model has been fit, results are (assumed to be) stored in self.results, which itself should have a predict method.
rank() Compute rank of design matrix
score(beta, Y[, nuisance]) Gradient of the loglikelihood function at (beta, Y, nuisance).
whiten(X) Whitener for WLS model, multiplies by sqrt(self.weights)
__init__(design, family=<nipy.algorithms.statistics.models.family.family.Gaussian object>)
cont(tol=1e-05)

Continue iterating, or has convergence been obtained?

deviance(Y=None, results=None, scale=1.0)

Return (unnormalized) log-likelihood for GLM.

Note that self.scale is interpreted as a variance in old_model, so we divide the residuals by its sqrt.

estimate_scale(Y=None, results=None)

Return Pearson’s X^2 estimate of scale.

fit(Y)
has_intercept()

Check if column of 1s is in column space of design

information(beta, nuisance=None)

Returns the information matrix at (beta, Y, nuisance).

See logL for details.

Parameters:

beta : ndarray

The parameter estimates. Must be of length df_model.

nuisance : dict

A dict with key ‘sigma’, which is an estimate of sigma. If None, defaults to its maximum likelihood estimate (with beta fixed) as sum((Y - X*beta)**2) / n where n=Y.shape[0], X=self.design.

Returns:

info : array

The information matrix, the negative of the inverse of the Hessian of the of the log-likelihood function evaluated at (theta, Y, nuisance).

initialize(design)
logL(beta, Y, nuisance=None)

Returns the value of the loglikelihood function at beta.

Given the whitened design matrix, the loglikelihood is evaluated at the parameter vector, beta, for the dependent variable, Y and the nuisance parameter, sigma.

Parameters:

beta : ndarray

The parameter estimates. Must be of length df_model.

Y : ndarray

The dependent variable

nuisance : dict, optional

A dict with key ‘sigma’, which is an optional estimate of sigma. If None, defaults to its maximum likelihood estimate (with beta fixed) as sum((Y - X*beta)**2) / n, where n=Y.shape[0], X=self.design.

Returns:

loglf : float

The value of the loglikelihood function.

Notes

The log-Likelihood Function is defined as

\[\ell(\beta,\sigma,Y)= -\frac{n}{2}\log(2\pi\sigma^2) - \|Y-X\beta\|^2/(2\sigma^2)\]

The parameter \(\sigma\) above is what is sometimes referred to as a nuisance parameter. That is, the likelihood is considered as a function of \(\beta\), but to evaluate it, a value of \(\sigma\) is needed.

If \(\sigma\) is not provided, then its maximum likelihood estimate:

\[\hat{\sigma}(\beta) = \frac{\text{SSE}(\beta)}{n}\]

is plugged in. This likelihood is now a function of only \(\beta\) and is technically referred to as a profile-likelihood.

References

[R1]
  1. Green. “Econometric Analysis,” 5th ed., Pearson, 2003.
next()
niter = 10
predict(design=None)

After a model has been fit, results are (assumed to be) stored in self.results, which itself should have a predict method.

rank()

Compute rank of design matrix

score(beta, Y, nuisance=None)

Gradient of the loglikelihood function at (beta, Y, nuisance).

The graient of the loglikelihood function at (beta, Y, nuisance) is the score function.

See logL() for details.

Parameters:

beta : ndarray

The parameter estimates. Must be of length df_model.

Y : ndarray

The dependent variable.

nuisance : dict, optional

A dict with key ‘sigma’, which is an optional estimate of sigma. If None, defaults to its maximum likelihood estimate (with beta fixed) as sum((Y - X*beta)**2) / n, where n=Y.shape[0], X=self.design.

Returns:

The gradient of the loglikelihood function. :

whiten(X)

Whitener for WLS model, multiplies by sqrt(self.weights)