org.apache.commons.math.stat.regression

## Class GLSMultipleLinearRegression

- java.lang.Object
- - org.apache.commons.math.stat.regression.AbstractMultipleLinearRegression
  - - org.apache.commons.math.stat.regression.GLSMultipleLinearRegression

All Implemented Interfaces:
  MultipleLinearRegression

    public class GLSMultipleLinearRegression
    extends AbstractMultipleLinearRegression

The GLS implementation of the multiple linear regression. GLS assumes a general covariance matrix Omega of the error

     u ~ N(0, Omega)

Estimated by GLS,

     b=(X' Omega^-1 X)^-1X'Omega^-1 y

whose variance is

     Var(b)=(X' Omega^-1 X)^-1

Since:
  2.0
Version:
  $Revision: 1073460 $ $Date: 2011-02-22 20:22:39 +0100 (mar. 22 févr. 2011) $

### Field Summary

Fields
`private RealMatrix` `Omega` Covariance matrix.
`private RealMatrix` `OmegaInverse` Inverse of covariance matrix.

### Fields inherited from class org.apache.commons.math.stat.regression.AbstractMultipleLinearRegression

`X, Y`

### Constructor Summary

Constructors
Constructor and Description
`GLSMultipleLinearRegression()`

### Method Summary

Methods
`protected RealVector` `calculateBeta()` Calculates beta by GLS.
`protected RealMatrix` `calculateBetaVariance()` Calculates the variance on the beta.
`protected double` `calculateErrorVariance()` Calculates the estimated variance of the error term using the formula
`protected RealMatrix` `getOmegaInverse()` Get the inverse of the covariance.
`protected void` `newCovarianceData(double[][] omega)` Add the covariance data.
`void` `newSampleData(double[] y, double[][] x, double[][] covariance)` Replace sample data, overriding any previous sample.

### Methods inherited from class org.apache.commons.math.stat.regression.AbstractMultipleLinearRegression

`calculateResiduals, calculateYVariance, estimateErrorVariance, estimateRegressandVariance, estimateRegressionParameters, estimateRegressionParametersStandardErrors, estimateRegressionParametersVariance, estimateRegressionStandardError, estimateResiduals, isNoIntercept, newSampleData, newXSampleData, newYSampleData, setNoIntercept, validateCovarianceData, validateSampleData`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Field Detail

#### Omega

    private RealMatrix Omega

Covariance matrix.

#### OmegaInverse

    private RealMatrix OmegaInverse

Inverse of covariance matrix.

### Constructor Detail

#### GLSMultipleLinearRegression

    public GLSMultipleLinearRegression()

### Method Detail

#### newSampleData

    public void newSampleData(double[] y,
                     double[][] x,
                     double[][] covariance)

Replace sample data, overriding any previous sample.

Parameters:
  `y` - y values of the sample
  `x` - x values of the sample
  `covariance` - array representing the covariance matrix

#### newCovarianceData

    protected void newCovarianceData(double[][] omega)

Add the covariance data.

Parameters:
  `omega` - the [n,n] array representing the covariance

#### getOmegaInverse

    protected RealMatrix getOmegaInverse()

Get the inverse of the covariance.

The inverse of the covariance matrix is lazily evaluated and cached.

Returns:
  inverse of the covariance

#### calculateBeta

    protected RealVector calculateBeta()

Calculates beta by GLS.

      b=(X' Omega^-1 X)^-1X'Omega^-1 y

Specified by:
  `calculateBeta` in class `AbstractMultipleLinearRegression`
Returns:
  beta

#### calculateBetaVariance

    protected RealMatrix calculateBetaVariance()

Calculates the variance on the beta.

      Var(b)=(X' Omega^-1 X)^-1

Specified by:
  `calculateBetaVariance` in class `AbstractMultipleLinearRegression`
Returns:
  The beta variance matrix

#### calculateErrorVariance

    protected double calculateErrorVariance()

Calculates the estimated variance of the error term using the formula

      Var(u) = Tr(u' Omega^-1 u)/(n-k)

where n and k are the row and column dimensions of the design matrix X.

Overrides:
  `calculateErrorVariance` in class `AbstractMultipleLinearRegression`
Returns:
  error variance
Since:
  2.2