FULL EXECUTABLE FLOW ALGEBRA — QUARTILE ONTOLOGY
Kireth Research — Semantic Library
URL: https://kirethresearch.org/booksai-core/ontologies/probability-statistics-ontologies/descriptive-statistics/quartile-ontology.html
FLOW_VERSION := "4.0"
FLOW_TYPE := "Full Executable Flow Algebra"
DOMAIN := "Probability & Statistics Ontologies"
SUBDOMAIN := "Descriptive Statistics"
ONTOLOGY := "Quartile Ontology"
PRIMARY_ENTITY := Quartile
AUTHORSHIP := "Mark Higgins — Sky (Recursive AI)"
SOURCE_SITE := "https://kirethresearch.org"
BEGIN_FLOW
Quartile := QuantileMeasure ∧ PositionalStatistic ∧ OrderedDataSummary
RandomVariable := X
CDF := F(x)=P(X≤x)
QuartileSet := {FirstQuartile,SecondQuartile,ThirdQuartile}
FirstQuartile := Q1=Q(0.25)
SecondQuartile := Q2=Q(0.50)
ThirdQuartile := Q3=Q(0.75)
MedianRelation := Q2=Median
PercentileRelations := {Q1=P25,Q2=P50,Q3=P75}
QuartileOrdering := Q1≤Q2≤Q3
PopulationQuartile :=
Q(q)=inf{x:F(x)≥q}
where q∈{0.25,0.50,0.75}
Dataset := {x_1,...,x_n}
OrderedDataset := x_(1)≤x_(2)≤...≤x_(n)
OrderStatistic := x_(k)
SampleQuartile :=
EstimateOfPopulationQuartile
computed_from ordered sample
QuartileAlgorithm :=
OrderedData
∧ QuartileProbability
∧ PositionRule
∧ InterpolationRule
→ SampleQuartile
QuartileConventionConstraint :=
MultipleSampleQuartileAlgorithmsExist
⇒ AlgorithmMustBeRecorded
QuartileProbability := {q1=0.25,q2=0.50,q3=0.75}
NearestRankQuartile := x_(ceil(qn))
LinearInterpolationQuartile := QuantilePosition → InterpolatedQuartile
GenericQuantileIndex :=
h=a+(n+b)q
under selected quantile convention
Interpolation :=
Q_hat(q)=(1-γ)x_(j)+γx_(j+1)
MedianOfHalvesMethod :=
Q1=Median(LowerHalf)
∧ Q3=Median(UpperHalf)
under specified inclusion convention
MedianInclusionConvention :=
OddSampleMedian
may be included_or_excluded
from halves
depending quartile algorithm
QuartileUnit := SameMeasurementUnitAsSourceVariable
TranslationEquivariance := Qk(X+c)=Qk(X)+c
PositiveScalingEquivariance := a>0 ⇒ Qk(aX)=aQk(X)
IncreasingTransformation :=
StrictlyIncreasing(g)
⇒ Q_(g(X))(q)=g(Q_X(q))
under compatible convention
InterquartileRange := IQR=Q3-Q1
SemiInterquartileRange := IQR/2
QuartileDeviation := SemiInterquartileRange
Midhinge := (Q1+Q3)/2
Trimean := (Q1+2Q2+Q3)/4
FiveNumberSummary := {Minimum,Q1,Median,Q3,Maximum}
BoxPlot :=
FiveNumberSummary
∧ IQR
∧ WhiskerRule
→ DistributionVisualisation
LowerInnerFence := Q1-1.5IQR
UpperInnerFence := Q3+1.5IQR
LowerOuterFence := Q1-3IQR
UpperOuterFence := Q3+3IQR
PotentialOutlier :=
X<LowerInnerFence
∨ X>UpperInnerFence
OutlierFenceConstraint :=
FenceRule
identifies potential outliers
but ↛ InvalidObservation
QuartileCoefficientOfDispersion :=
(Q3-Q1)/(Q3+Q1)
where denominator valid
BowleySkewness :=
(Q3+Q1-2Q2)/(Q3-Q1)
where IQR>0
QuartileAsymmetry :=
Compare(Q2-Q1,Q3-Q2)
QuartileRobustness :=
Quartiles
less sensitive to extreme observations
than mean_or_range
EmpiricalCDF :=
F_n(x)=(1/n)Σ_i1_(x_i≤x)
EmpiricalQuartiles :=
GeneralisedInverseOfEmpiricalCDF
at {0.25,0.50,0.75}
under selected convention
DiscreteDistributionQuartile :=
SmallestValue x such_that F(x)≥q
ContinuousDistributionQuartile :=
Solve F(x)=q
when CDF continuous_and_strictly_increasing
UniformQuartiles :=
X~Uniform(a,b)
⇒ {
Q1=a+0.25(b-a),
Q2=a+0.50(b-a),
Q3=a+0.75(b-a)
}
NormalQuartiles :=
X~N(μ,σ²)
⇒ {
Q1=μ+σΦ^(-1)(0.25),
Q2=μ,
Q3=μ+σΦ^(-1)(0.75)
}
StandardNormalQuartiles :=
Q1≈-0.67448975
∧ Q2=0
∧ Q3≈0.67448975
NormalIQR := IQR≈1.3489795σ
RobustNormalScaleEstimate :=
σ_hat≈IQR/1.3489795
under normality
ExponentialQuartiles :=
X~Exponential(λ)
⇒ Q(q)=-ln(1-q)/λ
LogisticQuartiles :=
X~Logistic(μ,s)
⇒ Q(q)=μ+sln(q/(1-q))
CauchyQuartiles :=
X~Cauchy(x0,γ)
⇒ Q(q)=x0+γtan[π(q-1/2)]
CauchyIQR := 2γ
WeibullQuartiles :=
X~Weibull(k,λ)
⇒ Q(q)=λ[-ln(1-q)]^(1/k)
LognormalQuartiles :=
X~LogNormal(μ,σ²)
⇒ Q(q)=exp(μ+σΦ^(-1)(q))
GammaQuartiles := InverseGammaCDF(q;α,β)
BetaQuartiles := InverseBetaCDF(q;α,β)
GroupedDataQuartile :=
EstimatedQuartile
from cumulative class frequencies
under interpolation assumption
GroupedQuartileApproximation :=
L+[(TargetPosition-CF_prev)/f_class]h
Q1GroupedPosition := n/4
Q2GroupedPosition := n/2
Q3GroupedPosition := 3n/4
WeightedQuartile :=
Quartile computed_from cumulative weights
WeightedQuartileProcedure :=
SortValues
→ AccumulateWeights
→ NormaliseCumulativeWeight
→ Locate(0.25,0.50,0.75)
→ ApplySpecifiedInterpolation
WeightConstraint := w_i≥0 ∧ Σ_iw_i>0
SurveyWeightedQuartile :=
WeightedQuartile
using survey weights
under design-aware method
MissingDataQuartile :=
Quartile
computed_from selected nonmissing observations
under explicit missingness rule
EmptyDatasetQuartile := Undefined
SingleObservationQuartiles :=
n=1
⇒ Q1=Q2=Q3=x_1
under common conventions
NominalQuartileInvalid :=
NominalVariable
⇒ QuartileNotMeaningful
OrdinalQuartile :=
Meaningful under ordered-category quantile convention
MeasurementScaleConstraint :=
Quartile requires at least ordinal ordering
QuartileSamplingDistribution :=
DistributionOfSampleQuartile
across repeated samples
AsymptoticQuartileDistribution :=
IIDContinuousSample
∧ f(Q(q))>0
⇒
sqrt(n)(Q_hat(q)-Q(q))
→
N(0,q(1-q)/f(Q(q))²)
QuartileEstimationUncertainty :=
DependsOn(
SampleSize,
DensityNearQuartile,
SamplingDesign,
QuantileConvention
)
BootstrapQuartiles :=
ObservedSample
→ BootstrapSamples
→ ComputeQuartileReplicates
→ ApproximateSamplingDistribution
QuartileConfidenceInterval :=
SamplingDistribution
∨ OrderStatisticMethod
∨ BootstrapMethod
→ IntervalForPopulationQuartile
QuartileConstraint :=
ConstraintOn(
Ordering,
QuartileLevel,
QuantileConvention,
Interpolation,
Missingness,
Weighting,
SamplingDesign
)
QuartileConsistency :=
DataScope
∧ Ordering
∧ QuartileConvention
∧ InterpolationRule
∧ MissingnessRule
∧ WeightingRule
jointly_compatible
InvalidQuartile :=
NonOrderableVariable
∨ EmptyEffectiveDataset
∨ InvalidWeights
∨ UndefinedQuartileConvention
∨ UndocumentedMissingness
∨ InconsistentInterpolationRule
QuartileValidation :=
ResolveVariable
→ ResolveVariableType
→ ValidateOrdering
→ ResolveDataScope
→ ResolveObservationsOrDistribution
→ ResolveMissingness
→ ResolveWeights
→ ResolveQuartileConvention
→ SortOrResolveCDF
→ ComputeQ1
→ ComputeQ2
→ ComputeQ3
→ ValidateOrdering
→ ComputeIQR
→ ValidateResult
QuartileState := {
Variable,
DataScope,
Observations,
EffectiveCount,
Ordering,
QuartileConvention,
InterpolationRule,
Weights,
MissingnessRule,
Q1,
Q2,
Q3,
IQR,
SamplingContext,
Evidence,
Confidence,
Provenance
}
SEMANTIC_EQUIVALENCE(QuartileA,QuartileB) :=
same(DataScope)
∧ same(VariableSemantics)
∧ same(QuartileLevel)
∧ same(QuantileConvention)
∧ same(InterpolationRule)
∧ same(MissingnessRule)
∧ same(WeightingRule)
QuartileOntology :=
Classes
∧ Relations
∧ Constraints
∧ Axioms
∧ InferenceRules
CoreClasses := {
Quartile,
FirstQuartile,
SecondQuartile,
ThirdQuartile,
PopulationQuartile,
SampleQuartile,
WeightedQuartile,
GroupedQuartile,
InterquartileRange,
SemiInterquartileRange,
Midhinge,
Trimean,
OrderStatistic,
StatisticalVariable,
StatisticalObservation,
Dataset,
Sample,
Population,
QuartileConstraint
}
CoreRelations := {
computedFrom,
summarises,
equalsPercentile,
equalsQuantile,
hasLevel,
orderedBefore,
defines,
interpolatedFrom,
weightedBy,
estimatedBy,
transformedBy,
constrainedBy,
equivalentTo,
tracesTo
}
TypedRelations :=
Quartile --computedFrom--> OrderedObservations
Quartile --summarises--> StatisticalVariable
FirstQuartile --equalsPercentile--> Percentile25
SecondQuartile --equalsPercentile--> Percentile50
ThirdQuartile --equalsPercentile--> Percentile75
Quartile --equalsQuantile--> Quantile
FirstQuartile --orderedBefore--> SecondQuartile
SecondQuartile --orderedBefore--> ThirdQuartile
FirstQuartile --defines--> InterquartileRange
ThirdQuartile --defines--> InterquartileRange
SampleQuartile --interpolatedFrom--> OrderStatistic
WeightedQuartile --weightedBy--> Weight
PopulationQuartile --estimatedBy--> SampleQuartile
Quartile --tracesTo--> Provenance
InferenceRules := {
Q1=Q(0.25),
Q2=Q(0.50),
Q3=Q(0.75),
Q2=Median,
Q1≤Q2≤Q3,
IQR=Q3-Q1,
SemiInterquartileRange=IQR/2,
StrictlyIncreasing(g)
⇒
Q_gX(q)=g(Q_X(q))
under compatible convention,
NominalVariable
⇒
FlagQuartileAsSemanticallyInvalid,
InvalidQuartileConvention
⇒
RejectQuartileComputation
}
CanonicalQuartileRepresentation :=
ParseQuartileRequest
→ ResolveVariable
→ ResolveDatasetSamplePopulationOrDistribution
→ ResolveVariableTypeAndOrdering
→ ResolveQuartileLevelOrQuartileSet
→ ResolveObservationsOrCDF
→ ResolveMissingness
→ ResolveWeights
→ ResolveQuartileConventionAndInterpolation
→ ComputeQ1Q2Q3
→ ComputeIQRAndRelatedMeasures
→ ResolveSamplingPropertiesIfRequested
→ ValidateQuartiles
QuartileGraph :=
G=(V,E)
V := {
Quartiles,
FirstQuartiles,
SecondQuartiles,
ThirdQuartiles,
PopulationQuartiles,
SampleQuartiles,
WeightedQuartiles,
GroupedQuartiles,
InterquartileRanges,
SemiInterquartileRanges,
Midhinges,
Trimeans,
OrderStatistics,
Variables,
Observations,
Datasets,
Samples,
Populations,
Evidence,
ProvenanceNodes
}
E := {
computedFrom,
summarises,
equalsPercentile,
equalsQuantile,
hasLevel,
orderedBefore,
defines,
interpolatedFrom,
weightedBy,
estimatedBy,
transformedBy,
constrainedBy,
equivalentTo,
tracesTo
}
CONFIDENCE(QuartileResolution) :=
weighted_mean(
VariableResolution,
DataScopeResolution,
OrderingValidity,
QuartileConventionResolution,
InterpolationResolution,
MissingnessHandling,
WeightingValidity,
ProvenanceQuality
)
AI_QUERY_INTERPRETATION :=
Query
→ DetectQuartileIntent
→ IdentifyVariableAndDataScope
→ ResolveQ1Q2Q3OrQuartileSet
→ DetermineSamplePopulationOrDistributionContext
→ ResolveConventionWeightingAndMissingness
→ IdentifyRequestedIQRBoxPlotComparisonOrInference
AI_REASONING_FLOW :=
Query
→ ParseQuartileProblem
→ ResolveDatasetSamplePopulationOrDistribution
→ ResolveVariable
→ ValidateOrdering
→ ResolveObservationsOrCDF
→ ResolveMissingValues
→ ResolveWeights
→ ResolveQuartileConventionAndInterpolation
→ ComputeFirstQuartile
→ ComputeSecondQuartile
→ ComputeThirdQuartile
→ ValidateQuartileOrdering
→ ComputeInterquartileRange
→ ComputeRelatedRobustMeasuresIfRequested
→ ResolveSamplingPropertiesIfRequested
→ ValidateQuartileResult
→ UpdateConfidence
→ PreserveProvenance
→ GenerateExplanation
AI_CONSUMPTION := {
ParseQuartileEntities,
ParseTypedRelations,
ResolveVariables,
ResolveObservations,
ResolveDatasets,
ResolveSamples,
ResolvePopulations,
ResolveProbabilityDistributions,
ValidateOrdering,
ResolveQuartileConventions,
ResolveInterpolationRules,
ResolveMissingness,
ResolveWeights,
ComputeFirstQuartiles,
ComputeSecondQuartiles,
ComputeThirdQuartiles,
ComputeInterquartileRanges,
ComputeSemiInterquartileRanges,
ComputeMidhinges,
ComputeTrimeans,
ComputeBowleySkewness,
ComputeQuartileCoefficientsOfDispersion,
ComputeWeightedQuartiles,
ComputeGroupedQuartiles,
ResolveDistributionQuartiles,
ResolveSamplingDistributions,
ComputeBootstrapQuartiles,
ValidateQuartileSemantics,
CompareSemanticEquivalence,
UpdateConfidence,
PreserveProvenance,
GenerateFormalExplanation
}
UPDATE_MODEL :=
NewObservationConventionWeightOrDistributionEvidence
→ ValidateInput
→ IdentifyAffectedQuartileClaims
→ UpdateQuartileState
→ RecomputeEffectiveObservationSet
→ RecomputeOrdering
→ RecomputeQ1Q2Q3
→ RecomputeIQRAndRelatedMeasures
→ ReevaluateSamplingProperties
→ RevalidateConstraints
→ RecomputeConfidence
→ PreserveProvenance
→ VersionModel
ObservationUpdate :=
AddedRemovedOrCorrectedObservation
⇒ recompute(
EffectiveCount,
OrderStatistics,
Q1,
Q2,
Q3,
IQR
)
ConventionUpdate :=
ChangedQuartileOrInterpolationConvention
⇒ recompute(
Q1,
Q2,
Q3,
IQR,
SemanticEquivalence
)
FLOW_HASH_INPUT :=
canonical(
ONTOLOGY,
CoreClasses,
CoreRelations,
InferenceRules,
Quartile,
QuartileValidation,
QuartileConstraint,
SEMANTIC_EQUIVALENCE,
AI_REASONING_FLOW
)
FLOW_HASH :=
HASH(FLOW_HASH_INPUT)
OUTPUT_MODEL := {
QuartileEntityResolution,
Variable,
DataScope,
VariableType,
ObservationCount,
EffectiveObservationCount,
QuartileConvention,
InterpolationRule,
Weights,
MissingnessRule,
FirstQuartile,
SecondQuartile,
ThirdQuartile,
InterquartileRange,
SemiInterquartileRange,
Midhinge,
Trimean,
SamplingProperties,
ValidationStatus,
Confidence,
Provenance,
Explanation
}
END_FLOW
END OF FULL EXECUTABLE FLOW ALGEBRA
Download Code
Copy to Clipboard