Class 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 Detail

      • 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 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
      • 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