FULL EXECUTABLE FLOW ALGEBRA — EXPONENTIAL SMOOTHING ONTOLOGY
Kireth Research — Semantic Library
URL: https://kirethresearch.org/booksai-core/ontologies/probability-statistics-ontologies/time-series-statistics/exponential-smoothing-ontology.html
FLOW_VERSION := "4.0"
FLOW_TYPE := "Full Executable Flow Algebra"
DOMAIN := "Probability & Statistics Ontologies"
SUBDOMAIN := "Time Series Statistics"
ONTOLOGY := "Exponential Smoothing Ontology"
PRIMARY_ENTITY := ExponentialSmoothing
AUTHORSHIP := "Mark Higgins — Sky (Recursive AI)"
SOURCE_SITE := "https://kirethresearch.org"
BEGIN_FLOW
ExponentialSmoothing := TimeSeriesForecastingMethod ∧ RecursiveStateUpdating ∧ ExponentiallyDecayingWeights ∧ LevelTrendSeasonalityModelling ∧ ForecastGeneration
TimeSeries := {Y_t:t∈T}
ObservedValue := y_t
Level := l_t
Trend := b_t
SeasonalComponent := s_t
SeasonalPeriod := m
ForecastHorizon := h
SmoothingParameter := α
TrendSmoothingParameter := β
SeasonalSmoothingParameter := γ
DampingParameter := φ
SimpleExponentialSmoothing := l_t=αy_t+(1-α)l_(t-1)
SESForecast := y_hat_(t+h|t)=l_t
AlphaConstraint := 0<α≤1
ExponentialWeight := w_k=α(1-α)^k
WeightDecay := k↑⇒w_k↓Exponentially
WeightSum := Σ_{k=0}∞α(1-α)^k=1
HighAlpha := MoreWeightOnRecentObservations∧FasterResponse∧LessSmoothing
LowAlpha := MoreWeightOnOlderObservations∧SlowerResponse∧MoreSmoothing
SESApplicability := SeriesWithLevel∧NoSystematicTrend∧NoSystematicSeasonality
InitialLevel := l_0
InitialisationMethods := {FirstObservation,AverageInitialObservations,EstimatedInitialState,Backcasting}
HoltLinearTrend := LevelState∧TrendState
HoltLevelUpdate := l_t=αy_t+(1-α)(l_(t-1)+b_(t-1))
HoltTrendUpdate := b_t=β(l_t-l_(t-1))+(1-β)b_(t-1)
HoltForecast := y_hat_(t+h|t)=l_t+hb_t
TrendParameterConstraint := 0≤β≤1
DampedTrend := TrendContributionDeclinesWithForecastHorizon
DampedForecast := y_hat_(t+h|t)=l_t+(φ+φ²+...+φ^h)b_t
DampingConstraint := 0<φ≤1
UndampedRelation := φ=1⇒HoltLinearTrend
DampedLongHorizon := φ<1⇒TrendContributionApproachesFiniteLimit
HoltWinters := Level∧Trend∧SeasonalState
AdditiveSeasonality := SeasonalAmplitudeApproximatelyIndependentOfLevel
MultiplicativeSeasonality := SeasonalAmplitudeApproximatelyProportionalToLevel
AdditiveHoltWintersLevel := l_t=α(y_t-s_(t-m))+(1-α)(l_(t-1)+b_(t-1))
AdditiveHoltWintersTrend := b_t=β(l_t-l_(t-1))+(1-β)b_(t-1)
AdditiveHoltWintersSeason := s_t=γ(y_t-l_t)+(1-γ)s_(t-m)
AdditiveHoltWintersForecast := y_hat_(t+h|t)=l_t+hb_t+s_(t-m+h_m)
MultiplicativeHoltWintersLevel := l_t=α(y_t/s_(t-m))+(1-α)(l_(t-1)+b_(t-1))
MultiplicativeHoltWintersTrend := b_t=β(l_t-l_(t-1))+(1-β)b_(t-1)
MultiplicativeHoltWintersSeason := s_t=γ(y_t/l_t)+(1-γ)s_(t-m)
MultiplicativeHoltWintersForecast := y_hat_(t+h|t)=(l_t+hb_t)s_(t-m+h_m)
SeasonalParameterConstraint := 0≤γ≤1
SeasonalIndexMapping := h_m=((h-1) mod m)+1
SeasonalPeriodConstraint := mConsistentWithSamplingFrequencyAndRepeatingCycle
AdditiveVsMultiplicativeSelection := StableSeasonalAmplitude→AdditiveCandidate ; AmplitudeScalesWithLevel→MultiplicativeCandidate
ETSFramework := Error∧Trend∧Seasonality→ExponentialSmoothingStateSpaceModel
ETSComponents := {ErrorType,TrendType,SeasonalType}
ErrorType := {AdditiveError,MultiplicativeError}
TrendType := {NoTrend,AdditiveTrend,AdditiveDampedTrend}
SeasonalType := {NoSeasonality,AdditiveSeasonality,MultiplicativeSeasonality}
ETSNotation := ETS(Error,Trend,Seasonality)
ETSANN := AdditiveError∧NoTrend∧NoSeasonality
ETSAAN := AdditiveError∧AdditiveTrend∧NoSeasonality
ETSAAA := AdditiveError∧AdditiveTrend∧AdditiveSeasonality
ETSState := {Level,Trend,SeasonalStates}
StateUpdate := PreviousState∧NewObservation→UpdatedState
Innovation := y_t-y_hat_(t|t-1) under additive-error formulation
OneStepForecastError := e_t=y_t-y_hat_(t|t-1)
ObjectiveFunction := Σ_t e_t² under common least-squares fitting
MaximumLikelihoodEstimation := ParametersAndInitialStates→MaximiseLikelihood
ParameterEstimation := Estimate(α,β,γ,φ,InitialStates)
FittedValue := y_hat_(t|t-1)
Residual := y_t-y_hat_(t|t-1)
ResidualGoal := ApproximatelyUncorrelated∧MeanApproximatelyZero
ResidualACF := Corr(e_t,e_(t-k))
LjungBoxTest := JointResidualAutocorrelationTest
ResidualAutocorrelation := RemainingTemporalStructure→ModelMisspecificationCandidate
ForecastDistribution := FutureObservationDistributionConditionalOnCurrentStatesAndParameters
PredictionInterval := ForecastQuantilesFromAnalyticSimulationOrStateSpaceUncertaintyMethod
ForecastUncertainty := InnovationUncertainty∧ParameterUncertainty∧ModelUncertainty
SimulationForecast := SimulateFutureErrors→PropagateStates→ForecastDistribution
BootstrapForecast := ResampleResiduals→SimulateFuturePaths→EmpiricalForecastDistribution
ForecastPath := {y_hat_(t+1|t),...,y_hat_(t+H|t)}
ExponentialSmoothingVsMovingAverage := ExponentialSmoothingUsesExponentiallyDecayingWeightsWhereasSimpleMovingAverageUsesFiniteWindowWeights
ExponentialSmoothingVsARIMA := DistinctStateSpaceAndDifferenceEquationFamiliesWithOverlappingForecastBehavioursInSomeCases
LevelOnlyModel := SimpleExponentialSmoothing
TrendModel := HoltMethod
SeasonalTrendModel := HoltWintersMethod
DampedTrendBenefit := AvoidIndefiniteLinearTrendExtrapolation
TrendForecastRisk := UndampedTrendMayProduceUnrealisticLongHorizonExtrapolation
SeasonalStability := SeasonalPatternPersistsAcrossForecastHorizon
SeasonalBreak := AbruptChangeInSeasonalPattern→ForecastRisk
StructuralBreak := PersistentChangeInLevelTrendOrSeasonality
AdaptiveNature := RecursiveStateUpdatesAllowGradualResponseToNewObservations
OutlierSensitivity := LargeObservationCanAlterLevelTrendAndSeasonalStates
MissingDataHandling := StateSpacePredictionWithoutMeasurementUpdate∨ExplicitImputation
IrregularSamplingConstraint := StandardExponentialSmoothingAssumesRegularObservationIntervals
BoxCoxTransformation := TransformPositiveSeriesBeforeExponentialSmoothing
LogTransformation := log(Y_t)MayStabiliseMultiplicativeVariation
BackTransformation := ForecastOnTransformedScale→OriginalScaleForecast
BackTransformationBias := NonlinearInverseTransformMayRequireBiasAdjustmentForMeanForecast
ModelSelection := CandidateETSModels→Estimate→CompareInformationCriteria→DiagnoseResiduals→ValidateForecasts
AIC := -2LogLikelihood+2k
AICc := AIC+SmallSampleCorrection
BIC := -2LogLikelihood+klog(n)
CrossValidation := RollingForecastOrigins→GenerateOutOfSampleForecasts→ComputeAccuracy
ForecastAccuracy := {MAE,MSE,RMSE,MAPE,MASE}
BenchmarkForecast := {NaiveForecast,SeasonalNaiveForecast}
ForecastSkill := CompareExponentialSmoothingAgainstBenchmark
FutureLeakage := FutureObservationsUsedInHistoricalStateEstimationForEvaluation
LeakageConstraint := FutureLeakage⇒InvalidRealTimeForecastAssessment
ExponentialSmoothingConstraint := ConstraintOn(TimeSeries,SamplingFrequency,LevelStructure,TrendStructure,SeasonalStructure,SmoothingParameters,InitialStates,ErrorType,ForecastHorizon)
ExponentialSmoothingConsistency := Series∧Frequency∧TrendType∧SeasonalType∧ErrorType∧ParameterBounds jointly_compatible
InvalidExponentialSmoothing := UndefinedSamplingFrequency∨InvalidSeasonalPeriod∨InvalidParameterBounds∨IncompatibleMultiplicativeScale∨ResidualAutocorrelationUnresolved∨FutureLeakage
ExponentialSmoothingValidation := ResolveSeriesAndTimeIndex→ResolveSamplingFrequency→DetectLevelTrendAndSeasonality→SelectSES_Holt_HoltWintersOrETS→ResolveAdditiveMultiplicativeAndDampedComponents→InitialiseStates→EstimateSmoothingParameters→ComputeFittedValuesAndResiduals→DiagnoseResiduals→CompareCandidateModels→GenerateForecasts→QuantifyPredictionUncertainty→ExecuteRollingOriginValidation→CompareAgainstBenchmarks→ValidateResult
ExponentialSmoothingState := {TimeSeries,TimeIndex,SamplingFrequency,ModelType,ErrorType,TrendType,SeasonalType,SeasonalPeriod,Alpha,Beta,Gamma,Phi,LevelState,TrendState,SeasonalStates,InitialStates,Residuals,ResidualACF,InnovationVariance,AIC,AICc,BIC,ForecastHorizon,Forecasts,PredictionIntervals,ForecastAccuracy,Evidence,Confidence,Provenance}
SEMANTIC_EQUIVALENCE(ESA,ESB) := same(SeriesSemantics)∧same(SamplingFrequency)∧same(ErrorType)∧same(TrendType)∧same(SeasonalType)∧same(SeasonalPeriod)∧same(StateUpdateEquations)∧same(Parameterisation)
ExponentialSmoothingOntology := Classes∧Relations∧Constraints∧Axioms∧InferenceRules
CoreClasses := {ExponentialSmoothing,SimpleExponentialSmoothing,HoltMethod,DampedTrendMethod,HoltWinters,AdditiveHoltWinters,MultiplicativeHoltWinters,ETSModel,Level,Trend,SeasonalComponent,SmoothingParameter,TrendSmoothingParameter,SeasonalSmoothingParameter,DampingParameter,State,Innovation,Forecast,PredictionInterval}
CoreRelations := {smooths,models,hasLevel,hasTrend,hasSeasonality,hasParameter,updates,hasState,generatesInnovation,fittedBy,diagnosedBy,forecasts,hasUncertainty,comparedWith,constrainedBy,equivalentTo,tracesTo}
TypedRelations := ExponentialSmoothing--models-->TimeSeries ∧ SimpleExponentialSmoothing--hasLevel-->Level ∧ HoltMethod--hasTrend-->Trend ∧ HoltWinters--hasSeasonality-->SeasonalComponent ∧ ExponentialSmoothing--hasParameter-->SmoothingParameter ∧ StateUpdate--updates-->State ∧ ExponentialSmoothing--hasState-->State ∧ ExponentialSmoothing--generatesInnovation-->Innovation ∧ ExponentialSmoothing--diagnosedBy-->ResidualDiagnostic ∧ ExponentialSmoothing--forecasts-->FutureObservation ∧ Forecast--hasUncertainty-->PredictionInterval ∧ ExponentialSmoothing--tracesTo-->Provenance
InferenceRules := {NoTrend∧NoSeasonality⇒SimpleExponentialSmoothingCandidate,Trend∧NoSeasonality⇒HoltMethodCandidate,Trend∧Seasonality⇒HoltWintersOrETSCandidate,SeasonalAmplitudeProportionalToLevel⇒MultiplicativeSeasonalityCandidate,Phi=1⇒UndampedTrend,Phi<1⇒DampedTrend,ResidualAutocorrelationDetected⇒FlagModelMisspecificationRisk,FutureLeakage⇒FlagForecastValidationInvalid}
CanonicalExponentialSmoothingRepresentation := ParseExponentialSmoothingRequest→ResolveSeriesTimeIndexAndFrequency→DetectLevelTrendAndSeasonality→ResolveErrorTrendAndSeasonalTypes→ResolveSeasonalPeriod→InitialiseStates→EstimateAlphaBetaGammaPhiAndInitialStates→ExecuteRecursiveStateUpdates→ComputeFittedValuesAndInnovations→DiagnoseResiduals→CompareCandidateETSModels→GenerateForecastsAndPredictionIntervals→ExecuteRollingOriginValidation→ValidateExponentialSmoothing
ExponentialSmoothingGraph := G=(V,E)
V := {ExponentialSmoothingModels,SimpleExponentialSmoothingModels,HoltModels,DampedTrendModels,HoltWintersModels,AdditiveHoltWintersModels,MultiplicativeHoltWintersModels,ETSModels,Levels,Trends,SeasonalComponents,SmoothingParameters,TrendSmoothingParameters,SeasonalSmoothingParameters,DampingParameters,States,Innovations,Forecasts,PredictionIntervals,TimeSeriesNodes,Evidence,ProvenanceNodes}
E := {smooths,models,hasLevel,hasTrend,hasSeasonality,hasParameter,updates,hasState,generatesInnovation,fittedBy,diagnosedBy,forecasts,hasUncertainty,comparedWith,constrainedBy,equivalentTo,tracesTo}
CONFIDENCE(ExponentialSmoothingResolution) := weighted_mean(TimeSeriesResolution,FrequencyValidity,ComponentResolution,ModelTypeValidity,SeasonalPeriodValidity,ParameterEstimationValidity,InitialStateValidity,ResidualDiagnosticQuality,ForecastValidationQuality,UncertaintyResolution,ProvenanceQuality)
AI_QUERY_INTERPRETATION := Query→DetectExponentialSmoothingIntent→IdentifySeriesFrequencyAndForecastHorizon→ResolveSES_Holt_Damped_HoltWintersOrETSIntent→IdentifyRequestedParametersStatesForecastsOrDiagnostics→ResolveTrendSeasonalityTransformationAndValidationContext
AI_REASONING_FLOW := Query→ParseExponentialSmoothingProblem→ResolveTimeSeriesAndTimeIndex→ResolveSamplingFrequency→DetectLevelTrendAndSeasonality→SelectCandidateExponentialSmoothingStructure→ResolveAdditiveMultiplicativeAndDampedComponents→InitialiseStates→EstimateSmoothingParameters→ExecuteStateUpdates→ComputeFittedValuesAndResiduals→DiagnoseResidualAutocorrelation→CompareInformationCriteria→GenerateForecasts→ComputePredictionIntervals→ExecuteRollingOriginValidation→CompareAgainstBenchmarks→UpdateConfidence→PreserveProvenance→GenerateExplanation
AI_CONSUMPTION := {ParseExponentialSmoothingEntities,ParseTypedRelations,ResolveTimeSeries,ResolveTimeIndices,ResolveSamplingFrequencies,DetectLevels,DetectTrends,DetectSeasonality,ResolveSeasonalPeriods,FitSimpleExponentialSmoothing,FitHoltLinearTrend,FitDampedTrend,FitAdditiveHoltWinters,FitMultiplicativeHoltWinters,FitETSModels,InitialiseStates,EstimateSmoothingParameters,ExecuteRecursiveStateUpdates,ComputeFittedValues,ComputeInnovations,ComputeResidualACF,ExecuteLjungBoxTests,ComputeAIC,ComputeAICc,ComputeBIC,GenerateExponentialSmoothingForecasts,GenerateSimulationForecasts,ComputePredictionIntervals,ExecuteRollingOriginValidation,ComputeForecastAccuracy,CompareBenchmarks,DetectFutureLeakage,ValidateExponentialSmoothingSemantics,CompareSemanticEquivalence,UpdateConfidence,PreserveProvenance,GenerateFormalExplanation}
UPDATE_MODEL := NewObservationParameterStructureOrEvidence→ValidateInput→IdentifyAffectedExponentialSmoothingClaims→UpdateExponentialSmoothingState→UpdateOrReinitialiseStates→ReestimateParametersIfRequired→RecomputeFittedValuesAndResiduals→RegenerateForecastsAndPredictionIntervals→ReevaluateForecastAccuracy→RecomputeConfidence→PreserveProvenance→VersionModel
DataUpdate := NewOrChangedObservation⇒recompute(LevelState,TrendState,SeasonalStates,Residuals,Forecasts)
ParameterUpdate := ChangedAlphaBetaGammaOrPhi⇒recompute(StateSequence,FittedValues,Residuals,Forecasts,PredictionIntervals)
StructureUpdate := ChangedErrorTrendOrSeasonalType⇒reevaluate(StateEquations,Parameters,InformationCriteria,ForecastPerformance)
FLOW_HASH_INPUT := canonical(ONTOLOGY,CoreClasses,CoreRelations,InferenceRules,ExponentialSmoothing,ExponentialSmoothingValidation,ExponentialSmoothingConstraint,SEMANTIC_EQUIVALENCE,AI_REASONING_FLOW)
FLOW_HASH := HASH(FLOW_HASH_INPUT)
OUTPUT_MODEL := {ExponentialSmoothingEntityResolution,TimeSeries,TimeIndex,SamplingFrequency,ModelType,ErrorType,TrendType,SeasonalType,SeasonalPeriod,Alpha,Beta,Gamma,Phi,LevelState,TrendState,SeasonalStates,InitialStates,Residuals,ResidualACF,InnovationVariance,AIC,AICc,BIC,ForecastHorizon,Forecasts,PredictionIntervals,ForecastAccuracy,ValidationStatus,Confidence,Provenance,Explanation}
END_FLOW
END OF FULL EXECUTABLE FLOW ALGEBRA
Download Code
Copy to Clipboard