Stats TimeSeries seasonalmodel - CyrilB1531/lodestar GitHub Wiki
Home โบ Stats-TimeSeries โบ Seasonality
SeasonalModel
How the seasonal component combines with the trend.
public enum SeasonalModel
Fields โ Additive is series = trend + seasonal + residual, the default. Multiplicative is
series = trend ยท seasonal ยท residual, for a season whose swing grows with the level.
Example โ the multiplicative pattern is a factor per quarter, centred on one.
using Lodestar.Stats.TimeSeries;
double[] quarterly = [10.0, 14.0, 8.0, 12.0, 11.0, 15.0, 9.0, 13.0, 12.0, 16.0, 10.0, 14.0];
SeasonalComponents scaled = SeasonalDecomposition.Decompose(
quarterly, 4, new SeasonalDecompositionOptions { Model = SeasonalModel.Multiplicative });
double secondFactor = Math.Round(scaled.Seasonal[1], 4); // => 1.2577
double thirdResidual = Math.Round(scaled.Residual[2], 4); // => 0.9804
Remarks โ the multiplicative model divides by the level, so it refuses a series holding a value at or below zero.
Applies to โ net10.0, netstandard2.0.
See also โ SeasonalDecompositionOptions.