Example usage for org.apache.commons.math.stat.regression OLSMultipleLinearRegression estimateResiduals

List of usage examples for org.apache.commons.math.stat.regression OLSMultipleLinearRegression estimateResiduals

Introduction

In this page you can find the example usage for org.apache.commons.math.stat.regression OLSMultipleLinearRegression estimateResiduals.

Prototype

public double[] estimateResiduals() 

Source Link

Usage

From source file:ru.algorithmist.jquant.math.GrangerTest.java

/**
 * Returns p-value for Granger causality test.
 *
 * @param y - predictable variable/*from  ww  w.j av  a2s  . com*/
 * @param x - predictor
 * @param L - lag, should be 1 or greater.
 * @return p-value of Granger causality
 */
public static double granger(double[] y, double[] x, int L) {
    OLSMultipleLinearRegression h0 = new OLSMultipleLinearRegression();
    OLSMultipleLinearRegression h1 = new OLSMultipleLinearRegression();

    double[][] laggedY = createLaggedSide(L, y);

    double[][] laggedXY = createLaggedSide(L, x, y);

    int n = laggedY.length;

    h0.newSampleData(strip(L, y), laggedY);
    h1.newSampleData(strip(L, y), laggedXY);

    double rs0[] = h0.estimateResiduals();
    double rs1[] = h1.estimateResiduals();

    double RSS0 = sqrSum(rs0);
    double RSS1 = sqrSum(rs1);

    double ftest = ((RSS0 - RSS1) / L) / (RSS1 / (n - 2 * L - 1));

    System.out.println(RSS0 + " " + RSS1);
    System.out.println("F-test " + ftest);

    FDistribution fDist = new FDistributionImpl(L, n - 2 * L - 1);
    try {
        double pValue = 1.0 - fDist.cumulativeProbability(ftest);
        System.out.println("P-value " + pValue);
        return pValue;
    } catch (MathException e) {
        throw new RuntimeException(e);
    }

}