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: WLSModel

__init__(design, family=<nipy.algorithms.statistics.models.family.family.Gaussian object>)
Parameters:
designarray-like

This is your design matrix. Data are assumed to be column ordered with observations in rows.

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)

Fit model to data Y

Full fit of the model including estimate of covariance matrix, (whitened) residuals and scale.

Parameters:
Yarray-like

The dependent variable for the Least Squares problem.

Returns:
fitRegressionResults
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:
betandarray

The parameter estimates. Must be of length df_model.

nuisancedict

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:
infoarray

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)

Initialize (possibly re-initialize) a Model instance.

For instance, the design matrix of a linear model may change and some things must be recomputed.

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:
betandarray

The parameter estimates. Must be of length df_model.

Yndarray

The dependent variable

nuisancedict, 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:
loglffloat

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

[1]
  1. Green. “Econometric Analysis,” 5th ed., Pearson, 2003.

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:
betandarray

The parameter estimates. Must be of length df_model.

Yndarray

The dependent variable.

nuisancedict, 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)