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, object

__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)