Bulletin 17C overview | Technical Reference | Next: uncertainty and diagnostics
Bulletin17CDistribution implements a stationary expected-moments estimator through the IGMMModel contract. It is not an IModel: the class exposes moment conditions, their covariance, optional penalties, parameter bounds, and simulation, but it exposes no general data log likelihood or pointwise log likelihood. Its quadratic penalties encode Gaussian external information and produce inverse-precision penalized inference; they do not turn the estimator into a likelihood-based MCMC model. Bulletin17CAnalysis reuses a BayesianAnalysis object as an uncertainty-results container.
Let
The six supported parent families and their natural parameter vectors are:
UnivariateDistributionType |
Moment-space parent | Conditions | |
|---|---|---|---|
Exponential |
Exponential | location, scale | positive scale |
GammaDistribution |
Gamma | scale, shape | both positive |
LogNormal |
Normal for |
mean, standard deviation | positive standard deviation and |
LogPearsonTypeIII |
Pearson III for |
mean, standard deviation, skewness | positive standard deviation and |
Normal |
Normal | mean, standard deviation | positive standard deviation |
PearsonTypeIII |
Pearson III | mean, standard deviation, skewness | valid Pearson III support |
The implementation rejects all other distribution types and always reports IsNonstationary == false. Bulletin 17C practice ordinarily uses LP3; the other parents are BestFit extensions and should not be described as Bulletin 17C-prescribed alternatives without separate justification [1].
For a selected parent
Under an ordinary observed-data likelihood, an exact transformed value would contribute
Threshold counts would add the corresponding powers of the below- and above-threshold probabilities, up to parameter-independent combinatorial constants. Equation (3) describes the likelihood that a likelihood-based analysis could use. The Bulletin 17C implementation does not evaluate or optimize this likelihood. It replaces likelihood contributions with conditional moment information. Therefore AIC, BIC, DIC, WAIC, PSIS-LOO, and Bayesian posterior probabilities are not defined by this model.
Write the first three central features of the parent as
truncated to the number
For information set
For an exact non-low-outlier value
where
where DataFrame.TotalRecordLength() supplies
-
Low outliers. All flagged exact observations are represented as one repeated left-censored group from the numerical lower support to
LowOutlierThreshold. -
Interval observations. Numerics
ConditionalMoments(lower, upper)supplies the conditional raw/central moments in equation (5). -
Perception-threshold counts.
NumberBelowrepeats the left-censored condition andNumberAboverepeats the right-censored condition. -
Uncertain observations. Twenty-point Gauss-Legendre quadrature integrates equation (5)'s moment functions over the supplied measurement-error distribution. Infinite supports are truncated to its
$10^{-8}$ and$1-10^{-8}$ quantiles and normalized by retained measurement mass. This is measurement-distribution averaging of estimating functions, not the convolution likelihood in equation (3).
For mixed, censored, or uncertain records, conditional integrations are clipped to parent support approximated by inverse CDFs at machine-epsilon probabilities. Systematic-only uncensored Pearson III and LP3 records use their exact moments without constructing those integration bounds. Invalid parameters or nonfinite moments return a double.MaxValue estimating vector and a zero covariance accumulator so the optimizer rejects the point.
The implementation forms
For uncensored exact data with no low outliers, closed-form fourth through sixth central moments are used for Normal, Gamma, and Pearson III covariance terms. For Pearson III,
When low outliers are present, that model-based path is disabled globally. Censored and interval groups use the approximation
not the full conditional second moment. Uncertain rows add an integrated measurement-error second-moment matrix, so within-measurement uncertainty contributes to
With weighting matrix GeneralizedMethodOfMoments.Q is
where
For Gaussian parameter information with target
If ParameterPenalty.UseLog is true, the implementation applies the delta-method log form
For a quantile target
with both UseLog10 is true. Up to an additive normalizing constant, equation (13) is the negative log density of ParameterPenalty.MSE is
Let
The penalty Hessian is Bulletin17CDistribution supplies a complete data likelihood or MCMC posterior.
Bulletin17CAnalysis.RunAsync first processes threshold series, installs LinkController.ForLocationScaleShape(), initializes parameters, and constructs the deterministic penalty delegate. Initial values and bounds come from the Numerics parent distribution. If low outliers or threshold records exist, GetNonparametricMomentsROS(useLog10) supplies a regression-on-order-statistics starting point, which the parent converts to parameters; the ROS estimate needs finite plotting positions, and when it throws or returns non-finite moments the model keeps the constraint-based initial values and records a validation warning (an outright initialization failure keeps the parameter shells and records a validation error) rather than leaving the model without parameters. An out-of-bounds or failed initial value is replaced by the midpoint of its bounds.
Bootstrap refits use a broader deterministic candidate set. For a fixed simulated data frame and one randomized penalty target, the model constructs: censoring-bounded midpoint moments, in which each observed low outlier Success or iterative GMM confirms ConvergedWithinTolerance; pivotal refits additionally require a usable covariance. Only after every candidate fails these direct numerical checks does the outer loop simulate a new realization and randomized penalty target.
GeneralizedMethodOfMoments defaults to iterative GMM:
- start with identity
$\mathbf W$ unless a matrix is supplied; - minimize the current objective using BFGS, with automatic Nelder-Mead fallback;
- update
$\mathbf S$ and$\mathbf W=\mathbf S^{-1}$ ; - repeat until one of the three outer convergence rules in the GMM chapter is satisfied, or the iteration limit is reached.
One-step and two-step strategies also exist on the estimator, but Bulletin17CAnalysis constructs a fresh estimator and does not expose a pre-run hook for changing those defaults. The systematic-only Pearson III and LP3 path supplies an analytical Jacobian; other observation configurations use numerical differentiation. Estimate() can return a usable parameter set without strict optimizer convergence; engineering workflows must inspect GMM.Status, the objective/convergence history, covariance condition, and report diagnostics.
For an uncensored record, let
Each column is multiplied by the derivative of that coordinate's inverse link,
- Because
$q=p$ , ordinary Hansen over-identification testing is unavailable; enabled penalties add information but do not create independently testable sample moments. - Annual observations and record-information groups are treated as independent contributions to the estimating equations.
- Censoring and perception thresholds must describe the observation process. Incorrect thresholds create systematic conditional-moment bias.
- Equation (10) understates the within-interval contribution relative to a full conditional covariance; its effect should be examined for heavily censored records.
- Midpoint, ROS, distribution-default, and parent initialization candidates assist numerical convergence but are not alternative estimators; the accepted result is always the GMM refit.
- The specialized estimator is stationary. Trends, covariates, and generic Bayesian priors require a different model.
- LP3 parameters are moments of
$\log_{10}X$ ; exponentiating a mean or interval is not interchangeable with taking a discharge-space expectation.
The current verification report records analytical moment/covariance identities, Gaussian information-combination comparisons, and seven published Bulletin 17C parameter examples. Its current 1,000-refit reliability diagnostic accepts 947 outer-converged and 53 outer-capped fits. Inner optimizer fallbacks, outer convergence, and acceptance are different quantities. These results support the declared calculations and finite refit output; they do not establish repeated-sample interval coverage or full EMA equivalence.
The repository's legacy “Comparison with EMA” PDF evaluates the earlier Bayesian likelihood workflow against EMA and expressly says the comparison does not validate either method. It is useful historical context but is not validation evidence for the current specialized GMM implementation. The verification report therefore limits its Bulletin 17C parameter claim to the seven published examples exercised by the current test fixture.
Implementation symbols: Bulletin17CDistribution.MomentConditions, PointwiseMomentConditions, SetPenaltyFunction, SetRandomPenaltyFunction, GeneralizedMethodOfMoments.Q, GetS, GetJacobian, and Estimate.
Verification evidence: Model Estimation and Diagnostics Verification.
[1] J. F. England, Jr. et al., Guidelines for Determining Flood Flow Frequency—Bulletin 17C, U.S. Geological Survey Techniques and Methods, book 4, chap. B5, 2019. doi: 10.3133/tm4B5.
[2] T. A. Cohn, W. L. Lane, and W. G. Baier, “An algorithm for computing moments-based flood quantile estimates when historical flood information is available,” Water Resources Research, vol. 33, no. 9, pp. 2089–2096, 1997.
[3] L. P. Hansen, “Large sample properties of generalized method of moments estimators,” Econometrica, vol. 50, no. 4, pp. 1029–1054, 1982.
[4] W. K. Newey and D. McFadden, “Large sample estimation and hypothesis testing,” in Handbook of Econometrics, vol. 4, 1994, pp. 2111–2245.