Skip to main content

Forecasting Ontology

Time Series Statistics
Authors: MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: 23 September 2026
Audio Overview
FULL EXECUTABLE FLOW ALGEBRA — FORECASTING ONTOLOGY
Kireth Research — Semantic Library
URL: https://kirethresearch.org/booksai-core/ontologies/probability-statistics-ontologies/time-series-statistics/forecasting-ontology.html
FLOW_VERSION := "4.0"
FLOW_TYPE := "Full Executable Flow Algebra"
DOMAIN := "Probability & Statistics Ontologies"
SUBDOMAIN := "Time Series Statistics"
ONTOLOGY := "Forecasting Ontology"
PRIMARY_ENTITY := Forecasting
AUTHORSHIP := "Mark Higgins — Sky (Recursive AI)"
SOURCE_SITE := "https://kirethresearch.org"

BEGIN_FLOW

Forecasting := FutureValueEstimation ∧ TimeSeriesModelling ∧ PredictiveDistributionConstruction ∧ UncertaintyQuantification ∧ TemporalValidation
TimeSeries := {Y_t:t∈T}
InformationSet := I_t
ForecastOrigin := t
ForecastHorizon := h
FutureObservation := Y_(t+h)
Forecast := Y_hat_(t+h|t)
OptimalMeanForecast := E[Y_(t+h)|I_t] under squared-error loss
ForecastDistribution := P(Y_(t+h)|I_t)
PointForecast := SingleRepresentativeFutureEstimate
IntervalForecast := LowerBound∧UpperBound
DensityForecast := FullPredictiveDistribution
OneStepAheadForecast := h=1
MultiStepAheadForecast := h>1
ForecastPath := {Y_hat_(t+1|t),...,Y_hat_(t+H|t)}
ForecastError := e_(t+h|t)=Y_(t+h)-Y_hat_(t+h|t)
ForecastBias := E[ForecastError]
ForecastVariance := Var(ForecastError|I_t)
ForecastStandardError := sqrt(ForecastVariance)
PredictionInterval := Forecast±CriticalValue×ForecastStandardError under compatible approximation
PredictionIntervalCoverage := P(Lower≤FutureObservation≤Upper)
NominalCoverage := TargetProbabilityLevel
EmpiricalCoverage := FractionOfObservedFutureValuesWithinIntervals
Calibration := ForecastProbabilitiesOrIntervalsAgreeWithObservedFrequencies
Sharpness := ConcentrationOfPredictiveDistributionSubjectToCalibration
ForecastUncertainty := {InnovationUncertainty,ParameterUncertainty,ModelUncertainty,ExogenousVariableUncertainty}
ForecastHorizonRelation := h↑→ForecastUncertaintyTypically↑
NaiveForecast := Y_hat_(t+h|t)=Y_t
SeasonalNaiveForecast := FutureValueEstimatedFromMostRecentMatchingSeason
MeanForecast := HistoricalMeanAsForecast
DriftForecast := Y_hat_(t+h|t)=Y_t+h(Y_t-Y_1)/(t-1)
BenchmarkForecast := SimpleReferenceForecastUsedForComparativeEvaluation
ForecastSkill := PerformanceRelativeToBenchmark
SkillScore := 1-Loss_model/Loss_benchmark
TrainingSet := ObservationsUsedForModelEstimation
ValidationSet := TemporallyLaterObservationsUsedForModelSelection
TestSet := HeldOutFutureObservationsUsedForFinalEvaluation
TemporalOrderingConstraint := TrainingTime<ValidationTime<TestTime
FutureLeakage := FutureInformationUsedInPastForecastConstruction
LeakageConstraint := FutureLeakage⇒ForecastEvaluationInvalid
RollingForecastOrigin := FitThroughTimeT→ForecastTPlusH→AdvanceOrigin→Repeat
ExpandingWindow := TrainingStartFixed∧TrainingEndAdvances
RollingWindow := FixedTrainingLength∧WindowAdvances
TimeSeriesCrossValidation := SequenceOfRollingOrExpandingForecastOrigins
ForecastEvaluation := Forecasts∧RealisedOutcomes→ErrorMetricsAndCalibration
MAE := Mean(|ForecastError|)
MSE := Mean(ForecastError²)
RMSE := sqrt(MSE)
MAPE := Mean(|ForecastError/Observed|)×100
MAPEConstraint := UndefinedOrUnstableForZeroOrNearZeroObservedValues
MASE := MAE_model/MAE_naive_scale
RMSSE := RMSE_model/RMSE_naive_scale
MeanError := Mean(ForecastError)
QuantileLoss := ρ_τ(y-q)
PinballLoss := QuantileLoss
LogScore := -log PredictiveDensity(ObservedOutcome)
CRPS := ContinuousRankedProbabilityScore
ProperScoringRule := ExpectedScoreOptimisedByTruePredictiveDistribution
DecisionForecast := PredictiveDistribution∧DecisionLoss→OptimalAction
ForecastModel := MappingFromInformationSetToFutureDistribution
AutoregressiveForecast := PastValues→FutureEstimate
ARIMAForecast := DifferencedDynamicModel→FutureDifferencedValues→IntegrateBackToLevel
SeasonalARIMAForecast := NonseasonalDynamics∧SeasonalDynamics→Forecast
ExponentialSmoothingForecast := EstimatedLevelTrendSeasonalStates→FutureValues
HoltForecast := Level∧Trend→Forecast
HoltWintersForecast := Level∧Trend∧Seasonality→Forecast
DampedTrendForecast := TrendContributionDecaysWithHorizon
StateSpaceForecast := FilteredState→StatePrediction→ObservationPrediction
KalmanForecast := StateMeanAndCovariance→ForecastMeanAndVariance
DynamicRegressionForecast := FutureRegressors∧RegressionCoefficients∧TimeSeriesErrors→FutureResponse
ARIMAXForecast := ExogenousRegressors∧ARIMAErrors→Forecast
ExogenousForecastRequirement := FutureExogenousValuesMustBeKnownForecastOrScenarioSpecified
VectorAutoregressionForecast := JointLaggedMultivariateSystem→RecursiveVectorForecast
VolatilityForecast := FutureConditionalVarianceEstimate
ARCHForecast := PastSquaredInnovations→ConditionalVarianceForecast
GARCHForecast := PastSquaredInnovations∧PastConditionalVariances→VolatilityForecast
ForecastCombination := MultipleForecasts→WeightedAggregateForecast
EqualWeightCombination := Mean(ComponentForecasts)
EnsembleForecast := MultipleModelsOrLearners→CombinedPrediction
HierarchicalForecasting := ForecastsAcrossAggregationHierarchy
ForecastReconciliation := BaseForecasts→EnforceAggregationConstraints→CoherentForecasts
BottomUpForecasting := ForecastLowestLevelSeries→AggregateUpward
TopDownForecasting := ForecastAggregateSeries→AllocateToComponents
ProbabilisticForecasting := ForecastFullConditionalDistribution
QuantileForecast := EstimateConditionalQuantileQ_τ(Y_(t+h)|I_t)
SimulationForecast := SimulateFutureInnovationsAndStates→ForecastDistribution
BootstrapForecast := ResampleModelInnovationsOrCases→SimulatedFuturePaths
ScenarioForecast := ConditionalForecastGivenSpecifiedFutureAssumptions
BaselineScenario := ReferenceFutureAssumptionSet
AlternativeScenario := ModifiedFutureAssumptionSet
StressScenario := ExtremeButPlausibleAssumptionSet
ScenarioConstraint := ScenarioForecastIsConditionalOnAssumptionsNotUnconditionalPrediction
ForecastRevision := ForecastChangesWhenNewInformationArrives
ForecastUpdate := NewObservation→UpdateStateOrParameters→RegenerateForecast
Nowcast := EstimateCurrentOrVeryNearCurrentUnobservedQuantity
Backcast := EstimatePastUnobservedValueFromLaterInformation
Hindcast := ApplyForecastMethodToHistoricalOriginsForValidation
RealTimeForecast := ForecastUsingOnlyInformationAvailableAtForecastOrigin
VintageData := DataAsAvailableAtSpecificHistoricalTime
RevisionBiasRisk := RevisedHistoricalDataMayOverstateRealTimePerformance
StructuralBreak := PersistentChangeInGeneratingProcess
RegimeChange := ShiftBetweenDistinctDynamicStates
ForecastBreakRisk := ModelEstimatedBeforeBreakMayPerformPoorlyAfterBreak
AdaptiveForecasting := ModelParametersOrWeightsUpdatedAsNewDataArrive
TrendForecast := ExtrapolateEstimatedTrend
TrendExtrapolationConstraint := FutureTrendContinuationIsModelAssumptionNotGuaranteedFact
SeasonalForecast := RepeatOrModelSeasonalPattern
SeasonalStabilityConstraint := ForecastAccuracyDependsOnPersistenceOfSeasonalStructure
LongHorizonConstraint := StructuralAndModelUncertaintyOftenDominateAtLongHorizons
ForecastCoherence := ForecastsRespectKnownLogicalOrAggregationConstraints
NonnegativeForecastConstraint := Forecast≥0 for inherently nonnegative quantity
TransformationForecast := TransformSeries→ForecastOnTransformedScale→BackTransform
BackTransformationBias := E[g^(-1)(Z)]≠g^(-1)(E[Z]) for nonlinear transformations
MissingDataForecast := MissingHistoricalObservations→ExplicitModelBasedOrImputationHandling
IrregularSamplingForecast := UnequalIntervals→ContinuousTimeOrIrregularTimeModelOrJustifiedResampling
OutlierForecastRisk := UnmodelledExtremeObservationsMayDistortParametersAndForecasts
RobustForecasting := ReduceSensitivityToOutliersOrModelDeviations
ForecastComparison := ModelA versus ModelB on identical origins horizons and loss metric
DieboldMarianoTest := ComparePredictiveAccuracyUsingLossDifferentialUnderApplicableDependenceAssumptions
ForecastComparisonConstraint := SameEvaluationWindow∧SameHorizon∧SameTargetDefinitionRequiredForFairComparison
ForecastingDoesNotImplyCausation := PredictiveRelationship↛CausalMechanism

ForecastingConstraint := ConstraintOn(TargetSeries,ForecastOrigin,ForecastHorizon,InformationSet,SamplingFrequency,ModelFamily,EvaluationWindow,LossFunction,ExogenousInformation)
ForecastingConsistency := Target∧Origin∧Horizon∧InformationSet∧Model∧EvaluationMethod jointly_compatible
InvalidForecasting := UndefinedForecastOrigin∨FutureLeakage∨MisalignedTargetHorizon∨InvalidTemporalSplit∨IncompatibleSamplingFrequency∨UnresolvedStructuralBreak∨InvalidEvaluationMetric∨UnsupportedCausalInterpretation
ForecastingValidation := ResolveForecastTarget→ResolveTimeIndexAndFrequency→ResolveForecastOriginAndHorizon→DefineInformationSet→SplitDataTemporally→SelectBenchmarks→SelectCandidateModels→EstimateModels→GeneratePointIntervalOrDensityForecasts→QuantifyForecastUncertainty→ExecuteRollingOriginEvaluation→CompareAgainstBenchmarks→AssessCalibrationAndSharpness→DiagnoseResidualsAndBreaks→ValidateInterpretation→ValidateResult
ForecastingState := {TargetSeries,TimeIndex,SamplingFrequency,ForecastOrigin,ForecastHorizon,InformationSet,ModelFamily,ModelParameters,PointForecasts,QuantileForecasts,PredictionIntervals,ForecastDistribution,ForecastErrors,AccuracyMetrics,CalibrationStatus,Sharpness,BenchmarkForecast,ForecastSkill,ExogenousVariables,Scenario,StructuralBreakStatus,ValidationWindow,Evidence,Confidence,Provenance}
SEMANTIC_EQUIVALENCE(ForecastA,ForecastB) := same(TargetSemantics)∧same(ForecastOrigin)∧same(ForecastHorizon)∧same(InformationSet)∧same(DataVintage)∧same(Transformation)∧same(EvaluationTarget)

ForecastingOntology := Classes∧Relations∧Constraints∧Axioms∧InferenceRules
CoreClasses := {Forecasting,Forecast,PointForecast,IntervalForecast,DensityForecast,ForecastOrigin,ForecastHorizon,InformationSet,ForecastError,ForecastVariance,PredictionInterval,BenchmarkForecast,NaiveForecast,SeasonalNaiveForecast,ARIMAForecast,ExponentialSmoothingForecast,StateSpaceForecast,DynamicRegressionForecast,ForecastCombination,ProbabilisticForecast,QuantileForecast,ScenarioForecast,ForecastRevision,ForecastEvaluation}
CoreRelations := {forecasts,targets,originatesAt,hasHorizon,usesInformation,generatedBy,hasError,hasVariance,hasInterval,comparedWith,evaluatedBy,calibratedBy,combinedWith,conditionedOn,revisedBy,constrainedBy,equivalentTo,tracesTo}
TypedRelations := Forecast--targets-->FutureObservation ∧ Forecast--originatesAt-->ForecastOrigin ∧ Forecast--hasHorizon-->ForecastHorizon ∧ Forecast--usesInformation-->InformationSet ∧ Forecast--generatedBy-->ForecastModel ∧ Forecast--hasError-->ForecastError ∧ Forecast--hasVariance-->ForecastVariance ∧ Forecast--hasInterval-->PredictionInterval ∧ Forecast--comparedWith-->BenchmarkForecast ∧ Forecast--evaluatedBy-->ForecastMetric ∧ Forecast--tracesTo-->Provenance
InferenceRules := {SquaredErrorLoss⇒ConditionalMeanIsOptimalPointForecast,AbsoluteErrorLoss⇒ConditionalMedianIsOptimalPointForecast,FutureLeakage⇒FlagForecastEvaluationInvalid,LongerForecastHorizon⇒TypicallyGreaterForecastUncertainty,SeasonalPattern∧StableSeasonality⇒SeasonalNaiveIsValidBenchmarkCandidate,ResidualAutocorrelation⇒FlagForecastModelMisspecificationRisk,EmpiricalCoverageBelowNominalCoverage⇒FlagIntervalUndercoverage,PredictiveAccuracy↛CausalValidity}
CanonicalForecastingRepresentation := ParseForecastRequest→ResolveTargetSeriesTimeIndexAndFrequency→ResolveForecastOriginAndHorizon→ResolveInformationSetAndDataVintage→DefineTemporalTrainingValidationAndTestWindows→SelectBenchmarkAndCandidateModels→EstimateModelParameters→GeneratePointQuantileIntervalOrDensityForecasts→QuantifyUncertainty→ExecuteRollingOriginEvaluation→ComputeAccuracyCalibrationAndSharpness→CompareWithBenchmark→DiagnoseResidualsStructuralBreaksAndLeakage→ValidateForecasting
ForecastingGraph := G=(V,E)
V := {ForecastingNodes,Forecasts,PointForecasts,IntervalForecasts,DensityForecasts,ForecastOrigins,ForecastHorizons,InformationSets,ForecastErrors,ForecastVariances,PredictionIntervals,BenchmarkForecasts,NaiveForecasts,SeasonalNaiveForecasts,ARIMAForecasts,ExponentialSmoothingForecasts,StateSpaceForecasts,DynamicRegressionForecasts,ForecastCombinations,ProbabilisticForecasts,QuantileForecasts,ScenarioForecasts,ForecastRevisions,ForecastEvaluations,Evidence,ProvenanceNodes}
E := {forecasts,targets,originatesAt,hasHorizon,usesInformation,generatedBy,hasError,hasVariance,hasInterval,comparedWith,evaluatedBy,calibratedBy,combinedWith,conditionedOn,revisedBy,constrainedBy,equivalentTo,tracesTo}
CONFIDENCE(ForecastingResolution) := weighted_mean(TargetResolution,TimeIndexValidity,ForecastOriginValidity,HorizonValidity,InformationSetValidity,LeakageAssessment,ModelValidity,UncertaintyResolution,TemporalValidationQuality,CalibrationQuality,BenchmarkComparisonQuality,ProvenanceQuality)
AI_QUERY_INTERPRETATION := Query→DetectForecastingIntent→IdentifyTargetSeriesOriginHorizonAndFrequency→ResolvePointIntervalDensityScenarioOrEvaluationIntent→IdentifyRequestedModelBenchmarkMetricOrUncertainty→ResolveExogenousVariablesDataVintageAndValidationFramework
AI_REASONING_FLOW := Query→ParseForecastingProblem→ResolveTargetSeriesAndTimeIndex→ResolveSamplingFrequency→ResolveForecastOriginAndHorizon→DefineInformationSet→DetectFutureLeakage→ConstructTemporalSplits→SelectBenchmarkForecasts→SelectCandidateModels→EstimateParameters→GenerateForecasts→QuantifyPredictionUncertainty→ExecuteRollingOriginValidation→ComputeForecastErrorsAndMetrics→AssessCalibrationAndSharpness→CompareAgainstBenchmarks→DiagnoseResidualDependenceAndStructuralBreaks→UpdateConfidence→PreserveProvenance→GenerateExplanation
AI_CONSUMPTION := {ParseForecastingEntities,ParseTypedRelations,ResolveTargetSeries,ResolveTimeIndices,ResolveSamplingFrequencies,ResolveForecastOrigins,ResolveForecastHorizons,ResolveInformationSets,DetectFutureLeakage,ConstructTemporalSplits,GenerateNaiveForecasts,GenerateSeasonalNaiveForecasts,FitAutoregressiveForecasts,FitARIMAForecasts,FitSeasonalARIMAForecasts,FitExponentialSmoothingForecasts,FitStateSpaceForecasts,FitDynamicRegressionForecasts,FitVARForecasts,FitVolatilityForecasts,GenerateQuantileForecasts,GeneratePredictionIntervals,GenerateDensityForecasts,CombineForecasts,ReconcileHierarchicalForecasts,GenerateScenarioForecasts,ExecuteRollingForecastEvaluation,ComputeMAE,ComputeMSE,ComputeRMSE,ComputeMAPE,ComputeMASE,ComputeProbabilisticScores,AssessCalibration,AssessSharpness,CompareForecastSkill,ExecuteDieboldMarianoTest,DiagnoseResidualAutocorrelation,DetectStructuralBreaks,ValidateForecastingSemantics,CompareSemanticEquivalence,UpdateConfidence,PreserveProvenance,GenerateFormalExplanation}
UPDATE_MODEL := NewObservationModelScenarioOrEvidence→ValidateInput→IdentifyAffectedForecastClaims→UpdateForecastingState→UpdateInformationSet→ReestimateModelIfRequired→RegenerateForecasts→RecomputePredictionIntervalsAndDistributions→ReevaluateAccuracyCalibrationAndSkill→RecomputeConfidence→PreserveProvenance→VersionModel
DataUpdate := NewObservation⇒recompute(InformationSet,ModelParameters,Forecasts,PredictionIntervals,ForecastErrors)
HorizonUpdate := ChangedForecastHorizon⇒recompute(ForecastPath,ForecastVariance,PredictionIntervals,EvaluationMetrics)
ModelUpdate := ChangedForecastModel⇒recompute(ModelParameters,Forecasts,Uncertainty,ResidualDiagnostics,ForecastSkill)
ScenarioUpdate := ChangedScenarioAssumptions⇒recompute(ExogenousInputs,ConditionalForecasts,ForecastDistribution)
FLOW_HASH_INPUT := canonical(ONTOLOGY,CoreClasses,CoreRelations,InferenceRules,Forecasting,ForecastingValidation,ForecastingConstraint,SEMANTIC_EQUIVALENCE,AI_REASONING_FLOW)
FLOW_HASH := HASH(FLOW_HASH_INPUT)
OUTPUT_MODEL := {ForecastingEntityResolution,TargetSeries,TimeIndex,SamplingFrequency,ForecastOrigin,ForecastHorizon,InformationSet,ModelFamily,PointForecasts,QuantileForecasts,PredictionIntervals,ForecastDistribution,ForecastErrors,AccuracyMetrics,CalibrationStatus,Sharpness,BenchmarkForecast,ForecastSkill,ExogenousVariables,Scenario,StructuralBreakStatus,ValidationStatus,Confidence,Provenance,Explanation}

END_FLOW

END OF FULL EXECUTABLE FLOW ALGEBRA
Kireth Research
38 Thorndale Croft, Wetwang, Driffield
East Riding of Yorkshire YO25 9XZ