Class COptQuestMetalogDistribution

java.lang.Object
com.opttek.optquest.COptQuestMetalogDistribution
All Implemented Interfaces:
com.opttek.optquest.IProbabilityDistribution

public class COptQuestMetalogDistribution extends Object implements com.opttek.optquest.IProbabilityDistribution
Metalog (Meta-Logistic) distribution: a flexible quantile-parameterized distribution. Supports two modes in one class: • Unbounded (default): support (-∞, +∞) • Bounded: user-specified finite interval [L, U] PPF is closed-form in both cases, so inverse-transform sampling is fast. Use it for expert-elicited quantiles or data-driven shapes in black-box simulation optimization. Inspired by Keelin (2016) "The Metalog Distributions" and verified against R metalog, Analytica, and SAS implementations.
  • Constructor Summary

    Constructors
    Constructor
    Description
    COptQuestMetalogDistribution(double... coeffs)
    Unbounded Metalog: support (-∞, +∞)
    COptQuestMetalogDistribution(double L, double U, double... coeffs)
    Bounded Metalog: support exactly [L, U]
  • Method Summary

    Modifier and Type
    Method
    Description
    double
    cdf(double x)
     
    static double
    CDF(double x, double L, double U, double... coeffs)
    Metalog Cumulative Distribution Function Uses bisection on the closed-form PPF.
    double
    chaz(double x)
     
    static double
    CHAZ(double x, double L, double U, double... coeffs)
     
    double
    haz(double x)
     
    static double
    HAZ(double x, double L, double U, double... coeffs)
     
    double
    pdf(double x)
     
    static double
    PDF(double x, double L, double U, double... coeffs)
    Metalog Probability Density Function (central-difference derivative of CDF)
    double
    ppf(double p)
     
    static double
    PPF(double p, double a0, double a1)
     
    static double
    PPF(double p, double L, double U, double... coeffs)
    Metalog Percent Point Function (closed-form quantile) Unbounded: Q(p) = a0 + a1·logit(p) + a2·logit(p)² + ...
    static double
    PPF(double p, double L, double U, double a0, double a1)
     
    double
    sf(double x)
     
    static double
    SF(double x, double L, double U, double... coeffs)
     

    Methods inherited from class java.lang.Object

    equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • COptQuestMetalogDistribution

      public COptQuestMetalogDistribution(double L, double U, double... coeffs)
      Bounded Metalog: support exactly [L, U]
      Parameters:
      L - lower bound (finite)
      U - upper bound (> L, finite)
      coeffs - coefficients a0, a1, a2, ... (at least 2 required)
    • COptQuestMetalogDistribution

      public COptQuestMetalogDistribution(double... coeffs)
      Unbounded Metalog: support (-∞, +∞)
      Parameters:
      coeffs - coefficients a0, a1, a2, ... (at least 2 required)
  • Method Details

    • pdf

      public double pdf(double x)
      Specified by:
      pdf in interface com.opttek.optquest.IProbabilityDistribution
    • cdf

      public double cdf(double x)
      Specified by:
      cdf in interface com.opttek.optquest.IProbabilityDistribution
    • ppf

      public double ppf(double p)
      Specified by:
      ppf in interface com.opttek.optquest.IProbabilityDistribution
    • sf

      public double sf(double x)
      Specified by:
      sf in interface com.opttek.optquest.IProbabilityDistribution
    • chaz

      public double chaz(double x)
      Specified by:
      chaz in interface com.opttek.optquest.IProbabilityDistribution
    • haz

      public double haz(double x)
      Specified by:
      haz in interface com.opttek.optquest.IProbabilityDistribution
    • PPF

      public static double PPF(double p, double L, double U, double... coeffs)
      Metalog Percent Point Function (closed-form quantile) Unbounded: Q(p) = a0 + a1·logit(p) + a2·logit(p)² + ... Bounded: Q(p) = L + (U-L)·logistic(M(p))
    • CDF

      public static double CDF(double x, double L, double U, double... coeffs)
      Metalog Cumulative Distribution Function Uses bisection on the closed-form PPF.
    • PDF

      public static double PDF(double x, double L, double U, double... coeffs)
      Metalog Probability Density Function (central-difference derivative of CDF)
    • SF

      public static double SF(double x, double L, double U, double... coeffs)
    • CHAZ

      public static double CHAZ(double x, double L, double U, double... coeffs)
    • HAZ

      public static double HAZ(double x, double L, double U, double... coeffs)
    • PPF

      public static double PPF(double p, double a0, double a1)
    • PPF

      public static double PPF(double p, double L, double U, double a0, double a1)