FULL EXECUTABLE FLOW ALGEBRA — MOVING AVERAGE ONTOLOGY
Kireth Research — Semantic Library
URL: https://kirethresearch.org/booksai-core/ontologies/probability-statistics-ontologies/time-series-statistics/moving-average-ontology.html
FLOW_VERSION := "4.0"
FLOW_TYPE := "Full Executable Flow Algebra"
DOMAIN := "Probability & Statistics Ontologies"
SUBDOMAIN := "Time Series Statistics"
ONTOLOGY := "Moving Average Ontology"
PRIMARY_ENTITY := MovingAverage
AUTHORSHIP := "Mark Higgins — Sky (Recursive AI)"
SOURCE_SITE := "https://kirethresearch.org"
BEGIN_FLOW
MovingAverage := TimeSeriesTransformation ∨ MovingAverageProcess ∧ TemporalSmoothingOrInnovationDependenceStructure
TimeSeries := {Y_t:t∈T}
TimeIndex := t
ObservedValue := y_t
WindowLength := m
Lag := k
Innovation := ε_t
InnovationVariance := σ²
MovingAverageAmbiguity := MovingAverageSmoother≠MovingAverageStochasticProcess
MovingAverageSmoother := LocalWeightedCombinationOfObservedValues
SimpleMovingAverage := SMA_t=(1/m)Σ_{j=0}^{m-1}Y_(t-j)
TrailingMovingAverage := UsesCurrentAndPreviousObservations
CenteredMovingAverage := SymmetricWindowAroundTimeT
WeightedMovingAverage := WMA_t=Σ_jw_jY_(t-j)
WeightConstraint := Σ_jw_j=1
ExponentialMovingAverage := EMA_t=αY_t+(1-α)EMA_(t-1)
SmoothingParameter := 0<α≤1
EMAWeightDecay := HistoricalWeightAtLagK proportional_to α(1-α)^k
MovingAverageSmoothingPurpose := {NoiseReduction,TrendExtraction,SeasonalDecomposition,LocalLevelEstimation,Visualisation}
WindowLengthTradeoff := LargerWindow→MoreSmoothing∧GreaterLag∧LessSensitivityToShortTermVariation
CenteredSmoothingConstraint := RequiresFutureObservations→NotDirectlyAvailableForRealTimeEndpointForecasting
BoundaryProblem := FullWindowUnavailableNearSeriesStartOrEnd
BoundaryHandling := {TruncateWindow,PadSeries,AsymmetricWindow,MissingOutput}
MovingAverageFilter := LinearFilterAppliedToTimeSeries
FilterRepresentation := M_t=Σ_jw_jY_(t-j)
ConvolutionRelation := MovingAverageFiltering=DiscreteConvolutionWithWeightKernel
LowPassBehaviour := MovingAverageSmootherAttenuatesHighFrequencyVariation
FrequencyResponse := H(ω)=Σ_jw_je^(-iωj)
SeasonalMovingAverage := WindowChosenRelativeToSeasonalPeriod
SeasonalPeriod := s
TrendCycleMovingAverage := MovingAverageAcrossApproximatelyOneSeasonalCycle→SuppressSeasonalVariation→EstimateTrendCycle
AdditiveDecomposition := Y_t=T_t+S_t+R_t
MultiplicativeDecomposition := Y_t=T_t×S_t×R_t
MovingAverageProcess := StochasticProcessDependingOnCurrentAndPastInnovations
MAq := Y_t=μ+ε_t+θ1ε_(t-1)+...+θqε_(t-q)
MAOrder := q
MA1 := Y_t=μ+ε_t+θε_(t-1)
MAPolynomial := θ(L)=1+θ1L+...+θqL^q
MAOperatorForm := Y_t-μ=θ(L)ε_t
WhiteNoiseInnovation := E[ε_t]=0∧Var(ε_t)=σ²∧Cov(ε_t,ε_s)=0 for t≠s
MAProcessMean := E[Y_t]=μ
MAProcessVariance := Var(Y_t)=σ²(1+Σ_{j=1}^qθ_j²)
MAAutocovariance := γ(k)=σ²Σ_{j=0}^{q-k}θ_jθ_(j+k) for 0≤k≤q with θ_0=1
MACutoff := γ(k)=0 for |k|>q
MAAutocorrelation := ρ(k)=γ(k)/γ(0)
MAACFPattern := ACFCutsOffAfterLagQ under ideal MA(q)
MAPACFPattern := PACFTypicallyTailsOff
MA1Variance := γ(0)=σ²(1+θ²)
MA1Lag1Covariance := γ(1)=σ²θ
MA1Lag1Autocorrelation := ρ(1)=θ/(1+θ²)
MA1HigherLagAutocorrelation := ρ(k)=0 for |k|>1
Invertibility := InnovationsRecoverableAsConvergentFunctionOfObservedSeries
MAInvertibilityConstraint := RootsOfθ(z)=0 lie outside unit circle
MA1Invertibility := |θ|<1 under standard parameterisation
NoninvertibleRepresentation := DistinctMAParametersMayGenerateSameAutocovarianceStructure
StationarityRelation := FiniteOrderMAWithWhiteNoiseInnovationsIsWeaklyStationary
ARMARelation := ARMACombinesARAndMAComponents
ARIMARelation := ARIMAAddsDifferencingToARMA
SeasonalMA := SeasonalInnovationTermsAtLags s,2s,...
SeasonalMAOrder := Q
SeasonalMAPolynomial := Θ(L^s)=1+Θ1L^s+...+Θ_QL^(Qs)
ModelIdentification := TimeSeries→AssessStationarity→InspectACFAndPACF→CandidateMAOrder
MAIdentificationHeuristic := SharpACFCutoffAtLagQ∧PACFTailoff→CandidateMA(q)
IdentificationConstraint := SampleACFPatternsAreNoisyAndNotProofOfExactOrder
ParameterVector := {μ,θ1,...,θq,σ²}
MaximumLikelihoodEstimation := ParameterVector→MaximiseTimeSeriesLikelihood
StateSpaceMA := MovingAverageProcessRepresentedInStateSpaceForm
Residual := e_t=Y_t-Y_hat_t
ResidualGoal := ResidualsApproximatelyWhiteNoise
ResidualACF := Corr(e_t,e_(t-k))
LjungBoxTest := JointTestOfResidualAutocorrelations
ResidualDiagnostic := ResidualMean∧ResidualACF∧VarianceStability∧DistributionAssessment
AIC := -2LogLikelihood+2k
AICc := AIC+SmallSampleCorrection
BIC := -2LogLikelihood+klog(n)
ModelSelection := CandidateMAOrders→Estimate→CompareInformationCriteria→DiagnoseResiduals→ValidateForecasts
OneStepForecast := E[Y_(t+1)|Information_t]
MAForecastRelation := FutureInnovationsHaveConditionalMeanZero
MAqForecastHorizon := For h>q ForecastApproachesUnconditionalMeanμUnderStationaryMA(q)
ForecastError := FutureObservation-Forecast
PredictionInterval := PointForecast±CriticalValue×ForecastStandardError
RollingOriginValidation := RepeatedHistoricalForecastOrigins→OutOfSampleErrors
ForecastAccuracy := {MAE,MSE,RMSE,MASE}
SmootherVsProcess := MovingAverageSmootherUsesObservedValuesWhereasMAProcessUsesUnobservedInnovations
TerminologyConstraint := QueryContextMustResolveWhetherMovingAverageMeansSmootherOrMAProcess
TrendExtraction := MovingAverageSmoother→EstimatedTrend
NoiseReduction := LocalAveraging→ReducedShortTermVariance
VarianceReductionSmoother := IndependentNoise∧EqualWeights→NoiseVarianceApproximatelyσ²/m
AutocorrelationInducedBySmoothing := OverlappingMovingAverageWindows→SmoothedValuesBecomeSeriallyDependent
DataFrequency := ObservationIntervalDeterminesMeaningOfWindowAndLag
WindowSemantics := WindowLength×SamplingInterval→TemporalSpanOfSmoother
IrregularSamplingConstraint := StandardEqualIndexMovingAverageMayNotRepresentEqualTemporalWindows
MissingObservation := MissingValueInsideWindow
MissingWindowHandling := {RequireCompleteWindow,AvailableCaseAverage,Imputation,ModelBasedSmoothing}
OutlierSensitivity := ArithmeticMovingAverageMayBeStronglyAffectedByExtremeObservations
RobustMovingAverage := MedianOrTrimmedLocalSmootherAsRobustAlternative
MovingMedian := MedianOfValuesWithinWindow
RealTimeMovingAverage := UsesOnlyInformationAvailableAtTimeT
CenteredMovingAverageLeakage := UsesFutureValues⇒InvalidAsRealTimePredictorUnlessExplicitlyHistorical
MovingAverageConstraint := ConstraintOn(TimeSeries,Interpretation,WindowLengthOrMAOrder,SamplingFrequency,WeightDefinition,Stationarity,Invertibility,MissingDataMethod)
MovingAverageConsistency := Series∧Interpretation∧WindowOrOrder∧WeightOrInnovationStructure∧Frequency jointly_compatible
InvalidMovingAverage := AmbiguousSmootherVsProcess∨InvalidWindowLength∨InvalidMAOrder∨InvalidWeights∨NoninvertibilityUnresolved∨MissingDataHandlingUndefined∨FutureLeakage
MovingAverageValidation := ResolveMovingAverageInterpretation→ResolveTimeSeriesAndFrequency→IfSmootherResolveWindowAndWeights→IfProcessResolveMAOrderAndInnovationStructure→ValidateTemporalAlignment→ComputeSmootherOrEstimateMAParameters→DiagnoseBoundaryOrInvertibilityConditions→QuantifyUncertainty→ValidateResidualsIfModelBased→EvaluateForecastsIfRequired→ValidateResult
MovingAverageState := {TimeSeries,TimeIndex,SamplingFrequency,Interpretation,WindowLength,Weights,SmoothingParameter,MAOrder,MAParameters,InnovationVariance,InvertibilityStatus,SmoothedSeries,Residuals,ResidualACF,Forecasts,PredictionIntervals,BoundaryMethod,MissingDataMethod,Evidence,Confidence,Provenance}
SEMANTIC_EQUIVALENCE(MovingAverageA,MovingAverageB) := same(SeriesSemantics)∧same(MovingAverageInterpretation)∧same(SamplingFrequency)∧same(WindowOrMAOrder)∧same(WeightKernelOrMAPolynomial)∧same(AlignmentConvention)
MovingAverageOntology := Classes∧Relations∧Constraints∧Axioms∧InferenceRules
CoreClasses := {MovingAverage,MovingAverageSmoother,SimpleMovingAverage,CenteredMovingAverage,WeightedMovingAverage,ExponentialMovingAverage,MovingAverageProcess,MAOrder,MA1,MAq,MAPolynomial,Innovation,Invertibility,MovingAverageFilter,SeasonalMovingAverage,SeasonalMA,Residual,Forecast,PredictionInterval}
CoreRelations := {smooths,models,hasWindow,hasWeight,hasOrder,hasParameter,usesInnovation,hasPolynomial,hasInvertibility,filters,estimatesTrend,hasResidual,forecasts,hasUncertainty,constrainedBy,equivalentTo,tracesTo}
TypedRelations := MovingAverageSmoother--smooths-->TimeSeries ∧ MovingAverageProcess--models-->TimeSeries ∧ MovingAverageSmoother--hasWindow-->WindowLength ∧ WeightedMovingAverage--hasWeight-->Weight ∧ MovingAverageProcess--hasOrder-->MAOrder ∧ MovingAverageProcess--usesInnovation-->Innovation ∧ MovingAverageProcess--hasPolynomial-->MAPolynomial ∧ MovingAverageProcess--hasInvertibility-->Invertibility ∧ MovingAverageSmoother--estimatesTrend-->Trend ∧ MovingAverageProcess--hasResidual-->Residual ∧ MovingAverageProcess--forecasts-->FutureObservation ∧ Forecast--hasUncertainty-->PredictionInterval ∧ MovingAverage--tracesTo-->Provenance
InferenceRules := {EqualWeights⇒SimpleMovingAverage,CenteredWindow⇒HistoricalSmootherUsesFutureAndPastValuesAroundT,FiniteMAOrderQ⇒AutocorrelationZeroBeyondLagQ,MAInvertibilityRootsOutsideUnitCircle⇒UniqueInvertibleRepresentation,FiniteOrderMAWithWhiteNoiseInnovations⇒WeakStationarity,SharpACFCutoffAtQ⇒CandidateMAOrderQ,OverlappingSmoothingWindows⇒InducedSerialDependencePossible,CenteredMovingAverageUsedForRealTimePrediction⇒FlagFutureLeakage,MovingAverageSmoother≠MovingAverageProcess}
CanonicalMovingAverageRepresentation := ParseMovingAverageRequest→ResolveSmootherOrStochasticProcessMeaning→ResolveTimeSeriesTimeIndexAndFrequency→ResolveWindowWeightsOrMAOrder→ValidateAlignmentAndMissingness→ComputeMovingAverageSmootherOrEstimateMAParameters→ValidateStationarityAndInvertibilityIfProcess→ComputeResidualsAndACFIfProcess→GenerateForecastsIfRequested→QuantifyUncertainty→ValidateMovingAverage
MovingAverageGraph := G=(V,E)
V := {MovingAverages,MovingAverageSmoothers,SimpleMovingAverages,CenteredMovingAverages,WeightedMovingAverages,ExponentialMovingAverages,MovingAverageProcesses,MAOrders,MA1Processes,MAqProcesses,MAPolynomials,Innovations,InvertibilityNodes,MovingAverageFilters,SeasonalMovingAverages,SeasonalMAProcesses,Residuals,Forecasts,PredictionIntervals,TimeSeriesNodes,Evidence,ProvenanceNodes}
E := {smooths,models,hasWindow,hasWeight,hasOrder,hasParameter,usesInnovation,hasPolynomial,hasInvertibility,filters,estimatesTrend,hasResidual,forecasts,hasUncertainty,constrainedBy,equivalentTo,tracesTo}
CONFIDENCE(MovingAverageResolution) := weighted_mean(InterpretationResolution,TimeSeriesResolution,FrequencyValidity,WindowOrOrderValidity,WeightOrParameterValidity,AlignmentValidity,StationarityValidity,InvertibilityValidity,ResidualDiagnosticQuality,ForecastValidationQuality,ProvenanceQuality)
AI_QUERY_INTERPRETATION := Query→DetectMovingAverageIntent→ResolveSmootherVersusMAProcess→IdentifySeriesFrequencyWindowOrOrder→ResolveSmoothingTrendModelIdentificationOrForecastIntent→IdentifyRequestedWeightsParametersACFOrForecasts→ResolveMissingnessAlignmentAndRealTimeContext
AI_REASONING_FLOW := Query→ParseMovingAverageProblem→ResolveInterpretation→ResolveTimeSeriesAndTimeIndex→ResolveSamplingFrequency→IfSmootherResolveWindowWeightsAndAlignment→IfProcessResolveMAOrderInnovationAndInvertibility→ComputeSmootherOrEstimateProcess→DiagnoseBoundaryMissingnessOrResidualStructure→ComputeACFAndModelDiagnosticsIfRequired→GenerateForecastsAndIntervalsIfRequired→ValidateFutureInformationUsage→UpdateConfidence→PreserveProvenance→GenerateExplanation
AI_CONSUMPTION := {ParseMovingAverageEntities,ParseTypedRelations,ResolveMovingAverageInterpretation,ResolveTimeSeries,ResolveTimeIndices,ResolveSamplingFrequencies,ResolveWindowLengths,ResolveWeights,ComputeSimpleMovingAverages,ComputeCenteredMovingAverages,ComputeWeightedMovingAverages,ComputeExponentialMovingAverages,ComputeMovingMedians,ResolveMAOrders,ConstructMAPolynomials,EstimateMAParameters,ValidateInvertibility,ComputeMAAutocovariances,ComputeMAAutocorrelations,ConstructACF,ComputeResiduals,ComputeResidualACF,ExecuteLjungBoxTests,ComputeAIC,ComputeAICc,ComputeBIC,GenerateMAForecasts,ComputePredictionIntervals,DiagnoseBoundaryEffects,ResolveMissingWindowHandling,DetectFutureLeakage,ValidateMovingAverageSemantics,CompareSemanticEquivalence,UpdateConfidence,PreserveProvenance,GenerateFormalExplanation}
UPDATE_MODEL := NewObservationWindowOrderWeightOrEvidence→ValidateInput→IdentifyAffectedMovingAverageClaims→UpdateMovingAverageState→RecomputeSmootherOrReestimateMAProcess→RevalidateAlignmentOrInvertibility→RecomputeResidualsAndDiagnostics→RegenerateForecastsIfRequired→RecomputeConfidence→PreserveProvenance→VersionModel
DataUpdate := NewOrChangedObservation⇒recompute(SmoothedSeries,MAParameterEstimates,Residuals,Forecasts)
WindowUpdate := ChangedWindowLength⇒recompute(SmoothedSeries,BoundaryAvailability,TemporalSpan)
OrderUpdate := ChangedMAOrder⇒recompute(MAPolynomial,MAParameters,ACFStructure,ResidualDiagnostics,Forecasts)
WeightUpdate := ChangedWeightKernel⇒recompute(SmoothedSeries,FrequencyResponse,SmoothingLag)
FLOW_HASH_INPUT := canonical(ONTOLOGY,CoreClasses,CoreRelations,InferenceRules,MovingAverage,MovingAverageValidation,MovingAverageConstraint,SEMANTIC_EQUIVALENCE,AI_REASONING_FLOW)
FLOW_HASH := HASH(FLOW_HASH_INPUT)
OUTPUT_MODEL := {MovingAverageEntityResolution,TimeSeries,TimeIndex,SamplingFrequency,Interpretation,WindowLength,Weights,SmoothingParameter,MAOrder,MAParameters,InnovationVariance,InvertibilityStatus,SmoothedSeries,Residuals,ResidualACF,Forecasts,PredictionIntervals,BoundaryMethod,MissingDataMethod,ValidationStatus,Confidence,Provenance,Explanation}
END_FLOW
END OF FULL EXECUTABLE FLOW ALGEBRA
Download Code
Copy to Clipboard