FULL EXECUTABLE FLOW ALGEBRA — DESCRIPTIVE STATISTICS ONTOLOGY
Kireth Research — Semantic Library
URL: https://kirethresearch.org/booksai-core/ontologies/probability-statistics-ontologies/statistical-foundations/descriptive-statistics-ontology.html
FLOW_VERSION := "4.0"
FLOW_TYPE := "Full Executable Flow Algebra"
DOMAIN := "Probability & Statistics Ontologies"
SUBDOMAIN := "Statistical Foundations"
ONTOLOGY := "Descriptive Statistics Ontology"
PRIMARY_ENTITY := DescriptiveStatistics
AUTHORSHIP := "Mark Higgins — Sky (Recursive AI)"
SOURCE_SITE := "https://kirethresearch.org"
BEGIN_FLOW
DescriptiveStatistics :=
DataSummarisation
∧ DataOrganisation
∧ DistributionDescription
∧ CentralTendency
∧ Dispersion
∧ Position
∧ Shape
∧ Association
∧ VisualRepresentation
Dataset :=
CollectionOfObservations
∧ Variables
∧ Metadata
Observation :=
RecordedValue
associated_with StatisticalUnit
Variable :=
RecordedOrMeasuredCharacteristic
VariableType := {
Nominal,
Ordinal,
Binary,
Discrete,
Continuous,
Categorical,
Quantitative
}
DescriptiveObjective :=
SummariseObservedData
without requiring
population-level inference
UnivariateDescription :=
DescriptionOfSingleVariable
BivariateDescription :=
DescriptionOfTwoVariables
MultivariateDescription :=
DescriptionOfMultipleVariables
Frequency :=
CountOfObservedOccurrence
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 :=
MiddleOrderedValue
under selected convention
Mode :=
MostFrequentValueOrCategory
GeometricMean :=
(
Π_iX_i
)^(1/n)
for positive values
HarmonicMean :=
n
/
Σ_i(1/X_i)
where values nonzero
MeanSensitivity :=
ArithmeticMean
sensitive_to
extreme values
MedianRobustness :=
Median
more resistant_to
extreme values
Dispersion := {
Range,
InterquartileRange,
Variance,
StandardDeviation,
MeanAbsoluteDeviation,
MedianAbsoluteDeviation,
CoefficientOfVariation
}
Minimum :=
min_i X_i
Maximum :=
max_i X_i
Range :=
Maximum-Minimum
FirstQuartile :=
Q1
SecondQuartile :=
Q2
=
Median
ThirdQuartile :=
Q3
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²)
MeanAbsoluteDeviation :=
AverageAbsoluteDistance
from selected centre
MedianAbsoluteDeviation :=
MAD
=
Median(
|X_i-Median(X)|
)
CoefficientOfVariation :=
CV
=
StandardDeviation/Mean
where meaningful_and_mean_nonzero
PositionMeasures := {
Quantile,
Quartile,
Decile,
Percentile,
Rank,
ZScore
}
Quantile :=
Value
corresponding_to
specified cumulative proportion
Percentile :=
Quantile
on percentage scale
Rank :=
OrderedPosition
of observation
ZScore :=
z
=
(x-Centre)/Scale
StandardZScore :=
z
=
(x-Mean)/StandardDeviation
FiveNumberSummary := {
Minimum,
Q1,
Median,
Q3,
Maximum
}
DistributionShape := {
Symmetry,
Skewness,
Kurtosis,
Modality,
TailBehaviour
}
SymmetricDistribution :=
LeftAndRightStructure
mirror around centre
under specified measure
Skewness :=
MeasureOfAsymmetry
PositiveSkew :=
LongRightTail
NegativeSkew :=
LongLeftTail
Kurtosis :=
StandardisedFourthMoment
when finite
ExcessKurtosis :=
Kurtosis-3
under normal-reference convention
Modality := {
Unimodal,
Bimodal,
Multimodal,
UniformLike
}
Outlier :=
Observation
unusually distant
under specified criterion
IQRLowerFence :=
Q1-1.5IQR
IQRUpperFence :=
Q3+1.5IQR
IQRPotentialOutlier :=
X<IQRLowerFence
∨ X>IQRUpperFence
OutlierRuleIsHeuristic :=
IQRFence
flags potential outliers
not automatic errors
EmpiricalDistribution :=
ObservedValues
with empirical probability mass
EmpiricalProbability :=
P_hat(X=x)
=
Count(X=x)/n
EmpiricalCDF :=
F_n(x)
=
(1/n)
Σ_i1_(X_i≤x)
Histogram :=
QuantitativeData
→ Bins
→ FrequencyOrDensityBars
HistogramConstraint :=
BinChoice
affects visual representation
BarChart :=
CategoricalValues
→ SeparateCategoryBars
PieChart :=
Categories
→ ProportionalSectors
BoxPlot :=
Quartiles
∧ Median
∧ Whiskers
∧ PotentialOutliers
ViolinPlot :=
DistributionDensityShape
combined_with
summary representation
StemAndLeafPlot :=
OrderedNumericalData
retaining individual values
DotPlot :=
IndividualObservations
represented_as dots
ScatterPlot :=
PairedNumericalData
→ CoordinatePoints
BivariateData :=
{(x_i,y_i)}
Covariance :=
Cov_sample(X,Y)
=
[1/(n-1)]
Σ_i
(x_i-X_bar)
(y_i-Y_bar)
Correlation :=
r
=
Cov_sample(X,Y)
/
(S_XS_Y)
CorrelationBounds :=
-1≤r≤1
CorrelationInterpretation :=
Sign
→ Direction
∧ Magnitude
→ StrengthOfLinearAssociation
under context
CorrelationDoesNotImplyCausation :=
Correlation
↛ Causation
CrossTabulation :=
CategoricalVariableA
× CategoricalVariableB
→ ContingencyTable
ContingencyTable :=
CellCounts
by category combinations
RowProportion :=
CellCount/RowTotal
ColumnProportion :=
CellCount/ColumnTotal
JointProportion :=
CellCount/GrandTotal
ConditionalDistribution :=
DistributionOfVariable
within selected subgroup_or_condition
GroupedSummary :=
GroupBy(Category)
→ ComputeSummaryStatistic
GroupMean :=
MeanWithinGroup
GroupMedian :=
MedianWithinGroup
GroupVariance :=
VarianceWithinGroup
GroupComparison :=
CompareDescriptiveSummaries
across groups
TimeSeriesDescription :=
OrderedObservations
indexed_by time
Trend :=
LongTermDirectionalPattern
Seasonality :=
RepeatingPattern
associated_with time cycle
MovingAverage :=
LocalAverage
across moving window
RateOfChange :=
DifferenceOrRelativeDifference
across ordered observations
MissingValue :=
ObservationNotRecorded
MissingCount :=
Count(MissingValues)
MissingRate :=
MissingCount/ExpectedObservationCount
CompleteCaseCount :=
Count(RowsWithoutSelectedMissingValues)
DataQualitySummary := {
Missingness,
Duplicates,
InvalidValues,
RangeChecks,
CategoryConsistency
}
DuplicateObservation :=
RepeatedRecord
under selected identity rule
InvalidValue :=
Value
violating
variable constraints
Transformation :=
Y=g(X)
LogTransformation :=
Y=log(X)
for positive X
Standardisation :=
Z
=
(X-X_bar)/S
MinMaxScaling :=
Y
=
(X-Min)/(Max-Min)
where Max>Min
Normalisation :=
RescaleData
according_to specified rule
RobustScaling :=
(X-Median)/IQR
where IQR>0
WeightedData :=
Observations
associated_with weights
WeightedFrequency :=
ΣWeights
within category_or_value
WeightedVariance :=
Variance
computed_under
specified weighting convention
SummaryStatistic :=
Function
mapping Dataset
to concise descriptive quantity
SummarySelection :=
VariableType
∧ DistributionShape
∧ AnalysisGoal
→ AppropriateDescriptiveSummary
CategoricalSummary :=
Frequencies
∧ Proportions
∧ Mode
OrdinalSummary :=
Frequencies
∧ Median
∧ Quantiles
QuantitativeSummary :=
Centre
∧ Dispersion
∧ Position
∧ Shape
RobustQuantitativeSummary :=
Median
∧ IQR
∧ MAD
MomentBasedSummary :=
Mean
∧ Variance
∧ Skewness
∧ Kurtosis
DescriptiveStatisticsConstraint :=
ConstraintOn(
VariableType,
Missingness,
Weighting,
SummaryDefinition,
DataScale
)
SummaryValidity :=
SummaryStatistic
compatible_with
VariableType
and data semantics
InvalidDescriptiveSummary :=
IncompatibleVariableType
∨ UndefinedStatistic
∨ InvalidWeighting
∨ HiddenMissingDataTreatment
∨ MisleadingAggregation
DescriptiveStatisticsState := {
Dataset,
Variables,
VariableTypes,
Frequencies,
CentralTendency,
Dispersion,
Position,
Shape,
Association,
Missingness,
VisualSummaries,
Evidence,
Confidence,
Provenance
}
DescriptiveValidation :=
ResolveDataset
→ ResolveVariables
→ ClassifyVariableTypes
→ ResolveMissingness
→ ResolveWeights
→ SelectCompatibleSummaries
→ ComputeSummaries
→ ValidateCalculations
→ ValidateInterpretation
SEMANTIC_EQUIVALENCE(SummaryA,SummaryB) :=
same(DataScope)
∧ same(VariableSemantics)
∧ same(SummaryDefinition)
∧ same(WeightingAndMissingnessRules)
DescriptiveStatisticsOntology :=
Classes
∧ Relations
∧ Constraints
∧ Axioms
∧ InferenceRules
CoreClasses := {
DescriptiveStatistics,
Dataset,
Observation,
Variable,
Frequency,
RelativeFrequency,
Mean,
Median,
Mode,
Range,
Variance,
StandardDeviation,
InterquartileRange,
Quantile,
Skewness,
Kurtosis,
Correlation,
ContingencyTable,
EmpiricalDistribution,
DescriptiveVisualisation
}
CoreRelations := {
describes,
computedFrom,
summarises,
hasFrequency,
hasCentre,
hasDispersion,
hasPosition,
hasShape,
associatedWith,
groupedBy,
visualisedBy,
transformedBy,
constrainedBy,
equivalentTo,
tracesTo
}
TypedRelations :=
DescriptiveStatistic --computedFrom--> Dataset
DescriptiveStatistic --describes--> Variable
FrequencyTable --hasFrequency--> Frequency
VariableSummary --hasCentre--> CentralTendency
VariableSummary --hasDispersion--> Dispersion
VariableSummary --hasPosition--> Quantile
VariableSummary --hasShape--> DistributionShape
Variable --associatedWith--> Variable
GroupedSummary --groupedBy--> CategoricalVariable
Dataset --visualisedBy--> DescriptiveVisualisation
Variable --transformedBy--> Transformation
DescriptiveResult --tracesTo--> Provenance
InferenceRules := {
QuantitativeVariable(X)
⇒
EligibleFor(
Mean,
Median,
Variance,
StandardDeviation,
Quantiles
),
NominalVariable(X)
⇒
EligibleFor(
Frequency,
Proportion,
Mode
),
OrderedData(X)
⇒
QuantilesDefined
under selected convention,
IQR=Q3-Q1,
SampleVariance
⇒
SampleStandardDeviation=sqrt(SampleVariance),
Correlation(X,Y)
⇒
-1≤r≤1,
Correlation
↛ Causation,
InvalidVariableSummaryPair
⇒
FlagDescriptiveError
}
CanonicalDescriptiveRepresentation :=
ParseDataset
→ ResolveVariables
→ ClassifyVariableTypes
→ ResolveDataScope
→ ResolveMissingnessAndWeights
→ ComputeFrequencyStructure
→ ComputeCentreAndDispersion
→ ComputePositionAndShape
→ ComputeAssociations
→ GenerateVisualSummarySpecification
→ ValidateDescriptiveStatistics
DescriptiveStatisticsGraph :=
G=(V,E)
V := {
Datasets,
Observations,
Variables,
VariableTypes,
Frequencies,
Means,
Medians,
Modes,
Variances,
StandardDeviations,
Quantiles,
SkewnessMeasures,
KurtosisMeasures,
Correlations,
ContingencyTables,
EmpiricalDistributions,
Visualisations,
Evidence,
ProvenanceNodes
}
E := {
describes,
computedFrom,
summarises,
hasFrequency,
hasCentre,
hasDispersion,
hasPosition,
hasShape,
associatedWith,
groupedBy,
visualisedBy,
transformedBy,
constrainedBy,
equivalentTo,
tracesTo
}
CONFIDENCE(DescriptiveStatisticsResult) :=
weighted_mean(
DatasetResolution,
VariableResolution,
VariableTypeClassification,
MissingnessHandling,
WeightingValidity,
CalculationValidity,
SummaryAppropriateness,
ProvenanceQuality
)
AI_QUERY_INTERPRETATION :=
Query
→ DetectDescriptiveStatisticsIntent
→ IdentifyDatasetAndVariables
→ ClassifyVariableTypes
→ IdentifyRequestedSummaryOrVisualisation
→ ResolveGroupingWeightingAndMissingnessRules
AI_REASONING_FLOW :=
Query
→ ParseDescriptiveStatisticsProblem
→ ResolveDataset
→ ResolveVariables
→ ClassifyVariableTypes
→ ResolveMissingValues
→ ResolveWeightsIfPresent
→ ComputeFrequencyDistributions
→ ComputeCentralTendency
→ ComputeDispersion
→ ComputeQuantilesAndPosition
→ ComputeShapeMeasuresIfValid
→ ComputeAssociationsIfRequested
→ SpecifyVisualRepresentationIfRequested
→ ValidateSummaryCompatibility
→ UpdateConfidence
→ PreserveProvenance
→ GenerateExplanation
AI_CONSUMPTION := {
ParseDescriptiveStatisticsEntities,
ParseTypedRelations,
ResolveDatasets,
ResolveVariables,
ClassifyVariableTypes,
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
→ RevalidateVisualSummaries
→ RecomputeConfidence
→ PreserveProvenance
→ VersionModel
DataUpdate :=
ChangedDataset
⇒ recompute(
Frequencies,
CentralTendency,
Dispersion,
Quantiles,
Shape,
Associations
)
VariableTypeUpdate :=
ChangedVariableSemantics
⇒ reevaluate(
EligibleStatistics,
Visualisations,
Interpretation
)
WeightUpdate :=
ChangedWeights
⇒ recompute(
WeightedFrequencies,
WeightedMeans,
WeightedDispersion
)
FLOW_HASH_INPUT :=
canonical(
ONTOLOGY,
CoreClasses,
CoreRelations,
InferenceRules,
DescriptiveStatistics,
DescriptiveValidation,
SummarySelection,
SEMANTIC_EQUIVALENCE,
AI_REASONING_FLOW
)
FLOW_HASH :=
HASH(FLOW_HASH_INPUT)
OUTPUT_MODEL := {
DescriptiveStatisticsEntityResolution,
Dataset,
Variables,
VariableTypes,
Frequencies,
CentralTendency,
Dispersion,
PositionMeasures,
DistributionShape,
Associations,
MissingnessSummary,
GroupedSummaries,
VisualisationSpecification,
ValidationStatus,
Confidence,
Provenance,
Explanation
}
END_FLOW
END OF FULL EXECUTABLE FLOW ALGEBRA
Download Code
Copy to Clipboard