Class GLSMultipleLinearRegression

java.lang.Object
org.hipparchus.stat.regression.AbstractMultipleLinearRegression
org.hipparchus.stat.regression.GLSMultipleLinearRegression
All Implemented Interfaces:
MultipleLinearRegression

public class GLSMultipleLinearRegression extends AbstractMultipleLinearRegression
The GLS implementation of 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
 
  • Constructor Details

    • GLSMultipleLinearRegression

      public GLSMultipleLinearRegression()
      Empty constructor.

      This constructor is not strictly necessary, but it prevents spurious javadoc warnings with JDK 18 and later.

      Since:
      3.0
  • Method Details

    • 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