Package com.opengamma.analytics.math.statistics.leastsquare

Examples of com.opengamma.analytics.math.statistics.leastsquare.LeastSquareResults


    DoubleMatrix1D sigma = new DoubleMatrix1D(n, 1e-4);
    DoubleMatrix1D start = new DoubleMatrix1D(0.0, 0.8);
    //  DoubleMatrix1D maxJump = new DoubleMatrix1D(1.0, Math.PI / 20);

    LeastSquareResults res = SOLVER.solve(new DoubleMatrix1D(w), sigma, func, start/*, maxJump*/);
    assertEquals("chi sqr", 0.0, res.getChiSq(), 1e-9);
    double[] fit = res.getFitParameters().getData();
    assertEquals(7.0, fit[0], 1e-9);
    assertEquals(Math.atan(Math.sqrt(4 / 3.)), fit[1], 1e-9);
  }
View Full Code Here


    final double[] sigma = new double[MARKET_PRICES.length];
    Arrays.fill(sigma, 0.0001); // 1bps

    final NonLinearLeastSquare ls = new NonLinearLeastSquare();
    final LeastSquareResults lsRes = ls.solve(new DoubleMatrix1D(MARKET_VOLS), new DoubleMatrix1D(sigma), func, jac, START);

    final DoubleMatrix1D res = lsRes.getFitParameters();

    assertTrue("chi^2 too large", lsRes.getChiSq() < 0.3);

    // We don't recover exactly the initial curves. Why?
    final LinkedHashMap<String, InterpolatedDoublesCurve> curves = CURVE_BUILDER.evaluate(res);
    for (final String name : NAMES) {
      final Curve<Double, Double> fitCurve = curves.get(name);
      final ParameterLimitsTransform trans = TRANSFORMS.get(name);
      final Curve<Double, Double> initialCurve = CURVES.get(name);
      for (int i = 0; i < 25; i++) {
        final double t = i * 20. / 25;
        assertEquals(name + " - time: " + t, initialCurve.getYValue(t), trans.inverseTransform(fitCurve.getYValue(t)), 5e-2);
      }

    }

    // diagnostics
    final boolean print = false;
    if (print) {
      System.out.println("CapletStripingTest");
    }

    final VolatilityModel1D volModel = VOL_MODEL_PROVIDER.evaluate(lsRes.getFitParameters());
    final Iterator<CapFloor> iter = CAPS.iterator();

    CapFloor cap;
    int i = 0;
    while (iter.hasNext()) {
View Full Code Here

      start[i] = TRANSFORM.transform(IMP_VOL + 0.05 * (random.nextDouble() - 0.5));
    }

    //  DoubleMatrix1D res = MINIMIZER.minimize(objective, new DoubleMatrix1D(start));
    final DoubleMatrix1D observed = new DoubleMatrix1D(totalStrikes, IMP_VOL);
    final LeastSquareResults res = NLLS.solve(observed, volFunc, new DoubleMatrix1D(start), penalty);
    System.out.println(res);

    final double[] weights = new double[nWeights];
    for (int i = 0; i < nWeights; i++) {
      weights[i] = TRANSFORM.inverseTransform(res.getFitParameters().getEntry(i));
    }

    final LocalVolatilitySurfaceMoneyness lv = getLocalVol(bSplines, fwdCurve, weights);
    PDEUtilityTools.printSurface("lv", lv.getSurface(), 0.01, 2.0, 0.3, 3.0);

View Full Code Here

      start[i] = TRANSFORM.transform(IMP_VOL + 0.05 * (random.nextDouble() - 0.5));
    }

    //  DoubleMatrix1D res = MINIMIZER.minimize(objective, new DoubleMatrix1D(start));
    final DoubleMatrix1D observed = new DoubleMatrix1D(totalStrikes, IMP_VOL);
    final LeastSquareResults res = NLLS.solve(observed, volFunc, new DoubleMatrix1D(start), penalty);
    System.out.println(res);

  }
View Full Code Here

    Arrays.fill(start, NODES.length + 1, 2 * NODES.length + 1, TRANSFORMS.get(NAMES[2]).transform(0.0));
    Arrays.fill(start, 2 * NODES.length + 1, 3 * NODES.length + 1, TRANSFORMS.get(NAMES[3]).transform(0.35));
    final DoubleMatrix1D vStart = new DoubleMatrix1D(start);

    final NonLinearLeastSquare ls = new NonLinearLeastSquare();
    final LeastSquareResults lsRes = ls.solve(new DoubleMatrix1D(MARKET_VOLS), new DoubleMatrix1D(SIGMA), func, jac, vStart);

    System.out.println("CapletStrippingMarketDataTest");
    System.out.println("chi2: " + lsRes.getChiSq() + "\n");

    final SABRTermStructureParameters sabrTS = (SABRTermStructureParameters) VOL_MODEL_PROVIDER.evaluate(lsRes.getFitParameters());
    // print the SABR curves
    final int nPoints = 101;
    System.out.println("t\talpha\tbeta\trho\tnu");
    for (int i = 0; i < nPoints; i++) {
      final double t = i * 10.0 / (nPoints - 1);
View Full Code Here

          t[i] = bond.accept(LAST_DATE);
          ytm[i++] = ((Double) ytmObject / 100);
        }
        final DoubleMatrix1D initialValues = new DoubleMatrix1D(new double[] {1, 2, 3, 4, 2, 3 });
        final ParameterizedFunction<Double, DoubleMatrix1D, Double> parameterizedFunction = MODEL.getParameterizedFunction();
        final LeastSquareResults result = MINIMISER.solve(new DoubleMatrix1D(t), new DoubleMatrix1D(ytm), parameterizedFunction, initialValues);
        final DoubleMatrix1D parameters = result.getFitParameters();
        final FunctionalDoublesCurve curve = FunctionalDoublesCurve.from(parameterizedFunction.asFunctionOfArguments(parameters));
        final YieldCurve yieldCurve = YieldCurve.from(curve);
        return Sets.newHashSet(new ComputedValue(_result, yieldCurve));
      }
View Full Code Here

TOP

Related Classes of com.opengamma.analytics.math.statistics.leastsquare.LeastSquareResults

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.