Previous: Competing Risks | Technical Reference | Next: Composite Distributions
PointProcessModel fits threshold exceedances with the GEV-compatible Poisson point-process parameterization of extreme-value theory. It supports one stationary season or two block-day seasons under a calendar- or water-year convention. The model is not a generic arrival-process framework: every component must be a Numerics GeneralizedExtremeValue, and the implemented mark/rate likelihood is the limiting Poisson model associated with the GEV family.
| Symbol | Meaning | API |
|---|---|---|
| fixed threshold, in data units | Threshold | |
| exposure duration, years | TotalYears | |
| exact exceedance magnitude | DataFrame.ExactSeries[i].Value | |
| point-process/GEV location, data units | Numerics Xi | |
| scale, data units | Numerics Alpha | |
| Coles extreme-value shape | negative Numerics Kappa | |
| Numerics Hosking shape | ||
| exact records treated as Poisson events | EmpiricalEventCount | |
| empirical exact-event rate | EmpiricalEventRate, Lambda compatibility alias | |
| fitted threshold intensity | FittedThresholdIntensity |
The feasibility condition is
The PointProcessModel parameter vector is
where
For
and the expected annual number of points above
For independent points observed over
When
Thus the occurrence rate is not a separate fitted Poisson parameter: equations (4)–(6) determine it from the GEV-compatible parameters. FittedThresholdIntensity exposes that fitted rate. EmpiricalEventRate is the exact-event count divided by exposure, while Lambda remains its compatibility alias; neither is a member of
Conditional on an exceedance above
on
Both simulation APIs use the empirical Lambda as the annual Poisson mean of a nonseasonal process. A seasonal process uses the fitted threshold intensity
Season 1 contains days
The block-day index
Each exact event contributes the intensity-density term from its assigned season, and each season contributes its own
The fractions
The annual maximum is the maximum of the two independent seasonal maxima, so
For frequency-output composition, BestFit represents each
with Gumbel limit
After the exact point-process contribution, the implemented hybrid likelihood evaluates other records against a competing-risk GEV magnitude distribution:
- uncertain observations use 20-point Gauss-Legendre integration of measurement-error density times composite density over the central
$1-2\times10^{-8}$ error-distribution mass, divided by that retained mass; - interval records contribute the log probability between their bounds; and
- threshold counts contribute repeated left- and/or right-censored log probabilities.
These records are block-indexed annual magnitude information. They do not become Poisson events and do not receive an event-density or additional exposure contribution. In a seasonal model they have no event day because their index identifies the annual block, not a seasonal process. Their likelihood therefore uses the annual CompetingRisks distribution in equation (8b): exposure weights act on the process intensities, each seasonal process produces an exposure-adjusted seasonal maximum, and the annual observation is evaluated against the maximum of those two independent maxima. The weights are never applied as annual mixture probabilities.
For WAIC and LOO, the global rate term is divided equally among exact events. If there are no exact events, it is attached to the first non-exact entry so that
The allocation preserves the sum but is not unique; pointwise influence attributed to the rate term depends on this convention.
The posterior target adds each ModelParameter prior. With UseJeffreysRuleForScale, one
When default flat priors are enabled, seasonal changepoints use a fast empirical occurrence-histogram rule. Exact dated events are counted in the existing 12 calendar-month bins and rotated so bin one is the configured block-year start. Counts first receive an effectively-flat check against month-length exposure using the Pearson statistic and the fixed 11-degree-of-freedom 95% cutoff 19.675. Non-flat counts receive one circular
The rule is not an estimator: it evaluates no likelihood, fit, MAP objective, or MCMC state. Fewer than ten dated exact events, flat/effectively flat or unimodal structure, ambiguous tied peak pairs, or an incompatible window retain the broad defaults. Index-only manually entered POT data therefore retain the broad priors. A seasonal model is invalid unless every exact POT observation has a nondefault DateTime, because its process assignment requires a block day. Index-only exact records remain valid for nonseasonal fits and for their year/index-span exposure fallback. Set UseDefaultFlatPriors to false before supplying custom priors; serialization remains the ordinary ModelParameter format.
The seasonal shift has a useful check: for
private static PointProcessAnalysis ConfigurePointProcess(
global::RMC.BestFit.Models.DataFrame peaks)
{
var parent = new CompetingRisks(
new UnivariateDistributionBase[]
{
new GeneralizedExtremeValue()
})
{
MinimumOfRandomVariables = false,
Dependency = Probability.DependencyType.Independent
};
var model = new PointProcessModel(peaks, parent)
{
UseDefaults = false,
Threshold = 1200.0,
TotalYears = 25.0,
IsSeasonal = false
};
return new PointProcessAnalysis(model);
}The numerical threshold and exposure are illustrative configuration values, not a recommended choice. Use consistent flow units, count only independent events, and derive exposure from the actual interval during which events above the selected threshold would have been observed.
A useful threshold is high enough for the tail approximation to be credible but low enough to retain adequate information. ThresholdDiagnostics, MeanResidualLifeResult, and ParameterStabilityResult support threshold sensitivity work. Examine mean residual life, shape/modified-scale stability, event independence, seasonal changes, and decision-relevant quantiles together when judging a threshold 1.
With defaults enabled, BestFit uses a supplied finite POT metadata threshold only if it lies below the smallest exact value; otherwise it uses the floating-point value immediately below the smallest exact value. When exact data are absent, it uses the value immediately below the smallest uncertain/interval representative.
Exposure precedence is explicit model TotalYears, then DataFrame.PointProcessObservationYears, then the exact-series year/index span (or one year when no exact record exists). POT extraction records the source time-series year count before discarding sub-threshold observations, preserving leading and trailing zero-event years. Manually entered POT data normally lack that metadata, so the year/index span remains the compatibility fallback. IsTotalYearsInferred identifies that fallback, and validation warns that users should override it when station-history coverage is known. Only exact records enter EmpiricalEventCount and EmpiricalEventRate; non-exact rows remain magnitude-likelihood observations.
GenerateRandomValues(sampleSize, seed) draws annual counts from Poisson(Lambda) for a nonseasonal process, or from Poisson(w_1 Lambda_1 + w_2 Lambda_2) with the fitted seasonal intensities, until exactly sampleSize exceedances have been retained. It returns only magnitudes because its established return type is double[]. In seasonal mode, each event is assigned to a season in proportion to
GeneratePOTTimeSeries(sampleSize, seed) uses the same annual Poisson batches, seasonal assignments, and GPA marks, and adds dummy dates in leap-containing blocks beginning in 2000. The block start follows the configured calendar-, water-, or custom-year setting.
GeneratePOTTimeSeries(startDate, durationYears, seed):
- converts each raw Hosking GEV component to its Hosking GPA using equation (7a) with the empirical Lambda (nonseasonal) or the component's fitted threshold intensity
$\Lambda_j(u)$ (seasonal); - draws one total count from
Poisson(durationYears * Lambda)(nonseasonal) orPoisson(durationYears * (w_1 Lambda_1 + w_2 Lambda_2))(seasonal); - assigns each seasonal event in proportion to the exposure-weighted intensities
$w_j\Lambda_j(u)$ ; - samples a date uniformly from the requested span subject to the same block-day season predicate used by the likelihood; and
- samples the mark from the assigned GPA and sorts the date-magnitude pairs.
A positive seed is deterministic; nonpositive seeds use a clock-seeded generator. Equation (9)'s annualized transform is used for frequency-output composition, not for Poisson-GPA generation.
- Declustering and threshold selection occur outside the point-process likelihood. Dependent clusters will overstate information.
- Event-span fallback exposure can be biased if the first or last retained event does not delimit the actual observation period; heed the validation warning or supply source exposure.
- Manually entered undated exact records are suitable for nonseasonal exposure fallback, but validation rejects them for seasonal fitting.
- Seasonal uncertain, interval, and threshold-count records are annual/block-indexed and use the annual maximum distribution in equation (8b); their indexes do not assign them to a seasonal process.
- Shape estimates near zero switch formula at
$10^{-4}$ , while seasonal annualization uses a tighter$10^{-8}$ limit; check continuity in sensitive cases. - A negative Coles shape imposes a finite upper endpoint; proposed parameters violating support return negative infinity.
- Two seasons add two change points and two complete GEV parameter sets. Sparse seasonal events can yield weak identification and partition sensitivity.
- Floored changepoint posteriors can be genuinely multimodal. Assess integer-day posterior mass, credible sets, and posterior-predictive recovery rather than posterior means alone 3.
- The mixed-data extension lacks event-time uncertainty and does not add uncertain or interval records to the Poisson event product.
An unusable initialization sample produces a validation diagnostic while parameters and priors remain editable. The point-process path still refreshes annual-maximum/exposure structure and supplies its seasonal changepoint defaults; a later valid sample clears the initialization diagnostic. It does not substitute invented data or relaxed GEV bounds.
All ten guarded point-process cells pass. Recovery fixtures use 1,000 observations and the production BayesianAnalysis defaults: DEMCzs, four chains, 1,500 warmup iterations, 3,000 sampling iterations, thinning 20, and seed 12345. Calendar-year uniform recovery, October-water-year block-origin parity, and both production-generator recovery cells pass. The water-year fixture retains changepoints 170/350 while changing the dates and block convention so that it preserves the modeled partition. No production formula, sampler default, prior, or tolerance is modified by the verification. See Point-Process Analysis for the methods and results.
| Concern | Implementation |
|---|---|
| Model, likelihood, priors, simulation | Models/UnivariateDistribution/PointProcessModel.cs |
| Bayesian orchestration and output | Analyses/Univariate/PointProcessAnalysis.cs |
| Threshold diagnostics | Models/DataFrame/ThresholdDiagnostics.cs |
| Composite annual distribution | pinned Numerics/Distributions/Univariate/CompetingRisks.cs |
| GEV parameterization | pinned Numerics/Distributions/Univariate/GeneralizedExtremeValue.cs |
| Fast contracts | RMC.BestFit.Tests/Univariate/PointProcessModelTests.cs, PointProcessAnalysisTests.cs, PointProcessChangePointPriorTests.cs, DataFrame/ExactDataProcessTests.cs |
| Scientific verification cells | RMC.BestFit.Verification/Univariate/PointProcessTests/PointProcessSeasonalFixture.cs, PointProcessPriorTests.cs, PointProcessRecoveryTests.cs, PointProcessRecoveryTests.Uniform.cs; see point-process verification |
[1] S. Coles, An Introduction to Statistical Modeling of Extreme Values. London, U.K.: Springer, 2001.
[2] A. C. Davison and R. L. Smith, “Models for exceedances over high thresholds,” Journal of the Royal Statistical Society: Series B, vol. 52, no. 3, pp. 393–442, 1990.
[3] S. G. Coles and L. R. Pericchi, “Anticipating catastrophes through extreme value modelling,” Journal of the Royal Statistical Society: Series C, vol. 52, no. 4, pp. 405–416, 2003.
Previous: Competing Risks | Technical Reference | Next: Composite Distributions