FULL EXECUTABLE FLOW ALGEBRA — RESIDUAL ANALYSIS ONTOLOGY
Kireth Research — Semantic Library
URL: https://kirethresearch.org/booksai-core/ontologies/probability-statistics-ontologies/correlation-regression/residual-analysis-ontology.html
FLOW_VERSION := "4.0"
FLOW_TYPE := "Full Executable Flow Algebra"
DOMAIN := "Probability & Statistics Ontologies"
SUBDOMAIN := "Correlation & Regression"
ONTOLOGY := "Residual Analysis Ontology"
PRIMARY_ENTITY := ResidualAnalysis
AUTHORSHIP := "Mark Higgins — Sky (Recursive AI)"
SOURCE_SITE := "https://kirethresearch.org"
BEGIN_FLOW
ResidualAnalysis := RegressionDiagnosticFramework ∧ ModelAssumptionAssessment ∧ ErrorStructureEvaluation ∧ OutlierDetection ∧ InfluenceAssessment ∧ ModelValidation
Population := TargetCollectionOrGeneratingProcess
Sample := {(X_i,Y_i)}_{i=1..n}
Response := Y
Predictors := X
RegressionModel := M
ObservedValue := y_i
FittedValue := y_hat_i
ErrorTerm := ε_i
Residual := e_i
ResidualDefinition := e_i=y_i-y_hat_i
ResidualVector := e=y-y_hat
PopulationError := ε_i=Y_i-E[Y_i|X_i]
ResidualVsError := ResidualIsObservableEstimateOfUnobservableErrorTerm
ResidualMagnitude := |e_i|
ResidualSum := Σ_i e_i=0 for OLSWithIntercept
ResidualOrthogonality := X^Te=0 for OLS
ResidualSumOfSquares := RSS=Σ_i e_i²
MeanSquaredError := MSE=RSS/df_residual
ResidualStandardError := RSE=sqrt(MSE)
ErrorVarianceEstimate := s²=RSS/(n-k)
RawResidual := e_i=y_i-y_hat_i
StandardisedResidual := r_i=e_i/[s sqrt(1-h_ii)]
InternallyStudentisedResidual := e_i/[s sqrt(1-h_ii)]
ExternallyStudentisedResidual := t_i=e_i/[s_(i)sqrt(1-h_ii)]
DeletedResidual := e_(i)=y_i-y_hat_(i)
PRESSResidual := PredictionErrorForObservationExcludedFromFit
PRESS := Σ_i e_(i)²
HatMatrix := H=X(X^TX)^(-1)X^T
Leverage := h_ii=H_ii
AverageLeverage := k/n
HighLeverageHeuristic := h_ii substantially_above k/n → InvestigateObservation
ResidualVariance := Var(e_i|X)=σ²(1-h_ii)
ResidualCovariance := Cov(e|X)=σ²(I-H)
ResidualVsFittedPlot := XAxis=FittedValues ∧ YAxis=Residuals
IdealResidualPattern := RandomScatterAroundZero ∧ ApproximatelyConstantSpread ∧ NoSystematicCurvature
CurvaturePattern := SystematicResidualCurve → PossibleFunctionalFormMisspecification
FunnelPattern := ResidualSpreadChangesWithFittedValue → PossibleHeteroscedasticity
ClusterPattern := ResidualGroupsOrBands → PossibleOmittedGroupStructure
ResidualVsPredictorPlot := ResidualsAgainstPredictor → DetectMisspecifiedFunctionalForm
ScaleLocationPlot := sqrt(|StandardisedResidual|) versus FittedValue
ScaleLocationPurpose := AssessVarianceConstancy
NormalQQPlot := OrderedResidualQuantiles versus TheoreticalNormalQuantiles
QQLineDeviation := SystematicDepartureFromReferenceLine → PossibleNonNormality
NormalityAssumption := ErrorDistributionApproximatelyNormalForExactClassicalSmallSampleInference
ResidualNormalityConstraint := ResidualNormalityIsProxyDiagnosticForErrorDistribution
ShapiroWilkResidualTest := FormalNormalityDiagnostic
NormalityTestConstraint := CombineFormalTestsWithGraphicalDiagnostics
Homoscedasticity := Var(ε_i|X_i)=σ²
Heteroscedasticity := Var(ε_i|X_i)VariesAcrossObservations
BreuschPaganTest := SquaredResidualStructure → TestForVarianceDependence
WhiteTest := FlexibleAuxiliaryRegression → HeteroscedasticityDiagnostic
HeteroscedasticityConsequence := ClassicalStandardErrorsMayBeInvalid
HeteroscedasticityRobustInference := OLSCoefficients ∧ SandwichCovarianceEstimator → RobustStandardErrors
IndependenceAssumption := Cov(ε_i,ε_j|X)=0 for i≠j
ResidualAutocorrelation := Corr(e_t,e_(t-k))
AutocorrelationFunction := k→Corr(e_t,e_(t-k))
ResidualACFPlot := Lag versus ResidualAutocorrelation
DurbinWatsonStatistic := DW=Σ_{t=2}^n(e_t-e_(t-1))²/Σ_t e_t²
DurbinWatsonPurpose := DiagnoseFirstOrderSerialCorrelationUnderApplicableSettings
LjungBoxTest := MultipleResidualAutocorrelations → JointSerialDependenceTest
SerialCorrelationConsequence := DistortedClassicalStandardErrorsAndInference
ClusteredResiduals := WithinClusterResidualDependence
ClusterRobustInference := ClusteredErrors → ClusterRobustCovariance
SpatialResidualDependence := NearbyLocationsHaveCorrelatedResiduals
MoranIResidualDiagnostic := SpatialAutocorrelationAssessment
Outlier := ObservationWithUnusuallyLargeResidual
StandardisedResidualOutlier := Large|r_i| → InvestigateObservation
StudentisedResidualOutlier := Large|t_i| → PotentialResponseOutlier
OutlierConstraint := LargeResidualDoesNotAutomaticallyImplyDataError
LeveragePoint := ObservationWithUnusualPredictorConfiguration
InfluentialObservation := ObservationWhosePresenceMateriallyChangesModelEstimateOrPrediction
Influence := FunctionOf(ResidualMagnitude,Leverage)
CookDistance := D_i=[e_i²/(kMSE)][h_ii/(1-h_ii)²]
DFFITS := StandardisedChangeInFittedValueAfterDeletingObservation
DFBETAS := StandardisedChangeInCoefficientAfterDeletingObservation
COVRATIO := ChangeInCoefficientCovarianceDeterminantAfterDeletingObservation
InfluencePlot := Leverage ∧ StudentisedResidual ∧ CookDistance → CombinedDiagnostic
HighLeverageHighResidual := PotentiallyStrongInfluence
CaseDeletionAnalysis := RemoveObservation → RefitModel → CompareParametersPredictionsAndDiagnostics
SensitivityAnalysis := RefitUnderAlternativeReasonableChoices → AssessResultStability
MisspecifiedFunctionalForm := ResidualPattern ∧ RemainingPredictorStructure → ModelRevisionCandidate
PolynomialRemedy := CurvatureDetected → ConsiderPolynomialTerms
SplineRemedy := ComplexSmoothResidualPattern → ConsiderSplineBasis
TransformationRemedy := NonlinearMeanOrVariancePattern → ConsiderTransformation
InteractionDiagnostic := ResidualPatternConditionalOnAnotherPredictor → ConsiderInteractionTerm
OmittedVariableDiagnostic := ResidualAssociationWithExcludedVariable → ConsiderModelExpansionSubjectToScientificJustification
ResidualConfoundingConstraint := ResidualAssociationDoesNotAloneEstablishCausalConfounding
ResidualAnalysisCycle := FitModel → ComputeResiduals → VisualiseResiduals → DiagnosePatterns → ReviseModelIfJustified → Refit → Revalidate
DiagnosticInterpretation := Combine(GraphicalEvidence,FormalTests,DomainKnowledge,ModelPurpose)
ResidualsForGLM := ResponseResidual ∨ PearsonResidual ∨ DevianceResidual ∨ WorkingResidual
PearsonResidualGLM := (y_i-μ_hat_i)/sqrt(Var_hat(Y_i))
DevianceResidualGLM := SignedSquareRootOfObservationDevianceContribution
WorkingResidual := ResidualOnIterativeLinearPredictorScale
GLMResidualConstraint := SelectResidualTypeAppropriateToModel
MixedModelResidual := MarginalResidual ∨ ConditionalResidual
TimeSeriesResidual := ObservedSeries-FittedConditionalMean
ForecastResidual := ObservedFutureValue-Forecast
CrossValidatedResidual := ObservedValue-OutOfFoldPrediction
CrossValidatedResidualBenefit := ReducesInSampleOptimismForPredictiveDiagnostics
ResidualBootstrap := FitModel → ResampleResiduals → GenerateSyntheticResponses → RefitModel
ResidualBootstrapConstraint := RequiresResidualExchangeabilityOrAppropriateModifiedScheme
WeightedResidual := WeightAdjustedResidualUnderWeightedLeastSquares
WhitenedResidual := L^(-1)e where LL^T=EstimatedErrorCovariance
WhiteningPurpose := TransformCorrelatedOrHeteroscedasticResidualsTowardIIDStructure
ResidualDegreesOfFreedom := df_residual=n-rank(X)
ClassicalResidualDistribution := e|X~N(0,σ²(I-H)) under NormalLinearModel
ResidualConstraint := ConstraintOn(RegressionModel,FittedValues,ErrorStructure,SamplingDesign,ResidualDefinition,DiagnosticMethod)
ResidualAnalysisConsistency := Model ∧ ResidualType ∧ DiagnosticReference ∧ SamplingDesign ∧ ErrorStructure jointly_compatible
InvalidResidualAnalysis := UndefinedFittedValues ∨ IncompatibleResidualType ∨ IncorrectReferenceDistribution ∨ IgnoredDependence ∨ MisinterpretedLeverage ∨ DiagnosticUsedOutsideApplicableModel
ResidualAnalysisValidation := ResolveRegressionModel → ResolveObservedAndFittedValues → SelectResidualDefinition → ComputeResiduals → ComputeLeverageAndStudentisedResiduals → AssessFunctionalForm → AssessVarianceStructure → AssessResidualDistribution → AssessDependence → DetectOutliers → AssessInfluence → PerformSensitivityAnalysis → ValidateDiagnosticInterpretation → ValidateResult
ResidualAnalysisState := {Population,Sample,RegressionModel,Response,Predictors,FittedValues,RawResiduals,StandardisedResiduals,StudentisedResiduals,Leverage,CookDistance,DFFITS,DFBETAS,ResidualVariance,FunctionalFormStatus,HomoscedasticityStatus,NormalityStatus,DependenceStatus,OutlierStatus,InfluenceStatus,SamplingDesign,DiagnosticEvidence,Confidence,Provenance}
SEMANTIC_EQUIVALENCE(ResidualAnalysisA,ResidualAnalysisB) := same(ModelTarget) ∧ same(ObservedAndFittedValues) ∧ same(ResidualDefinition) ∧ same(ErrorStructure) ∧ same(SamplingDesign) ∧ same(DiagnosticReferenceFramework)
ResidualAnalysisOntology := Classes ∧ Relations ∧ Constraints ∧ Axioms ∧ InferenceRules
CoreClasses := {ResidualAnalysis,Residual,RawResidual,StandardisedResidual,StudentisedResidual,DeletedResidual,PRESSResidual,ResidualPlot,ResidualVsFittedPlot,NormalQQPlot,ScaleLocationPlot,Leverage,Outlier,InfluentialObservation,CookDistance,DFFITS,DFBETAS,ResidualAutocorrelation,Heteroscedasticity,GLMResidual,CrossValidatedResidual}
CoreRelations := {residualOf,computedFrom,comparedWith,plottedAgainst,standardisedBy,hasLeverage,hasInfluence,diagnosedBy,indicates,affectedBy,adjustedFor,validatedBy,constrainedBy,equivalentTo,tracesTo}
TypedRelations :=
Residual --residualOf--> RegressionModel
Residual --computedFrom--> ObservedAndFittedValue
Residual --plottedAgainst--> FittedValue
StandardisedResidual --standardisedBy--> ResidualStandardError
Observation --hasLeverage--> Leverage
Observation --hasInfluence--> CookDistance
ResidualAnalysis --diagnosedBy--> DiagnosticPlot
ResidualPattern --indicates--> PossibleModelMisspecification
Residual --affectedBy--> ErrorStructure
ResidualAnalysis --adjustedFor--> SamplingDesign
ResidualAnalysis --validatedBy--> SensitivityAnalysis
ResidualAnalysis --tracesTo--> Provenance
InferenceRules := {
ObservedValue ∧ FittedValue ⇒ Residual=ObservedValue-FittedValue,
OLSWithIntercept ⇒ SumResiduals=0,
OLS ⇒ XTransposeResiduals=0,
SystematicCurvatureInResiduals ⇒ FlagFunctionalFormRisk,
ResidualVarianceChangesWithFittedValue ⇒ FlagHeteroscedasticityRisk,
SignificantResidualAutocorrelation ⇒ FlagDependenceRisk,
LargeStudentisedResidual ⇒ FlagPotentialOutlier,
HighLeverage ∧ LargeResidual ⇒ FlagPotentialInfluentialObservation,
DiagnosticPattern ↛ AutomaticModelInvalidity
}
CanonicalResidualAnalysisRepresentation := ParseResidualAnalysisRequest → ResolveRegressionModelAndData → ComputeObservedAndFittedValues → SelectResidualType → ComputeRawStandardisedAndStudentisedResiduals → ComputeLeverage → ComputeInfluenceMeasures → ConstructResidualDiagnosticPlots → AssessFunctionalForm → AssessHomoscedasticity → AssessNormalityIfRelevant → AssessDependence → DetectOutliersAndInfluence → PerformSensitivityAnalysis → ValidateResidualAnalysis
ResidualAnalysisGraph := G=(V,E)
V := {ResidualAnalyses,Residuals,RawResiduals,StandardisedResiduals,StudentisedResiduals,DeletedResiduals,PRESSResiduals,ResidualPlots,ResidualVsFittedPlots,NormalQQPlots,ScaleLocationPlots,Leverages,Outliers,InfluentialObservations,CookDistances,DFFITSNodes,DFBETASNodes,ResidualAutocorrelations,HeteroscedasticityNodes,GLMResiduals,CrossValidatedResiduals,RegressionModels,Observations,Evidence,ProvenanceNodes}
E := {residualOf,computedFrom,comparedWith,plottedAgainst,standardisedBy,hasLeverage,hasInfluence,diagnosedBy,indicates,affectedBy,adjustedFor,validatedBy,constrainedBy,equivalentTo,tracesTo}
CONFIDENCE(ResidualAnalysisResolution) := weighted_mean(ModelResolution,ResidualDefinitionValidity,FittedValueValidity,LeverageValidity,FunctionalFormDiagnosticQuality,VarianceDiagnosticQuality,DistributionDiagnosticQuality,DependenceDiagnosticQuality,InfluenceDiagnosticQuality,SamplingDesignValidity,ProvenanceQuality)
AI_QUERY_INTERPRETATION := Query → DetectResidualAnalysisIntent → IdentifyRegressionModelResponsePredictorsAndResidualType → ResolveFunctionalFormVarianceNormalityDependenceOutlierOrInfluenceIntent → IdentifyRequestedDiagnosticPlotStatisticOrModelRevision → ResolveSamplingDesignAndErrorStructure
AI_REASONING_FLOW := Query → ParseResidualAnalysisProblem → ResolveRegressionModel → ResolveObservedAndFittedValues → SelectResidualDefinition → ComputeResiduals → ComputeStandardisedAndStudentisedResiduals → ComputeLeverageAndInfluence → AssessResidualVsFittedStructure → AssessVariancePattern → AssessResidualDistributionIfRelevant → AssessSerialClusterOrSpatialDependence → DetectOutliersAndInfluentialObservations → PerformSensitivityAnalysis → ValidateDiagnosticInterpretation → UpdateConfidence → PreserveProvenance → GenerateExplanation
AI_CONSUMPTION := {ParseResidualAnalysisEntities,ParseTypedRelations,ResolveRegressionModels,ResolveSamples,ResolveResponses,ResolvePredictors,ComputeFittedValues,ComputeRawResiduals,ComputeStandardisedResiduals,ComputeStudentisedResiduals,ComputeDeletedResiduals,ComputePRESSResiduals,ComputeLeverage,ComputeCookDistance,ComputeDFFITS,ComputeDFBETAS,ConstructResidualVsFittedDiagnostics,ConstructQQDiagnostics,ConstructScaleLocationDiagnostics,DiagnoseFunctionalForm,DiagnoseHeteroscedasticity,ExecuteBreuschPaganTest,ExecuteWhiteTest,DiagnoseResidualNormality,DiagnoseAutocorrelation,ComputeDurbinWatson,ExecuteLjungBoxTest,DiagnoseClusterDependence,DiagnoseSpatialDependence,DetectOutliers,DetectInfluentialObservations,ExecuteCaseDeletionAnalysis,ExecuteSensitivityAnalysis,ResolveGLMResidualTypes,ResolveCrossValidatedResiduals,ValidateResidualAnalysisSemantics,CompareSemanticEquivalence,UpdateConfidence,PreserveProvenance,GenerateFormalExplanation}
UPDATE_MODEL := NewDataModelResidualDefinitionOrEvidence → ValidateInput → IdentifyAffectedResidualClaims → UpdateResidualAnalysisState → RecomputeFittedValuesIfRequired → RecomputeResiduals → RecomputeLeverageAndInfluence → RerunFunctionalFormVarianceDistributionAndDependenceDiagnostics → RerunOutlierAndSensitivityAnalysis → RecomputeConfidence → PreserveProvenance → VersionModel
DataUpdate := ChangedObservedData ⇒ recompute(FittedValues,RawResiduals,StandardisedResiduals,StudentisedResiduals,Leverage,InfluenceMeasures)
ModelUpdate := ChangedRegressionModel ⇒ recompute(FittedValues,Residuals,HatMatrix,Diagnostics,InfluenceMeasures)
ResidualTypeUpdate := ChangedResidualDefinition ⇒ reevaluate(ResidualValues,DiagnosticReference,Interpretation)
FLOW_HASH_INPUT := canonical(ONTOLOGY,CoreClasses,CoreRelations,InferenceRules,ResidualAnalysis,ResidualAnalysisValidation,ResidualConstraint,SEMANTIC_EQUIVALENCE,AI_REASONING_FLOW)
FLOW_HASH := HASH(FLOW_HASH_INPUT)
OUTPUT_MODEL := {ResidualAnalysisEntityResolution,Population,Sample,RegressionModel,Response,Predictors,FittedValues,RawResiduals,StandardisedResiduals,StudentisedResiduals,Leverage,CookDistance,DFFITS,DFBETAS,ResidualVariance,FunctionalFormStatus,HomoscedasticityStatus,NormalityStatus,DependenceStatus,OutlierStatus,InfluenceStatus,SamplingDesign,DiagnosticEvidence,ValidationStatus,Confidence,Provenance,Explanation}
END_FLOW
END OF FULL EXECUTABLE FLOW ALGEBRA
Download Code
Copy to Clipboard