algorithms.statistics.models.glm¶
Module: algorithms.statistics.models.glm
¶
Inheritance diagram for 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]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)