FULL EXECUTABLE FLOW ALGEBRA — INTERQUARTILE RANGE ONTOLOGY
Kireth Research — Semantic Library
URL: https://kirethresearch.org/booksai-core/ontologies/probability-statistics-ontologies/descriptive-statistics/interquartile-range-ontology.html
FLOW_VERSION := "4.0"
FLOW_TYPE := "Full Executable Flow Algebra"
DOMAIN := "Probability & Statistics Ontologies"
SUBDOMAIN := "Descriptive Statistics"
ONTOLOGY := "Interquartile Range Ontology"
PRIMARY_ENTITY := InterquartileRange
AUTHORSHIP := "Mark Higgins — Sky (Recursive AI)"
SOURCE_SITE := "https://kirethresearch.org"
BEGIN_FLOW
InterquartileRange :=
RobustMeasureOfDispersion
∧ QuantileBasedSpread
∧ CentralFiftyPercentRange
FirstQuartile := Q1=Q(0.25)
SecondQuartile := Q2=Q(0.50)
ThirdQuartile := Q3=Q(0.75)
InterquartileRangeDefinition :=
IQR=Q3-Q1
IQRNonnegativity :=
Q3≥Q1
⇒ IQR≥0
ZeroIQR :=
Q3=Q1
⇒ IQR=0
PositiveIQR :=
Q3>Q1
⇒ IQR>0
CentralFiftyPercent :=
Interval[Q1,Q3]
CentralFiftyPercentWidth :=
Width([Q1,Q3])
=
IQR
QuartileRelation :=
IQR
depends_on
FirstQuartile
and ThirdQuartile
PercentileRelation :=
IQR
=
P75-P25
SemiInterquartileRange :=
SIQR
=
IQR/2
QuartileDeviation :=
SemiInterquartileRange
Midhinge :=
(Q1+Q3)/2
Dataset :=
{x_1,...,x_n}
OrderedDataset :=
x_(1)≤x_(2)≤...≤x_(n)
SampleIQR :=
SampleQ3-SampleQ1
PopulationIQR :=
PopulationQ(0.75)
-
PopulationQ(0.25)
IQRConventionConstraint :=
QuartileAlgorithm
determines
SampleQ1
and SampleQ3
⇒
QuartileConventionMustBeRecorded
TranslationInvariance :=
IQR(X+c)
=
IQR(X)
ScalingProperty :=
IQR(aX)
=
|a|IQR(X)
PositiveScaleRelation :=
a>0
⇒
IQR(aX)=aIQR(X)
AffineProperty :=
IQR(aX+b)
=
|a|IQR(X)
IQRUnit :=
SameMeasurementUnit
as source variable
Robustness :=
IQR
insensitive_to
magnitude of sufficiently extreme tail values
while Q1AndQ3 remain unchanged
OutlierResistance :=
IQR
more robust
than Range,
Variance,
StandardDeviation
to extreme observations
BreakdownRelation :=
QuantileBasedSpread
tolerates substantial contamination
relative_to moment_and_extreme measures
RangeComparison :=
Range
=
Maximum-Minimum
whereas
IQR
=
Q3-Q1
StandardDeviationComparison :=
StandardDeviation
uses squared deviations
whereas
IQR
uses central quantiles
VarianceComparison :=
Variance
uses all observations
whereas
IQR
describes central half
MedianAbsoluteDeviationComparison :=
IQR
and MAD
are robust scale measures
based_on different quantile structures
LowerInnerFence :=
Q1-1.5IQR
UpperInnerFence :=
Q3+1.5IQR
LowerOuterFence :=
Q1-3IQR
UpperOuterFence :=
Q3+3IQR
PotentialOutlier :=
X<LowerInnerFence
∨ X>UpperInnerFence
ExtremePotentialOutlier :=
X<LowerOuterFence
∨ X>UpperOuterFence
FenceRuleConstraint :=
IQRFence
identifies potential outliers
↛ proves data error
BoxPlotRelation :=
Q1
∧ Median
∧ Q3
∧ IQR
∧ WhiskerRule
→ BoxPlot
BoxWidth :=
Q3-Q1
=
IQR
on measurement axis
BowleySkewness :=
(Q3+Q1-2Median)
/
IQR
where IQR>0
QuartileCoefficientOfDispersion :=
IQR/(Q3+Q1)
where denominator valid
NormalDistributionRelation :=
X~N(μ,σ²)
⇒
IQR
=
[Φ^(-1)(0.75)-Φ^(-1)(0.25)]σ
NormalIQR :=
IQR
≈
1.3489795σ
NormalScaleFromIQR :=
σ
≈
IQR/1.3489795
RobustNormalScaleEstimator :=
IQR/1.3489795
UniformDistributionIQR :=
X~Uniform(a,b)
⇒
IQR
=
0.5(b-a)
ExponentialDistributionIQR :=
X~Exponential(λ)
⇒
IQR
=
ln(3)/λ
LogisticDistributionIQR :=
X~Logistic(μ,s)
⇒
IQR
=
2sln(3)
CauchyDistributionIQR :=
X~Cauchy(x0,γ)
⇒
IQR
=
2γ
LognormalDistributionIQR :=
X~LogNormal(μ,σ²)
⇒
IQR
=
exp(μ+σz_0.75)
-
exp(μ+σz_0.25)
WeibullDistributionIQR :=
X~Weibull(k,λ)
⇒
IQR
=
λ[
(-ln0.25)^(1/k)
-
(-ln0.75)^(1/k)
]
EmpiricalCDF :=
F_n(x)
=
(1/n)Σ_i1_(x_i≤x)
EmpiricalIQR :=
EmpiricalQuantile(0.75)
-
EmpiricalQuantile(0.25)
GroupedDataIQR :=
EstimatedQ3
-
EstimatedQ1
using grouped quantile interpolation
WeightedIQR :=
WeightedQ3
-
WeightedQ1
WeightedQuartileProcedure :=
SortValues
→ AccumulateWeights
→ ResolveQ1AndQ3
→ ComputeDifference
WeightConstraint :=
w_i≥0
∧ Σ_iw_i>0
MissingDataIQR :=
IQR
computed_from
selected nonmissing observations
under explicit missingness rule
MissingnessConstraint :=
Q1AndQ3
must use
same effective observation set
and same quartile convention
EmptyDatasetIQR :=
Undefined
SingleObservationIQR :=
n=1
⇒
IQR=0
under common quartile conventions
ConstantDatasetIQR :=
AllValuesEqual
⇒
IQR=0
NominalIQRInvalid :=
NominalVariable
⇒
IQRNotMeaningful
OrdinalIQR :=
Can represent
ordered-category spread
under explicit ordinal quantile convention
QuantitativeIQR :=
Meaningful
for ordered numerical variables
MeasurementScaleConstraint :=
IQR
requires
at least ordinal ordering
IQRDoesNotRequireFiniteMoments :=
IQR
may exist
even when MeanOrVariance
does_not exist
CauchyRobustnessExample :=
CauchyDistribution
has undefined variance
but finite IQR=2γ
SamplingDistributionOfIQR :=
DistributionOf(
Q_hat_0.75-Q_hat_0.25
)
across repeated samples
IQRUncertainty :=
DependsOn(
SampleSize,
DensityNearQ1,
DensityNearQ3,
SamplingDesign,
QuartileConvention
)
BootstrapIQR :=
ObservedSample
→ BootstrapSamples
→ ComputeIQRReplicates
→ ApproximateSamplingDistribution
BootstrapIQRStandardError :=
SD(
IQR*_1,...,IQR*_B
)
IQRConfidenceInterval :=
BootstrapDistribution
∨ AsymptoticQuantileTheory
→ IntervalForPopulationIQR
IQRConstraint :=
ConstraintOn(
Ordering,
QuartileConvention,
Interpolation,
Missingness,
Weighting,
SamplingDesign
)
IQRConsistency :=
DataScope
∧ Q1Definition
∧ Q3Definition
∧ QuartileConvention
∧ MissingnessRule
∧ WeightingRule
jointly_compatible
InvalidIQR :=
NonOrderableVariable
∨ EmptyEffectiveDataset
∨ InvalidWeights
∨ UndefinedQuartileConvention
∨ Q3<Q1
∨ UndocumentedMissingness
IQRValidation :=
ResolveVariable
→ ResolveVariableType
→ ValidateOrdering
→ ResolveDataScope
→ ResolveObservationsOrDistribution
→ ResolveMissingness
→ ResolveWeights
→ ResolveQuartileConvention
→ ComputeQ1
→ ComputeQ3
→ ValidateQ3GreaterOrEqualQ1
→ ComputeIQR
→ ValidateResult
IQRState := {
Variable,
DataScope,
Observations,
EffectiveCount,
QuartileConvention,
InterpolationRule,
Weights,
MissingnessRule,
Q1,
Q3,
IQRValue,
LowerInnerFence,
UpperInnerFence,
SamplingContext,
Evidence,
Confidence,
Provenance
}
SEMANTIC_EQUIVALENCE(IQRA,IQRB) :=
same(DataScope)
∧ same(VariableSemantics)
∧ same(Q1Definition)
∧ same(Q3Definition)
∧ same(QuartileConvention)
∧ same(MissingnessRule)
∧ same(WeightingRule)
InterquartileRangeOntology :=
Classes
∧ Relations
∧ Constraints
∧ Axioms
∧ InferenceRules
CoreClasses := {
InterquartileRange,
SampleIQR,
PopulationIQR,
FirstQuartile,
ThirdQuartile,
SemiInterquartileRange,
QuartileDeviation,
Midhinge,
LowerInnerFence,
UpperInnerFence,
PotentialOutlier,
RobustScaleMeasure,
StatisticalVariable,
StatisticalObservation,
Dataset,
Sample,
Population,
IQRConstraint
}
CoreRelations := {
computedFrom,
summarises,
differenceOf,
hasLowerQuartile,
hasUpperQuartile,
defines,
estimates,
weightedBy,
transformedBy,
comparedWith,
constrainedBy,
equivalentTo,
tracesTo
}
TypedRelations :=
InterquartileRange --computedFrom--> OrderedObservations
InterquartileRange --summarises--> StatisticalVariable
InterquartileRange --differenceOf--> ThirdQuartile
InterquartileRange --differenceOf--> FirstQuartile
InterquartileRange --hasLowerQuartile--> FirstQuartile
InterquartileRange --hasUpperQuartile--> ThirdQuartile
InterquartileRange --defines--> LowerInnerFence
InterquartileRange --defines--> UpperInnerFence
SampleIQR --estimates--> PopulationIQR
WeightedIQR --weightedBy--> Weight
InterquartileRange --transformedBy--> AffineTransformation
InterquartileRange --comparedWith--> StandardDeviation
InterquartileRange --tracesTo--> Provenance
InferenceRules := {
Q3≥Q1
⇒
IQR=Q3-Q1
∧ IQR≥0,
Q3=Q1
⇒
IQR=0,
IQR
⇒
SemiInterquartileRange=IQR/2,
IQR
⇒
LowerInnerFence=Q1-1.5IQR
∧ UpperInnerFence=Q3+1.5IQR,
IQR(X+c)
=
IQR(X),
IQR(aX)
=
|a|IQR(X),
NominalVariable
⇒
FlagIQRAsSemanticallyInvalid,
UndefinedQuartileConvention
⇒
RejectIQRComputation
}
CanonicalIQRRepresentation :=
ParseIQRRequest
→ ResolveVariable
→ ResolveDatasetSamplePopulationOrDistribution
→ ResolveVariableTypeAndOrdering
→ ResolveObservationsOrCDF
→ ResolveMissingness
→ ResolveWeights
→ ResolveQuartileConventionAndInterpolation
→ ComputeFirstQuartile
→ ComputeThirdQuartile
→ ValidateQuartileOrdering
→ ComputeInterquartileRange
→ ComputeFencesAndRelatedMeasuresIfRequested
→ ResolveSamplingPropertiesIfRequested
→ ValidateIQR
IQRGraph :=
G=(V,E)
V := {
InterquartileRanges,
SampleIQRs,
PopulationIQRs,
FirstQuartiles,
ThirdQuartiles,
SemiInterquartileRanges,
QuartileDeviations,
Midhinges,
InnerFences,
OuterFences,
PotentialOutliers,
Variables,
Observations,
Datasets,
Samples,
Populations,
Evidence,
ProvenanceNodes
}
E := {
computedFrom,
summarises,
differenceOf,
hasLowerQuartile,
hasUpperQuartile,
defines,
estimates,
weightedBy,
transformedBy,
comparedWith,
constrainedBy,
equivalentTo,
tracesTo
}
CONFIDENCE(IQRResolution) :=
weighted_mean(
VariableResolution,
DataScopeResolution,
OrderingValidity,
QuartileConventionResolution,
Q1Resolution,
Q3Resolution,
MissingnessAndWeightingValidity,
ProvenanceQuality
)
AI_QUERY_INTERPRETATION :=
Query
→ DetectInterquartileRangeIntent
→ IdentifyVariableAndDataScope
→ ResolveSamplePopulationOrDistributionContext
→ ResolveQuartileConventionWeightingAndMissingness
→ IdentifyRequestedIQRFencesOutliersOrRobustScaleRelation
AI_REASONING_FLOW :=
Query
→ ParseIQRProblem
→ ResolveDatasetSamplePopulationOrDistribution
→ ResolveVariable
→ ValidateOrdering
→ ResolveObservationsOrCDF
→ ResolveMissingValues
→ ResolveWeights
→ ResolveQuartileConventionAndInterpolation
→ ComputeQ1
→ ComputeQ3
→ ValidateQ3GreaterOrEqualQ1
→ ComputeIQR
→ ComputeSemiIQRAndOutlierFencesIfRequested
→ ResolveDistributionalOrSamplingRelationsIfRequested
→ ValidateIQRResult
→ UpdateConfidence
→ PreserveProvenance
→ GenerateExplanation
AI_CONSUMPTION := {
ParseIQREntities,
ParseTypedRelations,
ResolveVariables,
ResolveObservations,
ResolveDatasets,
ResolveSamples,
ResolvePopulations,
ResolveProbabilityDistributions,
ValidateOrdering,
ResolveQuartileConventions,
ResolveInterpolationRules,
ResolveMissingness,
ResolveWeights,
ComputeFirstQuartiles,
ComputeThirdQuartiles,
ComputeInterquartileRanges,
ComputeSemiInterquartileRanges,
ComputeMidhinges,
ComputeInnerFences,
ComputeOuterFences,
DetectPotentialOutliers,
ComputeWeightedIQRs,
ComputeGroupedIQRs,
ResolveDistributionIQRs,
ResolveSamplingDistributions,
ComputeBootstrapIQRs,
ValidateIQRSemantics,
CompareSemanticEquivalence,
UpdateConfidence,
PreserveProvenance,
GenerateFormalExplanation
}
UPDATE_MODEL :=
NewObservationConventionWeightOrDistributionEvidence
→ ValidateInput
→ IdentifyAffectedIQRClaims
→ UpdateIQRState
→ RecomputeEffectiveObservationSet
→ RecomputeQ1
→ RecomputeQ3
→ RecomputeIQR
→ RecomputeFencesAndRelatedMeasures
→ ReevaluateSamplingProperties
→ RevalidateConstraints
→ RecomputeConfidence
→ PreserveProvenance
→ VersionModel
ObservationUpdate :=
AddedRemovedOrCorrectedObservation
⇒ recompute(
EffectiveCount,
Q1,
Q3,
IQRValue,
OutlierFences
)
ConventionUpdate :=
ChangedQuartileOrInterpolationConvention
⇒ recompute(
Q1,
Q3,
IQRValue,
SemanticEquivalence
)
FLOW_HASH_INPUT :=
canonical(
ONTOLOGY,
CoreClasses,
CoreRelations,
InferenceRules,
InterquartileRange,
IQRValidation,
IQRConstraint,
SEMANTIC_EQUIVALENCE,
AI_REASONING_FLOW
)
FLOW_HASH :=
HASH(FLOW_HASH_INPUT)
OUTPUT_MODEL := {
InterquartileRangeEntityResolution,
Variable,
DataScope,
VariableType,
ObservationCount,
EffectiveObservationCount,
QuartileConvention,
InterpolationRule,
Weights,
MissingnessRule,
FirstQuartile,
ThirdQuartile,
InterquartileRangeValue,
SemiInterquartileRange,
LowerInnerFence,
UpperInnerFence,
RobustScaleRelation,
SamplingProperties,
ValidationStatus,
Confidence,
Provenance,
Explanation
}
END_FLOW
END OF FULL EXECUTABLE FLOW ALGEBRA
Download Code
Copy to Clipboard