PAR(p) Inflow Model
Purpose
Section titled “Purpose”This spec defines the Periodic Autoregressive model of order (PAR(p)) used to capture temporal correlation in inflow time series, including the model definition, parameter semantics, the relationship between stored and computed quantities, the fitting procedure, model order selection, and validation invariants. Section 9 describes the optional PAR(p)-A extension that adds a single annual coefficient on top of the periodic AR structure to capture multi-year hydrological persistence.
1. Model Definition
Section titled “1. Model Definition”The Periodic Autoregressive model of order p (PAR(p)) captures temporal correlation in inflow time series while accounting for seasonal variation in parameters. For hydro at stage corresponding to season :
where:
- : Incremental inflow at stage (m³/s)
- : Seasonal mean for season
- : Autoregressive coefficient for lag in season
- : Residual standard deviation for season (computed at runtime — see section 3)
- : Innovation (standardized noise)
- : Season index for stage (e.g., month 1–12)
The model order can vary by season and by hydro plant.
2. Parameter Set
Section titled “2. Parameter Set”For each hydro and each season (e.g., for monthly, for weekly), the complete PAR(p) model requires:
| Parameter | Symbol | Description |
|---|---|---|
| Seasonal mean | Mean inflow for season | |
| AR coefficients | Autoregressive coefficients | |
| Residual standard deviation | Scale of innovation term |
3. Stored vs. Computed Quantities
Section titled “3. Stored vs. Computed Quantities”The data model stores seasonal sample statistics and standardized AR coefficients with an explicit residual fraction. The relationship between stored and computed quantities is:
Stored vs. computed quantities — the files on disk hold the scale-invariant
ψ* and residual_std_ratio; at runtime these are converted to original-unit
ψ and σ using the seasonal stats, then consumed by the LP stage subproblem.
Stored in input files
Section titled “Stored in input files”These are provided in inflow_seasonal_stats.parquet and inflow_ar_coefficients.parquet:
| Stored quantity | Column | File | Symbol | Description |
|---|---|---|---|---|
| Seasonal sample mean | mean_m3s | inflow_seasonal_stats | Mean of historical observations for season | |
| Seasonal sample std | std_m3s | inflow_seasonal_stats | Standard deviation of historical observations for season | |
| AR coefficients | coefficient | inflow_ar_coefficients | AR coefficient standardized by seasonal std — the direct Yule-Walker output | |
| Residual std ratio | residual_std_ratio | inflow_ar_coefficients | Residual std as fraction of seasonal std, — a pure model property |
The AR order is not stored explicitly. It is derived at runtime from the count of coefficient rows per (hydro_id, stage_id) group in inflow_ar_coefficients.parquet.
The standardized coefficient is the direct output of the Yule-Walker fitting procedure (see section 5.4). It is dimensionless — the coefficient of the standardized process . The relationship to the original-unit coefficient used in the LP is:
Computed at runtime
Section titled “Computed at runtime”From the stored quantities, the LP requires two additional quantities computed once at initialization:
Original-unit AR coefficients (for LP constraint matrix entries):
Residual standard deviation (for noise scaling):
No autocorrelation values are needed at runtime. All required quantities are derived solely from the stored seasonal stats and AR coefficient file.
LP coefficients
Section titled “LP coefficients”The stored standardized coefficients are converted to original-unit at runtime (see section 7.2), and these enter the LP directly (see LP Formulation). The LP equation is:
where are state variables (lagged inflows) and is the sampled noise realization.
4. Model Order Selection
Section titled “4. Model Order Selection”The PAR order can vary by season. Available selection criteria:
4.1 PACF (Periodic Partial Autocorrelation Function) — Default
Section titled “4.1 PACF (Periodic Partial Autocorrelation Function) — Default”The default method computes the periodic PACF via progressive periodic Yule-Walker matrix solves at orders , then selects the order using a significance threshold.
Algorithm:
-
For each order from 1 to , build and solve the periodic Yule-Walker system (section 5.4) at order . The last coefficient from the order- solution is the periodic PACF value at lag .
-
Select the order as the maximum lag with significant PACF:
where (95% confidence) and is the number of observations for season . If no lag is significant, (white noise).
-
Estimate AR coefficients at the selected order using the periodic Yule-Walker system (section 5.4).
Post-selection validation — Maceira-Damazio iterative reduction: After PACF selection, the recursively-composed contributions of each lag through the periodic monthly chain are computed. A negative composed contribution flags potential model instability — under SDDP the corresponding Benders cut can carry the negative composition into the future-cost recursion. When any season’s composed contribution is negative, the offending season’s AR ceiling is reduced and the PACF selection plus Yule-Walker fit are re-run at the new ceiling. The reduction iterates across all seasons until every season’s contribution recursion yields non-negative entries, or every offending season has been reduced to order 0.
For the PAR(p)-A path (section 9), two additional rules extend the PACF gate:
- Structural-zero short-circuit at lag 1. When the conditional FACP value at lag 1 is exactly zero — which happens when the standardised annual noise series collapses, typically because a degenerate
HistoryClass::ConstantorHistoryClass::Saturatedbucket has zeroed the seasonal std (section 5.7) — the selected order is forced to 0 (white noise). This blocks degenerate buckets from injecting spurious AR structure. - Minimum order 1 when lag 1 is well defined. When the lag-1 conditional FACP is non-zero but no lag exceeds the significance threshold, the model defaults to order 1 rather than order 0. Hydrological persistence makes a strict order-0 fit a poor default unless the lag-1 value is structurally absent.
4.2 AIC (Akaike Information Criterion)
Section titled “4.2 AIC (Akaike Information Criterion)”4.3 BIC (Bayesian Information Criterion)
Section titled “4.3 BIC (Bayesian Information Criterion)”4.4 Coefficient Significance
Section titled “4.4 Coefficient Significance”Include lag only if .
In all methods, is the number of historical observations for season .
5. Fitting Procedure
Section titled “5. Fitting Procedure”For multi-resolution studies (monthly→quarterly aggregation), the same fitting procedure applies after duration-weighted aggregation; see Multi-resolution studies.
This section documents the five-step procedure for fitting PAR(p) parameters from historical inflow data. The fitting is performed when the system derives parameters from inflow_history.parquet. When pre-computed parameters are provided directly in inflow_seasonal_stats.parquet and inflow_ar_coefficients.parquet, this procedure is not executed.
5.1 Notation
Section titled “5.1 Notation”Let be the historical observations for season . Define:
| Symbol | Description |
|---|---|
| Number of observations for season | |
| Sample mean for season | |
| Sample standard deviation for season | |
| Autocovariance at lag for season | |
| Autocorrelation at lag for season |
5.2 Step 1 — Seasonal Means and Standard Deviations
Section titled “5.2 Step 1 — Seasonal Means and Standard Deviations”Seasonal Mean:
Seasonal Standard Deviation:
The estimator uses the population divisor , not the Bessel-corrected . This matches the Maceira-Damazio convention and is shared by the classical PAR(p) and PAR(p)-A paths. The population divisor is required for self-consistent conditional FACP values and selected orders on the PAR(p)-A path — under a Bessel correction the sample-vs-population scale factor leaks through every Z⊗A cross-correlation. Using the same divisor for the classical path keeps the two paths’ seasonal-stats output reusable across configurations.
5.3 Step 2 — Seasonal Autocorrelations
Section titled “5.3 Step 2 — Seasonal Autocorrelations”The autocorrelation at lag for season is computed from standardized deviations.
Cross-seasonal autocovariance:
For observations at season with lag reaching back to season (mod , where is the cycle length):
where is the number of year-aligned valid pairs at lag for reference season . The estimator uses the population divisor , matching the convention adopted in section 5.2 and shared by the classical and PAR(p)-A paths.
Autocorrelation:
where is the standard deviation of season (cyclically, so season 0 = season ).
5.4 Step 3 — Yule-Walker Equations
Section titled “5.4 Step 3 — Yule-Walker Equations”For each season , the PAR(p) coefficients in standardized form are found by solving the periodic Yule-Walker system. Unlike the classical (stationary) Yule-Walker equations where all rows use the same reference season, the periodic variant shifts the reference season per row. This correctly accounts for the non-Toeplitz covariance structure of periodic autoregressive processes.
Matrix construction: For row and column (0-indexed, ), the reference season is shifted by row index:
where is the number of seasons in the periodic cycle (e.g., 12 for monthly). The diagonal entries are always 1 (since for any season ). The matrix is symmetric but not Toeplitz when , because each row references a different season for its autocorrelation values.
RHS construction: Each RHS element also uses a shifted reference season:
This comes from column of the extended version of the periodic autocorrelation matrix.
The full system is:
where all season indices are taken modulo .
In matrix notation:
where:
- is the periodic correlation matrix (symmetric but not Toeplitz for )
- is the vector of target autocorrelations with per-row reference season shifting
Solution:
The system is solved via Gaussian elimination with partial pivoting (for small systems with , this is numerically adequate).
5.5 Step 4 — Store Standardized Coefficients and Residual Fraction
Section titled “5.5 Step 4 — Store Standardized Coefficients and Residual Fraction”The Yule-Walker solution is in standardized form — the direct output of step 3. It is stored as-is in inflow_ar_coefficients.parquet. No conversion to original units is performed.
Compute and store the residual std ratio:
Both (one row per lag) and (repeated across all lag rows of the same (hydro, stage) group) are written to inflow_ar_coefficients.parquet.
5.6 Step 5 — Residual Standard Deviation
Section titled “5.6 Step 5 — Residual Standard Deviation”The residual standard deviation for season is recovered at runtime from the stored ratio (see section 3):
For reference, the full expression in terms of fitting quantities is:
5.7 Historical Bucket Classification
Section titled “5.7 Historical Bucket Classification”Before the seasonal stats and AR coefficients are used by the order-selection rules, each per-(hydro, season) historical bucket is classified by the shape of its observations. The classification can override the empirical for fitting purposes, and the override propagates to both the classical PAR(p) and the PAR(p)-A paths because both paths share the seasonal-stats producer.
Four classes are defined:
| Class | Detection rule | Override applied |
|---|---|---|
Default | None of the conditions below | None — use empirical |
Constant | Every observation equals the same value within float tolerance | |
ManyNegative | Strictly negative observations exceed 10% of the bucket | None — diagnostic only, fit proceeds on the empirical stats |
Saturated | The modal value (rounded to m³/s) occupies more than 50% of observations |
The classifier runs in the priority order Constant → ManyNegative → Saturated → Default. Constancy takes precedence over negative-pathology detection, which in turn takes precedence over saturation.
Why short-circuits the fit
Section titled “Why s^m=0\hat{s}_m = 0s^m=0 short-circuits the fit”When the override sets for a season, every downstream fitter degenerates predictably:
- On the classical PAR(p) path, the periodic autocorrelation becomes zero by the zero-std guard in section 5.3, so the PACF selection (section 4.1) reports no significant lag and returns order 0 implicitly.
- On the PAR(p)-A path, the standardised noise series collapses, the conditional FACP at lag 1 evaluates to exactly zero, and the structural-zero short-circuit (section 4.1) returns order 0 explicitly.
Either way, the bucket cannot inject spurious autoregressive structure into adjacent months’ PACFs, and no spatial-correlation contribution flows from it during scenario generation.
Interpretation of each class
Section titled “Interpretation of each class”Constantcaptures plants whose incremental inflow is structurally constant for a given month — typically regulated or transposed flows where the upstream subtraction yields the same value every year. Forcing records the deterministic level without inventing autoregressive dynamics.Saturatedcaptures flow caps (turbine or reservoir capacity) and low-flow constants (transposed ecological flows). The modal value is treated as the cap. There is no magnitude threshold — a cap of 0 m³/s qualifies just as readily as a cap at installed capacity.ManyNegativeflags buckets that the upstream incremental-inflow construction has driven below zero for more than 10% of observations. The condition is recorded for operator diagnostics but does not override the fit — the cause is upstream-data quality, not a methodological signal.Defaultis the standard path; the empirical stats and the chosen order-selection rule decide the order.
5.8 Partial-year studies and the pre-study lag window
Section titled “5.8 Partial-year studies and the pre-study lag window”A study horizon may be narrower than the seasonal cycle — e.g. a monthly model () running only September–December. The per-season fitting described above must then handle seasons that have few or no in-window observations. Two rules keep it well-defined.
Lag-reachability. A season is lag-reachable only if some stage of the (extended) horizon carries it. Each historical observation is resolved to a season from the stage date ranges, falling back to the season-map calendar for dates predating the horizon; an observation whose resolved season has no stage at all is skipped — its statistics would never be consumed. Full-cycle history therefore does not perturb a partial-year fit.
Pre-study lag synthesis (for ). The first study stage’s autoregressive lags reach back to seasons before the study start. For each lag , the season calendar positions before the first study season is introduced as a pre-study season (modular on the true cycle length ) — unless that season is already covered by a study stage (an in-window wrap lag, handled by the cycle-correct lag lookup). The seasonal statistics of those out-of-window seasons are estimated from history exactly as for in-window seasons, then feed the lag terms of the opening study stages — both the coefficient conversion and the deterministic base.
The wrap uses the true cycle length (the number of seasons in the season map), not the number of seasons in the study window, together with a season offset equal to the season of the first study stage — so, e.g., a March-start study maps the lag-1 season to February, not December.
Full-cycle invariance. When the study spans the full cycle (every season already has a study stage) or carries no out-of-window history, nothing is synthesized and the fit is bit-identical to before.
6. Validation Invariants
Section titled “6. Validation Invariants”After fitting or loading pre-computed parameters, the following invariants must hold:
- Positive residual variance: for all seasons. If violated, the AR model explains all variance — likely overfitting.
- Stationarity: Roots of lie outside the unit circle. Ensures the AR process is stable and does not diverge.
- Correlation matrix positive definite: is invertible. Required for Yule-Walker solution to exist. If violated, the historical record may be too short for the requested AR order.
- No systematic bias: Residuals have mean near zero. Indicates the model captures the mean structure correctly.
- AR order derivation: The number of coefficient rows per (hydro_id, stage_id) in
inflow_ar_coefficients.parquetdetermines the AR order . Lags must be contiguous: . - Residual std ratio consistency: The
residual_std_ratiovalue must be identical across all lag rows sharing the same (hydro_id, stage_id) group, and must lie in .
7. PAR-to-LP Transformation
Section titled “7. PAR-to-LP Transformation”This section derives the explicit algebraic transformation from the canonical PAR(p) model (section 1) into the form consumed by the LP subproblem. The derivation identifies three precomputable components that are cached once at initialization and reused at every forward-pass stage transition.
7.1 Canonical Standardized Form
Section titled “7.1 Canonical Standardized Form”The PAR(p) model (section 1) operates on deviations from the seasonal mean, scaled by the seasonal standard deviation. In fully standardized form:
where:
- : AR coefficients in fully standardized form (correlations between normalized deviations)
- : residual standard deviation for season (derived at runtime — see section 3)
- : innovation noise
The input files store (standardized by seasonal std , not residual std ). The next step converts these to original-unit for use in the LP.
7.2 Coefficient Conversion
Section titled “7.2 Coefficient Conversion”The stored standardized coefficients are converted to original-unit coefficients at runtime using the seasonal standard deviations from inflow_seasonal_stats.parquet:
The residual standard deviation is also derived at this preprocessing step:
These conversions are performed once at LP construction time. They require only the seasonal stats () and the stored model quantities (, ) — no autocorrelation values, no historical data.
7.3 LP-Ready Form
Section titled “7.3 LP-Ready Form”Multiplying both sides of the canonical form (section 7.1) by and rearranging yields the LP-ready equation:
where and are derived from stored quantities as described in section 7.2.
This decomposes the inflow into three additive components:
- Lag contribution: — linear function of past inflows (state variables or known values)
- Deterministic base: — constant offset per (stage, hydro), precomputed once
- Stochastic innovation: — noise draw scaled by the seasonal residual standard deviation
7.4 Deterministic Base
Section titled “7.4 Deterministic Base”The deterministic base is defined as:
This is a precomputed constant per (stage, hydro) pair. It absorbs the mean-adjustment arithmetic that would otherwise be repeated at every forward-pass stage transition. With this definition, the LP-ready form (section 7.3) simplifies to:
For partial-year studies, the lag-season means for seasons preceding the study start are sourced from the pre-study lag window (section 5.8); when no such statistic exists for a given lag season, that lag’s mean contribution is treated as zero.
7.5 LP RHS Patching Operation
Section titled “7.5 LP RHS Patching Operation”The lagged inflows are LP variables, not substituted values. In the LP (see LP Formulation), they appear with coefficients in the AR dynamics constraint row, and separate equality constraints fix each lag variable to its incoming state value:
where is patched per scenario to the actual lagged inflow from the trajectory record.
Because the lag contribution is carried by the constraint matrix (not the RHS), the AR dynamics constraint RHS reduces to:
where:
- is the deterministic base for (stage, hydro), precomputed once at LP construction (section 7.4)
- is the noise scale for (stage, hydro), derived from stored ratio at initialization (section 7.2)
- is the scenario noise draw for this (stage, hydro)
The coefficients are written into the constraint matrix once at LP construction time as the coefficients on the lagged inflow variables; they are not recomputed per scenario.
No division, no mean subtraction, no repeated coefficient transformation — the three precomputed LP components eliminate all redundant arithmetic from the hot path.
7.6 Summary of LP Components
Section titled “7.6 Summary of LP Components”| Component | Symbol | Shape per stage | LP Role | Source |
|---|---|---|---|---|
| Lag coefficients | One per (hydro, lag) | Constraint matrix (AR dynamics row) | Derived from stored and at initialization (section 7.2) | |
| Deterministic base | One per hydro | AR dynamics constraint RHS (fixed term) | Precomputed from and | |
| Noise scale | One per hydro | AR dynamics constraint RHS (noise factor) | Derived from stored ratio and at initialization (section 7.2) |
8. Spatial Correlation Factorisation
Section titled “8. Spatial Correlation Factorisation”The PAR(p) fitting procedure (section 5) produces per-hydro noise terms that are treated as independent across hydro plants. Generating spatially correlated scenarios requires factorising the cross-hydro correlation matrix so that a vector of independent standard normal draws can be mapped to correlated noise. This section documents the choice of factorisation method and the rationale.
8.1 The Problem with Cholesky
Section titled “8.1 The Problem with Cholesky”The classical approach applies Cholesky factorisation: given with lower-triangular, correlated noise is obtained as where . Cholesky requires to be strictly positive-definite. In practice, estimated correlation matrices from hydro inflow series are frequently near-singular or rank-deficient for two reasons:
- Short sample records: Brazilian hydro series commonly span 80–90 years, yielding a historical record length that is comparable to the number of hydro plants in some subsystems. When is close to the matrix dimension, the sample eigenvalues of cluster near zero.
- Heterogeneous series: Plants with near-identical hydrological regimes (upstream–downstream pairs, same river basin) produce columns that are nearly linearly dependent, reducing the effective rank of below its nominal dimension.
A near-singular causes Cholesky to fail or to produce numerically degenerate lower triangular factors. A separate filtering pass to remove “degenerate” hydros would be required before the factorisation, discarding information and introducing a non-transparent pre-processing decision.
8.2 Eigendecomposition with Clipped Square Root
Section titled “8.2 Eigendecomposition with Clipped Square Root”Cobre uses the symmetric matrix square root via eigendecomposition. The correlation matrix is decomposed as:
where is the orthogonal matrix of eigenvectors and is the diagonal matrix of eigenvalues. The symmetric square root is then:
To handle near-singular matrices, any eigenvalue (arising from floating-point rounding in the sample estimate) is clipped to zero before taking the square root:
Correlated noise is then generated as where .
8.3 Why Eigendecomposition
Section titled “8.3 Why Eigendecomposition”The spectral form handles rank-deficient correlation matrices natively: eigenvectors corresponding to clipped (zero) eigenvalues contribute nothing to the factorisation, which is the correct behaviour for directions of zero variance. No prior filtering of degenerate hydro plants is needed.
The clipping threshold acts as a single, transparent parameter controlling which near-zero eigenvalues are treated as structural zeros. The cross-entity correlation structure is preserved for all eigenvalues above the threshold.
8.4 Trade-offs
Section titled “8.4 Trade-offs”| Property | Eigendecomposition (Cobre) | Cholesky |
|---|---|---|
| Handles rank-deficient | Yes — clipping makes it robust | No — requires positive-definiteness |
| Computational cost | Higher (full eigendecomposition) | Lower on well-conditioned matrices |
| Degenerate-hydro filtering pass | Not required | Required for near-singular |
| Transparency of approximation | Single clipping threshold | Opaque numerical failure or pivot |
The higher computational cost is acceptable because the factorisation is performed once per study configuration and not on the hot path of the forward pass.
9. Annual Component Extension (PAR(p)-A)
Section titled “9. Annual Component Extension (PAR(p)-A)”The classical PAR(p) of section 1 captures temporal dependence at lags up to a small (typically for monthly cycles, since the periodic Yule-Walker system becomes ill-conditioned at higher orders). On long Brazilian hydro series this is enough to reproduce the within-year persistence but not the multi-year persistence visible in dry/wet super-periods of the historical record. The PAR(p)-A extension adds a single annual coefficient on top of the periodic AR structure to capture that longer-range persistence without inflating the AR order.
The extension is selected by the order-selection method pacf_annual. When active, the model carries one additional triple per (hydro, season) on top of the classical parameter set.
9.1 Augmented Model
Section titled “9.1 Augmented Model”Let denote the rolling 12-month average of incremental inflows ending one stage before :
The PAR(p)-A model augments section 1 with the standardised deviation of from its own seasonal mean:
where:
- , : seasonal sample mean and population-divisor standard deviation of at season
- : original-unit annual coefficient at season — derived at runtime from the standardised stored coefficient (section 9.4)
- All other symbols carry their classical meaning from section 1
When the PAR(p)-A extension is inactive, the annual term is absent and the model reduces exactly to section 1.
9.2 Annual Component Parameters
Section titled “9.2 Annual Component Parameters”For each (hydro, season) the PAR(p)-A path stores three additional quantities:
| Quantity | Symbol | Description |
|---|---|---|
| Standardised annual coefficient | Yule-Walker output for the annual term — dimensionless | |
| Annual seasonal mean | Sample mean of at season (m³/s) | |
| Annual seasonal std | Population-divisor std of at season (m³/s, ) |
The standardised coefficient is the direct output of the extended periodic Yule-Walker system below (section 9.5). Storage of and alongside the seasonal statistics of enables the runtime unit conversion of section 9.4 without re-reading the historical record.
9.3 Estimating and
Section titled “9.3 Estimating μmA\mu^A_mμmA and σmA\sigma^A_mσmA”Group rolling-window values by the season of their PDF time-index (the most recent observation contributing to the window). For each (hydro, season) bucket of values :
Both estimators use the population divisor , matching the convention of section 5.2 and ensuring no sample-vs-population scale factor leaks into the conditional FACP of section 9.5. At least 13 chronological observations are required for a hydro to participate in PAR(p)-A — that is the minimum needed to form one rolling 12-month average.
9.4 Runtime Unit Conversion
Section titled “9.4 Runtime Unit Conversion”The stored standardised coefficient is converted to the original-unit coefficient at LP construction time using the seasonal stats and annual stats:
The conversion mirrors section 7.2 for the classical AR coefficients. The runtime annual term entering the LP RHS is then , where the lagged rolling-window value is itself derived from the lag state variables already carried by the LP.
9.5 Order Selection and Coefficient Estimation
Section titled “9.5 Order Selection and Coefficient Estimation”PAR(p)-A order selection conditions on the annual noise series. The order-selection input is the conditional FACP at lag , defined as the partial autocorrelation between the standardised current-season residual and the standardised residual at lag , conditioned on the intermediate standardised annual noise series and the previous annual innovation . Computing the conditional FACP requires a partitioned covariance decomposition that distinguishes , , and blocks.
The conditional FACP feeds the PACF order-selection rule of section 4.1, with the two PAR(p)-A-specific extensions (structural-zero short-circuit and minimum-order-1) already described there.
Cross-covariance divisor
Section titled “Cross-covariance divisor”The block uses the same year-aligned population divisor as the classical autocovariance (section 5.3). The and blocks use a max-bucket-size divisor:
The max-bucket convention is required because excludes the first year of by construction (a rolling 12-month window cannot anchor in the first 12 observations). The strict-pair count would distort the scale of the cross-correlations and bias the conditional FACP. The PAR(p) path never uses Z⊗A cross-correlations, so the divisor question is PAR(p)-A-specific.
Extended periodic Yule-Walker
Section titled “Extended periodic Yule-Walker”Once the order is selected, the coefficients are recovered by solving the extended periodic Yule-Walker system:
where is the partitioned covariance whose first rows replicate the classical periodic Yule-Walker rows (section 5.4) and whose last row adds the and entries. The RHS appends the target. The residual std ratio is recovered from the inner product of the solution and the RHS, exactly as in the classical case.
9.6 Iterative Order Reduction
Section titled “9.6 Iterative Order Reduction”The Maceira-Damazio iterative reduction of section 4.1 is applied across the full periodic cycle on the PAR(p)-A path as well: after the initial fit, the recursively-composed contributions of each AR lag through the periodic monthly chain are evaluated, and any negative-contribution season has its AR ceiling reduced before refit. The annual coefficient does not enter the contribution-chain check — it is anchored to the rolling annual mean and so does not propagate through the lag chain.
9.7 Activation and Fallback
Section titled “9.7 Activation and Fallback”| Configuration | Path |
|---|---|
order_selection: "pacf" | Classical PAR(p) — annual triple absent (section 5) |
order_selection: "pacf_annual" | PAR(p)-A — annual triple required for every (hydro, season) |
Bucket flagged HistoryClass::Constant or Saturated (section 5.7) | Effective order 0 on either path; annual term suppressed when the seasonal std collapses |
| Hydro with fewer than 13 observations on PAR(p)-A path | Hard failure during fitting (no silent fallback to classical) |
The two paths share the seasonal-stats producer of section 5.2; switching between them does not silently change or . The PAR(p)-A path uses the same spatial-correlation factorisation as the classical path (section 8); the extension affects only the temporal model.
Cross-References
Section titled “Cross-References”- LP Formulation — AR inflow dynamics in the LP: state expansion, lag column pinning, reduced-cost extraction
- Inflow Non-Negativity — Methods for handling negative realizations produced by the PAR(p) model
- Scenario Generation — When external scenarios are used in training, a PAR model is fitted to the external data for backward pass opening tree generation. The fitting procedure (section 5 above) applies equally to this derived model.
- Notation Conventions — Defines inflow symbols (, , , ) and unit conventions