Skip to main content

Statistical Variable Ontology

Statistical Foundations
Authors: MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: 23 September 2026
Audio Overview
FULL EXECUTABLE FLOW ALGEBRA — STATISTICAL VARIABLE ONTOLOGY
Kireth Research — Semantic Library
URL: https://kirethresearch.org/booksai-core/ontologies/probability-statistics-ontologies/statistical-foundations/statistical-variable-ontology.html

FLOW_VERSION := "4.0"
FLOW_TYPE := "Full Executable Flow Algebra"
DOMAIN := "Probability & Statistics Ontologies"
SUBDOMAIN := "Statistical Foundations"
ONTOLOGY := "Statistical Variable Ontology"
PRIMARY_ENTITY := StatisticalVariable
AUTHORSHIP := "Mark Higgins — Sky (Recursive AI)"
SOURCE_SITE := "https://kirethresearch.org"

BEGIN_FLOW

StatisticalVariable :=
    DefinedCharacteristic
    ∧ StatisticalUnitDomain
    ∧ ValueDomain
    ∧ MeasurementSemantics
    ∧ DataType
    ∧ ObservationRelation

Variable :=
    StatisticalVariable

VariableIdentity :=
    VariableID
    ∧ VariableName
    ∧ SemanticDefinition

VariableID :=
    UniqueIdentifier
    for StatisticalVariable

VariableName :=
    HumanReadableOrMachineReadableLabel

VariableDefinition :=
    ExplicitMeaning
    of measured_or_recorded characteristic

StatisticalUnit :=
    Entity
    on which Variable
    is defined_or_observed

VariableDomain :=
    SetOfStatisticalUnits
    for which Variable
    is meaningful

ValueDomain :=
    SetOfPermittedOrPossibleValues

ObservedValue :=
    RealisedValue
    of Variable
    for StatisticalUnit

ObservationRelation :=
    StatisticalObservation
    --observesVariable-->
    StatisticalVariable

VariableType := {
    CategoricalVariable,
    QuantitativeVariable,
    BinaryVariable,
    DiscreteVariable,
    ContinuousVariable,
    NominalVariable,
    OrdinalVariable
}

CategoricalVariable :=
    Variable
    whose values
    represent categories

QuantitativeVariable :=
    Variable
    whose values
    represent numerical quantities

BinaryVariable :=
    CategoricalOrIndicatorVariable
    with two states

DiscreteVariable :=
    QuantitativeVariable
    with countable value set

ContinuousVariable :=
    QuantitativeVariable
    with values
    represented_on continuous scale

NominalVariable :=
    CategoricalVariable
    without intrinsic category order

OrdinalVariable :=
    CategoricalVariable
    with defined category ordering

CountVariable :=
    DiscreteVariable
    representing nonnegative counts

ProportionVariable :=
    QuantitativeVariable
    typically constrained_to
    [0,1]

PercentageVariable :=
    QuantitativeVariable
    typically constrained_to
    [0,100]

RateVariable :=
    EventsOrQuantity
    relative_to exposure_or_denominator

TimeVariable :=
    Variable
    representing time_point,
    duration,
    or interval

DateVariable :=
    Variable
    representing calendar date

IdentifierVariable :=
    Variable
    used_to identify
    unit_or_record

IdentifierNotMeasurement :=
    IdentifierVariable
    generally not interpreted
    as quantitative measurement

MeasurementScale := {
    NominalScale,
    OrdinalScale,
    IntervalScale,
    RatioScale
}

NominalScale :=
    Values
    distinguish categories
    without ordering

OrdinalScale :=
    Values
    support ordering
    without guaranteed equal intervals

IntervalScale :=
    NumericScale
    with meaningful differences
    and arbitrary zero

RatioScale :=
    NumericScale
    with meaningful differences,
    ratios,
    and substantive zero

MeasurementUnit :=
    Unit
    associated_with
    quantitative variable

UnitCompatibility :=
    ObservedValueUnit
    compatible_with
    VariableMeasurementUnit

Dimension :=
    PhysicalOrAbstractDimension
    represented_by variable

VariableCoding :=
    Mapping
    between stored values
    and semantic values

CategorySet :=
    {c_1,...,c_k}

CategoryLabel :=
    HumanReadableMeaning
    of category code

CategoryCode :=
    StoredRepresentation
    of category

BinaryCoding := {
    0_1,
    False_True,
    No_Yes,
    CustomTwoCategoryCoding
}

ReferenceCategory :=
    SelectedCategory
    used_as baseline
    in model_or_summary

OrderedCategorySet :=
    c_1 < c_2 < ... < c_k

MissingValue :=
    IntendedVariableValue
    unavailable

MissingCode :=
    StoredRepresentation
    indicating missingness

MissingCodeConstraint :=
    MissingCode
    must_not be interpreted
    as substantive value

AllowedValues :=
    ExplicitSetOrRule
    defining valid values

LowerBound :=
    MinimumPermittedValue

UpperBound :=
    MaximumPermittedValue

RangeConstraint :=
    LowerBound≤Value≤UpperBound

CategoryConstraint :=
    Value∈CategorySet

IntegerConstraint :=
    Value∈Integers

NonnegativeConstraint :=
    Value≥0

PositiveConstraint :=
    Value>0

ProbabilityConstraint :=
    0≤Value≤1

PercentageConstraint :=
    0≤Value≤100

VariableConstraint :=
    ConstraintOn(
        Type,
        Scale,
        ValueDomain,
        Unit,
        Coding,
        Missingness
    )

RandomVariable :=
    MeasurableFunction
    from probability space
    to value space

ObservedStatisticalVariable :=
    Variable
    with realised observations
    in Dataset

ExplanatoryVariable :=
    Variable
    used_to explain_or_predict
    another variable

PredictorVariable :=
    ExplanatoryVariable
    used_in predictive model

IndependentVariable :=
    ContextDependentTerm
    commonly referring_to predictor_or_manipulated variable

ResponseVariable :=
    Variable
    treated_as outcome
    in statistical model

DependentVariable :=
    ContextDependentTerm
    commonly referring_to response variable

OutcomeVariable :=
    Variable
    representing study outcome

ExposureVariable :=
    Variable
    representing exposure_or_treatment

TreatmentVariable :=
    Variable
    indicating intervention assignment_or_level

ControlVariable :=
    Variable
    included_to account_for
    other influences

Covariate :=
    Variable
    included_in statistical model
    as predictor_or adjustment factor

Confounder :=
    Variable
    associated_with exposure_and_outcome
    capable_of distorting target association
    under causal context

Mediator :=
    Variable
    lying_on
    causal pathway
    under specified causal model

Moderator :=
    Variable
    modifying
    relationship_or_effect
    under specified model

InteractionVariable :=
    ConstructedVariable
    representing joint effect
    of predictors

InteractionTerm :=
    X_1×X_2
    or other specified combination

GroupingVariable :=
    Variable
    defining groups_or_strata

StratificationVariable :=
    Variable
    used_to partition
    population_or_sample
    into strata

ClusterVariable :=
    Variable
    identifying cluster membership

WeightVariable :=
    Variable
    storing statistical weights

FrequencyWeightVariable :=
    WeightVariable
    representing repeated equivalent observations

SamplingWeightVariable :=
    WeightVariable
    representing sampling design weight

TimeIndexVariable :=
    Variable
    ordering observations
    through time

PanelIdentifier :=
    IdentifierVariable
    linking repeated observations
    to same unit

LatentVariable :=
    UnobservedVariable
    inferred_from
    observed indicators_or_model

ObservedVariable :=
    Variable
    directly recorded
    in dataset

DerivedVariable :=
    Variable
    computed_from
    one_or_more source variables

DerivedVariableRule :=
    Y
    =
    g(X_1,...,X_p)

Transformation :=
    Variable
    → TransformedVariable

LogTransformation :=
    Y=log(X)
    where domain valid

SquareRootTransformation :=
    Y=sqrt(X)
    where X≥0

PowerTransformation :=
    Y=X^a
    under valid domain

Standardisation :=
    Z
    =
    (X-Centre)/Scale

ZScoreTransformation :=
    Z
    =
    (X-Mean)/StandardDeviation

MinMaxScaling :=
    Y
    =
    (X-Min)/(Max-Min)
    where Max>Min

Normalisation :=
    Rescaling
    under specified rule

Binning :=
    QuantitativeVariable
    → CategoricalVariable
    using intervals

Dichotomisation :=
    Variable
    → BinaryVariable
    using threshold_or_rule

OneHotEncoding :=
    CategoricalVariable
    → SetOfBinaryIndicators

DummyVariable :=
    BinaryIndicator
    for category membership

VariableAggregation :=
    MultipleVariablesOrObservations
    → SummaryVariable

CompositeVariable :=
    Variable
    constructed_from
    multiple component variables

IndexVariable :=
    CompositeVariable
    representing combined score_or_measure

ScoreVariable :=
    NumericVariable
    generated_by scoring rule

VariableDistribution :=
    ProbabilityOrEmpiricalDistribution
    of Variable

MarginalDistribution :=
    DistributionOfVariable
    without conditioning_on others

ConditionalDistribution :=
    DistributionOfVariable
    given specified variables_or_conditions

JointDistribution :=
    Distribution
    over multiple variables

Expectation :=
    E[X]

Variance :=
    Var(X)

StandardDeviation :=
    sqrt(Var(X))

Covariance :=
    Cov(X,Y)

Correlation :=
    Corr(X,Y)

Association :=
    StatisticalRelationship
    between variables

Independence :=
    JointDistribution
    factorises
    into marginal distributions

ConditionalIndependence :=
    X⟂Y | Z

VariableRelationship := {
    Association,
    Dependence,
    Independence,
    ConditionalIndependence,
    Correlation,
    CausalRelation
}

CorrelationDoesNotImplyCausation :=
    Correlation
    ↛ CausalRelation

CausalVariableRole :=
    Role
    defined_under
    explicit causal model

VariableSelection :=
    CandidateVariables
    → SelectVariables
    according_to analysis goal
    and method

FeatureSelection :=
    PredictorVariables
    → SelectedPredictorSubset

FeatureEngineering :=
    SourceVariables
    → DerivedPredictiveVariables

Multicollinearity :=
    StrongLinearRelationship
    among predictor variables

RedundantVariable :=
    Variable
    duplicating_or_nearly duplicating
    information in another variable

ConstantVariable :=
    Variable
    with same observed value
    across selected dataset

NearConstantVariable :=
    Variable
    with very low observed variability

VariableMissingness :=
    MissingValues
    associated_with Variable

VariableMissingRate :=
    MissingCountForVariable
    /
    ExpectedObservationCount

VariableQuality := {
    Completeness,
    Validity,
    Consistency,
    Accuracy,
    Resolution,
    Provenance
}

VariableMetadata := {
    VariableID,
    Name,
    Definition,
    Type,
    MeasurementScale,
    Unit,
    Coding,
    AllowedValues,
    MissingCodes,
    Source,
    Version
}

DataDictionaryEntry :=
    Variable
    → VariableMetadata

VariableProvenance :=
    Source
    ∧ MeasurementMethod
    ∧ TransformationHistory
    ∧ Version

VariableLineage :=
    SourceVariable(s)
    → Transformation(s)
    → DerivedVariable

VariableVersion :=
    VersionedDefinition
    of StatisticalVariable

VariableUpdate :=
    ChangedDefinition
    ∨ ChangedCoding
    ∨ ChangedUnit
    ∨ ChangedTransformation
    → NewVariableVersion

VariableConsistency :=
    Definition
    ∧ Type
    ∧ MeasurementScale
    ∧ ValueDomain
    ∧ Unit
    ∧ Coding
    jointly_compatible

InvalidVariableDefinition :=
    AmbiguousMeaning
    ∨ TypeScaleMismatch
    ∨ UnitMismatch
    ∨ InvalidValueDomain
    ∨ ConflictingCoding
    ∨ UndocumentedTransformation

VariableValidation :=
    ResolveVariableIdentity
    → ResolveDefinition
    → ResolveVariableType
    → ResolveMeasurementScale
    → ResolveValueDomain
    → ResolveUnit
    → ResolveCoding
    → ResolveMissingCodes
    → ResolveRole
    → ResolveProvenance
    → ValidateConsistency

StatisticalVariableState := {
    VariableID,
    Name,
    Definition,
    StatisticalUnitDomain,
    VariableType,
    MeasurementScale,
    ValueDomain,
    MeasurementUnit,
    Coding,
    Missingness,
    StatisticalRole,
    Distribution,
    Relationships,
    Evidence,
    Confidence,
    Provenance
}

SEMANTIC_EQUIVALENCE(VariableA,VariableB) :=
    same(ConceptualMeaning)
    ∧ same(UnitDomain)
    ∧ equivalent(ValueDomain)
    ∧ equivalent(MeasurementScale)
    ∧ compatible(UnitAndCoding)
    under specified analytical scope

StatisticalVariableOntology :=
    Classes
    ∧ Relations
    ∧ Constraints
    ∧ Axioms
    ∧ InferenceRules

CoreClasses := {
    StatisticalVariable,
    CategoricalVariable,
    QuantitativeVariable,
    BinaryVariable,
    DiscreteVariable,
    ContinuousVariable,
    NominalVariable,
    OrdinalVariable,
    PredictorVariable,
    ResponseVariable,
    Covariate,
    GroupingVariable,
    LatentVariable,
    DerivedVariable,
    MeasurementScale,
    ValueDomain,
    VariableMetadata,
    VariableProvenance
}

CoreRelations := {
    definedOn,
    observedBy,
    hasType,
    hasScale,
    hasValueDomain,
    measuredIn,
    encodedBy,
    hasRole,
    derivedFrom,
    transformedBy,
    associatedWith,
    conditionedOn,
    independentOf,
    constrainedBy,
    equivalentTo,
    tracesTo
}

TypedRelations :=
    StatisticalVariable --definedOn--> StatisticalUnit
    StatisticalObservation --observesVariable--> StatisticalVariable
    StatisticalVariable --hasType--> VariableType
    StatisticalVariable --hasScale--> MeasurementScale
    StatisticalVariable --hasValueDomain--> ValueDomain
    QuantitativeVariable --measuredIn--> MeasurementUnit
    CategoricalVariable --encodedBy--> VariableCoding
    StatisticalVariable --hasRole--> StatisticalRole
    DerivedVariable --derivedFrom--> StatisticalVariable
    StatisticalVariable --transformedBy--> Transformation
    StatisticalVariable --associatedWith--> StatisticalVariable
    ConditionalDistribution --conditionedOn--> StatisticalVariable
    StatisticalVariable --independentOf--> StatisticalVariable
    StatisticalVariable --tracesTo--> VariableProvenance

InferenceRules := {
    NominalVariable(V)
        ⇒
        CategoricalVariable(V),

    OrdinalVariable(V)
        ⇒
        CategoricalVariable(V)
        ∧ OrderedCategories(V),

    ContinuousVariable(V)
        ⇒
        QuantitativeVariable(V),

    DiscreteVariable(V)
        ⇒
        QuantitativeVariable(V),

    BinaryVariable(V)
        ⇒
        Cardinality(ValueDomain(V))=2,

    ProbabilityVariable(V)
        ⇒
        0≤Value(V)≤1,

    DerivedVariable(Y)
        ∧ Y=g(X)
        ⇒
        PreserveLineage(Y,X),

    Correlation(X,Y)
        ↛
        Causation(X,Y),

    VariableConstraintViolation(V)
        ⇒
        FlagVariableQualityRisk(V)
}

CanonicalVariableRepresentation :=
    ParseVariable
    → ResolveVariableIdentity
    → ResolveDefinition
    → ResolveStatisticalUnitDomain
    → ClassifyVariableType
    → ResolveMeasurementScale
    → ResolveValueDomain
    → ResolveMeasurementUnit
    → ResolveCodingAndMissingness
    → ResolveStatisticalRole
    → ResolveDistributionAndRelationships
    → ResolveProvenance
    → ValidateVariable

VariableGraph :=
    G=(V,E)

V := {
    StatisticalVariables,
    StatisticalUnits,
    VariableTypes,
    MeasurementScales,
    ValueDomains,
    MeasurementUnits,
    CodingSchemes,
    StatisticalRoles,
    Transformations,
    DerivedVariables,
    Distributions,
    Relationships,
    MetadataNodes,
    ProvenanceNodes
}

E := {
    definedOn,
    observedBy,
    hasType,
    hasScale,
    hasValueDomain,
    measuredIn,
    encodedBy,
    hasRole,
    derivedFrom,
    transformedBy,
    associatedWith,
    conditionedOn,
    independentOf,
    constrainedBy,
    equivalentTo,
    tracesTo
}

CONFIDENCE(VariableResolution) :=
    weighted_mean(
        VariableIdentityResolution,
        SemanticDefinitionQuality,
        VariableTypeResolution,
        MeasurementScaleResolution,
        ValueDomainValidity,
        UnitAndCodingConsistency,
        StatisticalRoleResolution,
        ProvenanceQuality
    )

AI_QUERY_INTERPRETATION :=
    Query
    → DetectStatisticalVariableIntent
    → IdentifyVariableAndUnitDomain
    → ResolveVariableTypeAndScale
    → ResolveValueDomainUnitAndCoding
    → IdentifyRequestedSummaryTransformationRelationshipOrRole

AI_REASONING_FLOW :=
    Query
    → ParseVariableProblem
    → ResolveVariableIdentity
    → ResolveSemanticDefinition
    → ResolveStatisticalUnitDomain
    → ClassifyVariableType
    → ResolveMeasurementScale
    → ResolveValueDomain
    → ValidateUnitsAndCoding
    → ResolveMissingness
    → ResolveStatisticalRole
    → ResolveDistribution
    → ResolveVariableRelationships
    → ResolveTransformationAndLineage
    → ValidateVariable
    → UpdateConfidence
    → PreserveProvenance
    → GenerateExplanation

AI_CONSUMPTION := {
    ParseStatisticalVariableEntities,
    ParseTypedRelations,
    ResolveVariableIdentities,
    ResolveVariableDefinitions,
    ResolveStatisticalUnitDomains,
    ClassifyVariableTypes,
    ResolveMeasurementScales,
    ResolveValueDomains,
    ResolveMeasurementUnits,
    ResolveCategoryCodings,
    ResolveMissingCodes,
    ResolveStatisticalRoles,
    ResolveVariableDistributions,
    ResolveVariableAssociations,
    ResolveConditionalRelationships,
    ResolveIndependenceRelations,
    ResolveTransformations,
    ResolveDerivedVariables,
    ResolveVariableLineage,
    ValidateVariableConstraints,
    CompareSemanticEquivalence,
    UpdateConfidence,
    PreserveProvenance,
    GenerateFormalExplanation
}

UPDATE_MODEL :=
    NewDefinitionTypeScaleUnitCodingRoleOrEvidence
    → ValidateInput
    → IdentifyAffectedVariableClaims
    → UpdateStatisticalVariableState
    → ReclassifyVariableTypeIfRequired
    → RevalidateMeasurementScale
    → RevalidateValueDomainAndUnits
    → RecomputeDerivedVariables
    → ReevaluateRelationships
    → RecomputeConfidence
    → PreserveProvenance
    → VersionModel

DefinitionUpdate :=
    ChangedSemanticDefinition
    ⇒ reevaluate(
        VariableType,
        MeasurementScale,
        StatisticalRole,
        SemanticEquivalence
    )

CodingUpdate :=
    ChangedCategoryOrMissingCoding
    ⇒ revalidate(
        AllowedValues,
        Missingness,
        DerivedStatistics
    )

UnitUpdate :=
    ChangedMeasurementUnit
    ⇒ revalidate(
        ValueDomain,
        Transformations,
        CrossDatasetCompatibility
    )

FLOW_HASH_INPUT :=
    canonical(
        ONTOLOGY,
        CoreClasses,
        CoreRelations,
        InferenceRules,
        StatisticalVariable,
        VariableValidation,
        VariableProvenance,
        SEMANTIC_EQUIVALENCE,
        AI_REASONING_FLOW
    )

FLOW_HASH :=
    HASH(FLOW_HASH_INPUT)

OUTPUT_MODEL := {
    StatisticalVariableEntityResolution,
    VariableID,
    VariableName,
    VariableDefinition,
    StatisticalUnitDomain,
    VariableType,
    MeasurementScale,
    ValueDomain,
    MeasurementUnit,
    Coding,
    Missingness,
    StatisticalRole,
    Distribution,
    Relationships,
    TransformationLineage,
    ValidationStatus,
    Confidence,
    Provenance,
    Explanation
}

END_FLOW

END OF FULL EXECUTABLE FLOW ALGEBRA
Kireth Research
38 Thorndale Croft, Wetwang, Driffield
East Riding of Yorkshire YO25 9XZ