Package com.opttek.optquest
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
ConstructorsConstructorDescriptionCOptQuestMetalogDistribution(double... coeffs) Unbounded Metalog: support (-∞, +∞)COptQuestMetalogDistribution(double L, double U, double... coeffs) Bounded Metalog: support exactly [L, U] -
Method Summary
Modifier and TypeMethodDescriptiondoublecdf(double x) static doubleCDF(double x, double L, double U, double... coeffs) Metalog Cumulative Distribution Function Uses bisection on the closed-form PPF.doublechaz(double x) static doubleCHAZ(double x, double L, double U, double... coeffs) doublehaz(double x) static doubleHAZ(double x, double L, double U, double... coeffs) doublepdf(double x) static doublePDF(double x, double L, double U, double... coeffs) Metalog Probability Density Function (central-difference derivative of CDF)doubleppf(double p) static doublePPF(double p, double a0, double a1) static doublePPF(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 doublePPF(double p, double L, double U, double a0, double a1) doublesf(double x) static doubleSF(double x, double L, double U, double... coeffs)
-
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:
pdfin interfacecom.opttek.optquest.IProbabilityDistribution
-
cdf
public double cdf(double x) - Specified by:
cdfin interfacecom.opttek.optquest.IProbabilityDistribution
-
ppf
public double ppf(double p) - Specified by:
ppfin interfacecom.opttek.optquest.IProbabilityDistribution
-
sf
public double sf(double x) - Specified by:
sfin interfacecom.opttek.optquest.IProbabilityDistribution
-
chaz
public double chaz(double x) - Specified by:
chazin interfacecom.opttek.optquest.IProbabilityDistribution
-
haz
public double haz(double x) - Specified by:
hazin interfacecom.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)
-