Package com.opengamma.analytics.math.regression

Examples of com.opengamma.analytics.math.regression.LeastSquaresRegressionResult


        y[j - i] = data[j];
        for (int k = 1; k <= i; k++) {
          x[j - i][k - 1] = data[j - k];
        }
      }
      final LeastSquaresRegressionResult result = _regression.regress(x, null, y, true);
      if (result.getPValues()[i] < _level) {
        order = i;
      }
    }
    if (order == null) {
      throw new IllegalArgumentException("Could not find order of series using PACF; no significant coefficients");
View Full Code Here


    final double[][] market = new double[asset.length][1];
    for (int i = 0; i < asset.length; i++) {
      market[i][0] = marketTS.getValueAtIndex(i);
    }
    //final double[][] market = new double[][] {marketTS.toFastLongDoubleTimeSeries().valuesArrayFast()}; //TODO change when [ANA-254] is completed
    final LeastSquaresRegressionResult result = OLS.regress(market, asset, true);
    return result;
  }
View Full Code Here

   * @param normalize Normalize xData by mean and standard deviation if normalize == true
   * @return PolynomialsLeastSquaresRegressionResult containing coefficients, rMatrix, degrees of freedom, norm of residuals, and mean, standard deviation
   */
  public PolynomialsLeastSquaresFitterResult regressVerbose(final double[] xData, final double[] yData, final int degree, final boolean normalize) {

    final LeastSquaresRegressionResult result = regress(xData, yData, degree, normalize);

    final int nData = xData.length;
    final DoubleMatrix2D rMatriX = _qrResult.getR();

    final DoubleMatrix1D resResult = new DoubleMatrix1D(result.getResiduals());
    final double resNorm = OG_ALGEBRA.getNorm2(resResult);

    if (normalize == true) {
      return new PolynomialsLeastSquaresFitterResult(result.getBetas(), rMatriX, nData - degree - 1, resNorm, _renorm);
    }
    return new PolynomialsLeastSquaresFitterResult(result.getBetas(), rMatriX, nData - degree - 1, resNorm);
  }
View Full Code Here

    }
    for (int i = 0; i < nData; ++i) {
      ArgumentChecker.isFalse(Double.isNaN(residuals[i]), "Input is too large or small");
    }

    return new LeastSquaresRegressionResult(betas, residuals, 0.0, null, 0.0, 0.0, null, null, true);

  }
View Full Code Here

    marketReturn = marketReturn.subtract(riskFreeTS);
    DoubleTimeSeries<?> assetReturn = assetPnL.divide(assetFairValue);
    assetReturn = assetReturn.subtract(riskFreeTS);
    assetReturn = assetReturn.intersectionFirstValue(marketReturn);
    marketReturn = marketReturn.intersectionFirstValue(assetReturn);
    final LeastSquaresRegressionResult regression = CAPM_REGRESSION_MODEL.evaluate(assetReturn, marketReturn);
    final double alpha = regression.getBetas()[0];
    final double alphaPValue = regression.getPValues()[0];
    final double alphaTStat = regression.getTStatistics()[0];
    final double alphaResidual = regression.getResiduals()[0];
    final double alphaStdError = regression.getStandardErrorOfBetas()[0];
    final ValueProperties resultProperties = getResultProperties(desiredValues.iterator().next());
    final Set<ComputedValue> result = new HashSet<ComputedValue>();
    result.add(new ComputedValue(new ValueSpecification(ValueRequirementNames.CAPM_REGRESSION_ADJUSTED_R_SQUARED, targetSpec, resultProperties), regression.getAdjustedRSquared()));
    result.add(new ComputedValue(new ValueSpecification(ValueRequirementNames.CAPM_REGRESSION_ALPHA, targetSpec, resultProperties), alpha));
    result.add(new ComputedValue(new ValueSpecification(ValueRequirementNames.CAPM_REGRESSION_BETA, targetSpec, resultProperties), regression.getBetas()[1]));
    result.add(new ComputedValue(new ValueSpecification(ValueRequirementNames.CAPM_REGRESSION_MEAN_SQUARE_ERROR, targetSpec, resultProperties), regression.getMeanSquareError()));
    result.add(new ComputedValue(new ValueSpecification(ValueRequirementNames.CAPM_REGRESSION_ALPHA_PVALUES, targetSpec, resultProperties), alphaPValue));
    result.add(new ComputedValue(new ValueSpecification(ValueRequirementNames.CAPM_REGRESSION_BETA_PVALUES, targetSpec, resultProperties), regression.getPValues()[1]));
    result.add(new ComputedValue(new ValueSpecification(ValueRequirementNames.CAPM_REGRESSION_R_SQUARED, targetSpec, resultProperties), regression.getRSquared()));
    result.add(new ComputedValue(new ValueSpecification(ValueRequirementNames.CAPM_REGRESSION_ALPHA_RESIDUALS, targetSpec, resultProperties), alphaResidual));
    result.add(new ComputedValue(new ValueSpecification(ValueRequirementNames.CAPM_REGRESSION_BETA_RESIDUALS, targetSpec, resultProperties), regression.getResiduals()[1]));
    result.add(new ComputedValue(new ValueSpecification(ValueRequirementNames.CAPM_REGRESSION_STANDARD_ERROR_OF_ALPHA, targetSpec, resultProperties), alphaStdError));
    result.add(new ComputedValue(new ValueSpecification(ValueRequirementNames.CAPM_REGRESSION_STANDARD_ERROR_OF_BETA, targetSpec, resultProperties), regression.getStandardErrorOfBetas()[1]));
    result.add(new ComputedValue(new ValueSpecification(ValueRequirementNames.CAPM_REGRESSION_ALPHA_TSTATS, targetSpec, resultProperties), alphaTStat));
    result.add(new ComputedValue(new ValueSpecification(ValueRequirementNames.CAPM_REGRESSION_BETA_TSTATS, targetSpec, resultProperties), regression.getTStatistics()[1]));
    return result;
  }
View Full Code Here

    /**
     * Tests for regress(..)
     */

    LeastSquaresRegressionResult result = regObj.regress(xValues, yValues, degree);

    double[] coeffResult = result.getBetas();

    for (int i = 0; i < degree + 1; ++i) {
      assertEquals(coeff[i], coeffResult[i], EPS * Math.abs(coeff[i]));
    }

    final double[] residuals = result.getResiduals();
    func = new RealPolynomialFunction1D(coeffResult);
    double[] yValuesFit = new double[nPts];
    for (int i = 0; i < nPts; ++i) {
      yValuesFit[i] = func.evaluate(xValues[i]);
    }
View Full Code Here

      System.out.println(xValues[i] + "\t" + yValues[i]);
    }

    System.out.println("\n");

    LeastSquaresRegressionResult result = regObj.regress(xValues, yValues, degree);
    final double[] coeffResult = result.getBetas();

    final DoubleFunction1D func = new RealPolynomialFunction1D(coeffResult);

    for (int i = 0; i < 100; ++i) {
      final double k = -5. + 10. * i / 100.;
      System.out.println(k + "\t" + func.evaluate(k));
    }

    System.out.println("\n");
    final double[] resResult = result.getResiduals();
    double resSumSqHalf = 0.;

    for (int i = 0; i < nPts; ++i) {
      resSumSqHalf += 0.5 * resResult[i] * resResult[i];
      System.out.println(resResult[i]);
View Full Code Here

TOP

Related Classes of com.opengamma.analytics.math.regression.LeastSquaresRegressionResult

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.