org.apache.commons.math3.stat.regression
Class GLSMultipleLinearRegression

java.lang.Object
  extended by org.apache.commons.math3.stat.regression.AbstractMultipleLinearRegression
      extended by org.apache.commons.math3.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:
$Id: GLSMultipleLinearRegression.java 1416643 2012-12-03 19:37:14Z tn $

Constructor Summary
GLSMultipleLinearRegression()
           
 
Method Summary
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.math3.stat.regression.AbstractMultipleLinearRegression
calculateResiduals, calculateYVariance, estimateErrorVariance, estimateRegressandVariance, estimateRegressionParameters, estimateRegressionParametersStandardErrors, estimateRegressionParametersVariance, estimateRegressionStandardError, estimateResiduals, getX, getY, 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
 

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


Copyright © 2003-2013 The Apache Software Foundation. All Rights Reserved.