Descriptive Statistics
Authors:
MArk Anthony Higgins - Sky Recursive Ai
MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: July 6th 2026
Revised Date: July 6th 2026
FULL EXECUTABLE FLOW ALGEBRA — DESCRIPTIVE STATISTICS
Kireth Research — Semantic Library
URL: https://kirethresearch.org/booksai-core/ontologies/probability-statistics-ontologies/descriptive-statistics.html
FLOW_VERSION := "4.0"
FLOW_TYPE := "Full Executable Flow Algebra"
DOMAIN := "Probability & Statistics Ontologies"
SUBDOMAIN := "Descriptive Statistics"
ONTOLOGY := "Descriptive Statistics"
PRIMARY_ENTITY := DescriptiveStatistics
AUTHORSHIP := "Mark Higgins — Sky (Recursive AI)"
SOURCE_SITE := "https://kirethresearch.org"
BEGIN_FLOW
DescriptiveStatistics :=
ObservedData
∧ DataOrganisation
∧ DataSummarisation
∧ DistributionDescription
∧ CentralTendency
∧ Dispersion
∧ Position
∧ Shape
∧ Association
∧ VisualRepresentation
Dataset := StatisticalObservations ∧ Variables ∧ StatisticalUnits ∧ Metadata
Observation := RecordedValue associated_with StatisticalUnit and Variable
Variable := MeasurableOrRecordedCharacteristic
VariableType := {
Categorical,
Quantitative,
Nominal,
Ordinal,
Binary,
Discrete,
Continuous
}
AnalysisScope := {Univariate,Bivariate,Multivariate,Grouped,Temporal}
Frequency := CountOfOccurrence
AbsoluteFrequency := n_i
RelativeFrequency := f_i=n_i/n
PercentageFrequency := 100×f_i
FrequencyDistribution := ValueOrCategory → Frequency
CumulativeFrequency := RunningSumOfFrequencies
CumulativeRelativeFrequency := RunningSumOfRelativeFrequencies
FrequencyTable := {
ValuesOrCategories,
Frequencies,
RelativeFrequencies,
CumulativeFrequencies
}
CentralTendency := {
ArithmeticMean,
WeightedMean,
Median,
Mode,
GeometricMean,
HarmonicMean
}
ArithmeticMean := X_bar=(1/n)Σ_iX_i
WeightedMean := X_bar_w=Σ_iw_iX_i/Σ_iw_i
Median := CentralOrderedValue under selected convention
Mode := MostFrequentValueOrCategory
GeometricMean := (Π_iX_i)^(1/n) for positive values
HarmonicMean := n/Σ_i(1/X_i) where values nonzero
CentralTendencySelection :=
VariableType
∧ DistributionShape
∧ AnalyticalPurpose
→ AppropriateCentre
Dispersion := {
Range,
InterquartileRange,
Variance,
StandardDeviation,
MeanAbsoluteDeviation,
MedianAbsoluteDeviation,
CoefficientOfVariation
}
Minimum := min_iX_i
Maximum := max_iX_i
Range := Maximum-Minimum
Quartiles := {Q1,Q2,Q3}
Q2 := Median
InterquartileRange := IQR=Q3-Q1
PopulationVariance := σ²=(1/N)Σ_i(X_i-μ)²
SampleVariance := S²=[1/(n-1)]Σ_i(X_i-X_bar)²
PopulationStandardDeviation := σ=sqrt(σ²)
SampleStandardDeviation := S=sqrt(S²)
MedianAbsoluteDeviation := MAD=Median(|X_i-Median(X)|)
CoefficientOfVariation :=
CV=StandardDeviation/Mean
where ratio interpretation is meaningful and Mean≠0
PositionMeasures := {Rank,Quantile,Quartile,Decile,Percentile,ZScore}
Rank := OrderedPositionOfObservation
Quantile := ValueCorrespondingToSpecifiedCumulativeProportion
Percentile := Quantile expressed_on percentage scale
ZScore := z=(x-Mean)/StandardDeviation where StandardDeviation>0
FiveNumberSummary := {Minimum,Q1,Median,Q3,Maximum}
DistributionShape := {
Symmetry,
Skewness,
Kurtosis,
Modality,
TailBehaviour
}
Skewness := MeasureOfDistributionAsymmetry
PositiveSkew := ExtendedRightTail
NegativeSkew := ExtendedLeftTail
Kurtosis := StandardisedFourthMoment when finite
ExcessKurtosis := Kurtosis-3 under normal-reference convention
Modality := {Unimodal,Bimodal,Multimodal}
EmpiricalDistribution := ObservedData → EmpiricalProbabilityMeasure
EmpiricalProbability := Count(ValueOrCondition)/n
EmpiricalCDF := F_n(x)=(1/n)Σ_i1_(X_i≤x)
Outlier := Observation unusually extreme under specified criterion
IQRLowerFence := Q1-1.5IQR
IQRUpperFence := Q3+1.5IQR
PotentialIQROutlier := X<IQRLowerFence ∨ X>IQRUpperFence
OutlierDoesNotImplyError := Outlier ↛ InvalidObservation
Covariance :=
S_XY=[1/(n-1)]Σ_i(X_i-X_bar)(Y_i-Y_bar)
Correlation :=
r=S_XY/(S_XS_Y)
where S_X,S_Y>0
CorrelationBounds := -1≤r≤1
CorrelationDoesNotImplyCausation := Correlation ↛ Causation
ContingencyTable := CrossClassificationOfCategoricalVariables
CellFrequency := n_ij
RowProportion := n_ij/RowTotal_i
ColumnProportion := n_ij/ColumnTotal_j
JointProportion := n_ij/GrandTotal
ConditionalDistribution := DistributionOfVariableWithinSpecifiedCondition
GroupedStatistics :=
GroupBy(GroupingVariable)
→ ComputeDescriptiveStatistics
GroupMean := MeanWithinGroup
GroupMedian := MedianWithinGroup
GroupVariance := VarianceWithinGroup
Histogram := QuantitativeData → Bins → FrequencyOrDensityBars
BarChart := CategoricalData → CategoryBars
BoxPlot := FiveNumberSummary ∧ Whiskers ∧ PotentialOutliers
ScatterPlot := PairedNumericalObservations → CoordinatePoints
LineChart := OrderedOrTemporalObservations → ConnectedValues
VisualisationSelection :=
VariableType
∧ AnalysisScope
∧ DescriptiveGoal
→ CompatibleVisualisation
TimeSeries := Observations indexed_by time
Trend := LongTermDirectionalPattern
Seasonality := RepeatingTemporalPattern
MovingAverage := Mean over moving window
MissingValue := IntendedObservationUnavailable
MissingCount := Count(MissingValues)
MissingRate := MissingCount/ExpectedObservationCount
CompleteCaseCount := Count(RecordsWithoutSelectedMissingValues)
DataQualitySummary := {
Missingness,
Duplicates,
InvalidValues,
RangeViolations,
CategoryConsistency
}
Transformation := Y=g(X)
LogTransformation := Y=log(X) where X>0
SquareRootTransformation := Y=sqrt(X) where X≥0
Standardisation := Z=(X-X_bar)/S where S>0
MinMaxScaling := Y=(X-Min)/(Max-Min) where Max>Min
RobustScaling := Y=(X-Median)/IQR where IQR>0
WeightedData := Observations associated_with weights
WeightedFrequency := ΣWeights within category_or_value
WeightedMean := Σ_iw_iX_i/Σ_iw_i
SummaryStatistic :=
Function mapping Dataset
to concise descriptive quantity
CategoricalSummary := Frequency ∧ Proportion ∧ Mode
OrdinalSummary := Frequency ∧ Median ∧ Quantiles
QuantitativeSummary := Centre ∧ Dispersion ∧ Position ∧ Shape
RobustQuantitativeSummary := Median ∧ IQR ∧ MAD
MomentBasedSummary := Mean ∧ Variance ∧ Skewness ∧ Kurtosis
DescriptiveProfile :=
Variable
→ {
Type,
Count,
Missingness,
Frequencies,
Centre,
Dispersion,
Position,
Shape
}
DatasetProfile :=
Dataset
→ SetOf(DescriptiveProfiles)
∧ CrossVariableSummaries
DescriptiveConstraint :=
ConstraintOn(
VariableType,
MeasurementScale,
Missingness,
Weighting,
SummaryDefinition,
DataScope
)
SummaryCompatibility :=
Statistic
compatible_with
VariableType
∧ MeasurementScale
InvalidDescriptiveSummary :=
IncompatibleVariableType
∨ UndefinedStatistic
∨ InvalidWeighting
∨ HiddenMissingDataTreatment
∨ MisleadingAggregation
DescriptiveValidation :=
ResolveDataset
→ ResolveVariables
→ ClassifyVariableTypes
→ ResolveMeasurementScales
→ ResolveMissingness
→ ResolveWeights
→ SelectCompatibleSummaries
→ ComputeSummaries
→ ValidateCalculations
→ ValidateInterpretation
DescriptiveStatisticsState := {
Dataset,
Variables,
VariableTypes,
MeasurementScales,
Frequencies,
CentralTendency,
Dispersion,
Position,
Shape,
Association,
Missingness,
Visualisations,
Evidence,
Confidence,
Provenance
}
SEMANTIC_EQUIVALENCE(DescriptiveSummaryA,DescriptiveSummaryB) :=
same(DataScope)
∧ same(VariableSemantics)
∧ same(SummaryDefinitions)
∧ same(MissingnessRules)
∧ same(WeightingRules)
DescriptiveStatisticsOntology :=
Classes
∧ Relations
∧ Constraints
∧ Axioms
∧ InferenceRules
CoreClasses := {
DescriptiveStatistics,
Dataset,
StatisticalObservation,
StatisticalVariable,
FrequencyDistribution,
CentralTendency,
Dispersion,
Quantile,
DistributionShape,
EmpiricalDistribution,
Covariance,
Correlation,
ContingencyTable,
GroupedStatistics,
DescriptiveVisualisation,
DescriptiveProfile
}
CoreRelations := {
describes,
computedFrom,
summarises,
hasFrequency,
hasCentre,
hasDispersion,
hasPosition,
hasShape,
associatedWith,
groupedBy,
visualisedBy,
transformedBy,
constrainedBy,
equivalentTo,
tracesTo
}
TypedRelations :=
DescriptiveStatistic --computedFrom--> Dataset
DescriptiveStatistic --describes--> StatisticalVariable
FrequencyDistribution --hasFrequency--> Frequency
VariableSummary --hasCentre--> CentralTendency
VariableSummary --hasDispersion--> Dispersion
VariableSummary --hasPosition--> Quantile
VariableSummary --hasShape--> DistributionShape
StatisticalVariable --associatedWith--> StatisticalVariable
GroupedStatistics --groupedBy--> GroupingVariable
Dataset --visualisedBy--> DescriptiveVisualisation
StatisticalVariable --transformedBy--> Transformation
DescriptiveResult --tracesTo--> Provenance
InferenceRules := {
QuantitativeVariable(X)
⇒ EligibleFor(Mean,Median,Variance,StandardDeviation,Quantiles),
NominalVariable(X)
⇒ EligibleFor(Frequency,Proportion,Mode),
OrdinalVariable(X)
⇒ EligibleFor(Frequency,Median,Quantiles),
IQR=Q3-Q1,
SampleVariance
⇒ SampleStandardDeviation=sqrt(SampleVariance),
Correlation(X,Y)
⇒ -1≤r≤1,
Correlation
↛ Causation,
Outlier
↛ InvalidObservation,
InvalidSummaryVariablePair
⇒ FlagDescriptiveError
}
CanonicalDescriptiveRepresentation :=
ParseDataset
→ ResolveVariables
→ ClassifyVariableTypes
→ ResolveMeasurementScales
→ ResolveDataScope
→ ResolveMissingnessAndWeights
→ ComputeFrequencyStructure
→ ComputeCentreAndDispersion
→ ComputePositionAndShape
→ ComputeAssociations
→ GenerateVisualisationSpecification
→ ValidateDescriptiveStatistics
DescriptiveStatisticsGraph :=
G=(V,E)
V := {
Datasets,
Observations,
Variables,
VariableTypes,
MeasurementScales,
Frequencies,
Means,
Medians,
Modes,
Variances,
StandardDeviations,
Quantiles,
SkewnessMeasures,
KurtosisMeasures,
Correlations,
ContingencyTables,
EmpiricalDistributions,
GroupedSummaries,
Visualisations,
Evidence,
ProvenanceNodes
}
E := {
describes,
computedFrom,
summarises,
hasFrequency,
hasCentre,
hasDispersion,
hasPosition,
hasShape,
associatedWith,
groupedBy,
visualisedBy,
transformedBy,
constrainedBy,
equivalentTo,
tracesTo
}
CONFIDENCE(DescriptiveStatisticsResolution) :=
weighted_mean(
DatasetResolution,
VariableResolution,
VariableTypeClassification,
MeasurementScaleResolution,
MissingnessHandling,
WeightingValidity,
CalculationValidity,
ProvenanceQuality
)
AI_QUERY_INTERPRETATION :=
Query
→ DetectDescriptiveStatisticsIntent
→ IdentifyDatasetAndVariables
→ ClassifyVariableTypesAndScales
→ IdentifyRequestedSummaryAssociationOrVisualisation
→ ResolveGroupingWeightingAndMissingnessRules
AI_REASONING_FLOW :=
Query
→ ParseDescriptiveStatisticsProblem
→ ResolveDataset
→ ResolveVariables
→ ClassifyVariableTypes
→ ResolveMeasurementScales
→ ResolveMissingValues
→ ResolveWeightsIfPresent
→ ComputeFrequencyDistributions
→ ComputeCentralTendency
→ ComputeDispersion
→ ComputeQuantilesAndPosition
→ ComputeShapeMeasuresIfValid
→ ComputeAssociationsIfRequested
→ ComputeGroupedSummariesIfRequested
→ SpecifyVisualRepresentationIfRequested
→ ValidateSummaryCompatibility
→ UpdateConfidence
→ PreserveProvenance
→ GenerateExplanation
AI_CONSUMPTION := {
ParseDescriptiveStatisticsEntities,
ParseTypedRelations,
ResolveDatasets,
ResolveVariables,
ClassifyVariableTypes,
ResolveMeasurementScales,
ComputeFrequencies,
ComputeRelativeFrequencies,
ComputeMeans,
ComputeWeightedMeans,
ComputeMedians,
ComputeModes,
ComputeRanges,
ComputeVariances,
ComputeStandardDeviations,
ComputeIQRs,
ComputeMADs,
ComputeQuantiles,
ComputeZScores,
ComputeSkewness,
ComputeKurtosis,
ComputeCovariance,
ComputeCorrelation,
BuildContingencyTables,
ComputeGroupedSummaries,
EvaluateMissingness,
SpecifyDescriptiveVisualisations,
ValidateDescriptiveStatistics,
CompareSemanticEquivalence,
UpdateConfidence,
PreserveProvenance,
GenerateFormalExplanation
}
UPDATE_MODEL :=
NewDataVariableWeightOrSummaryDefinition
→ ValidateInput
→ IdentifyAffectedDescriptiveClaims
→ UpdateDescriptiveState
→ RecomputeFrequencies
→ RecomputeCentreAndDispersion
→ RecomputePositionAndShape
→ RecomputeAssociations
→ RecomputeGroupedSummaries
→ RevalidateVisualisations
→ RecomputeConfidence
→ PreserveProvenance
→ VersionModel
FLOW_HASH_INPUT :=
canonical(
ONTOLOGY,
CoreClasses,
CoreRelations,
InferenceRules,
DescriptiveStatistics,
DescriptiveValidation,
DescriptiveProfile,
SEMANTIC_EQUIVALENCE,
AI_REASONING_FLOW
)
FLOW_HASH :=
HASH(FLOW_HASH_INPUT)
OUTPUT_MODEL := {
DescriptiveStatisticsEntityResolution,
Dataset,
Variables,
VariableTypes,
MeasurementScales,
Frequencies,
CentralTendency,
Dispersion,
PositionMeasures,
DistributionShape,
Associations,
MissingnessSummary,
GroupedSummaries,
VisualisationSpecification,
ValidationStatus,
Confidence,
Provenance,
Explanation
}
END_FLOW
END OF FULL EXECUTABLE FLOW ALGEBRA