Skip to main content

Population 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 — POPULATION ONTOLOGY
Kireth Research — Semantic Library
URL: https://kirethresearch.org/booksai-core/ontologies/probability-statistics-ontologies/statistical-foundations/population-ontology.html

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

BEGIN_FLOW

StatisticalPopulation :=
    DefinedCollectionOfUnitsOrOutcomes
    ∧ TargetOfStatisticalStudy
    ∧ EligibilityCriteria
    ∧ Scope
    ∧ PopulationAttributes
    ∧ PopulationParameters

Population :=
    StatisticalPopulation

PopulationDefinition :=
    TargetEntityType
    ∧ InclusionCriteria
    ∧ ExclusionCriteria
    ∧ SpatialScope
    ∧ TemporalScope
    ∧ MeasurementContext

StatisticalUnit :=
    BasicEntity
    belonging_to Population

UnitIdentifier :=
    Identifier
    distinguishing StatisticalUnit

PopulationMembership :=
    Unit
    ∈ Population
    iff
    InclusionCriteria(Unit)
    ∧ ¬ExclusionCriteria(Unit)

InclusionCriteria :=
    Conditions
    required_for PopulationMembership

ExclusionCriteria :=
    Conditions
    preventing PopulationMembership

TargetPopulation :=
    Population
    about which
    inference_or_description
    is intended

AccessiblePopulation :=
    PortionOfTargetPopulation
    practically reachable
    by study_or_sampling process

StudyPopulation :=
    Population
    operationally defined
    for specific study

SourcePopulation :=
    Population
    from which
    observed sample
    can arise

ReferencePopulation :=
    Population
    used_as
    comparison_or_reference

FinitePopulation :=
    Population
    with finite number
    of units

InfinitePopulation :=
    ConceptualPopulation
    with unbounded_or_infinite
    possible units_or_outcomes

Superpopulation :=
    ProbabilityModel
    representing
    conceptual generating population
    beyond finite observed units

PopulationSize :=
    N

FinitePopulationConstraint :=
    FinitePopulation
    ⇒
    N∈PositiveIntegersOrZero

PopulationFrame :=
    OperationalListOrRepresentation
    of units
    available_for sampling

SamplingFrame :=
    PopulationFrame
    used_to select Sample

FrameCoverage :=
    Relationship
    between SamplingFrame
    and TargetPopulation

Undercoverage :=
    TargetPopulationUnits
    absent_from SamplingFrame

Overcoverage :=
    SamplingFrameUnits
    not belonging_to TargetPopulation

DuplicateFrameEntries :=
    SamePopulationUnit
    represented multiple times
    in SamplingFrame

CoverageError :=
    Undercoverage
    ∨ Overcoverage
    ∨ DuplicateFrameEntries

PopulationCharacteristic :=
    MeasurableAttribute
    of StatisticalUnit

PopulationVariable :=
    Variable
    defined_on Population

PopulationDistribution :=
    DistributionOfPopulationVariable
    across PopulationOrSuperpopulation

PopulationParameter :=
    NumericalOrStructuralQuantity
    describing Population
    or PopulationDistribution

PopulationMean :=
    μ

FinitePopulationMean :=
    μ_N
    =
    (1/N)Σ_{i=1..N}X_i

PopulationVariance :=
    σ²
    =
    E[(X-μ)²]
    under probability model

FinitePopulationVariance :=
    VarianceAcrossFinitePopulation
    under specified denominator convention

PopulationProportion :=
    P
    =
    NumberWithProperty/N
    for finite population

PopulationTotal :=
    T
    =
    Σ_{i=1..N}X_i

PopulationMedian :=
    Median
    of PopulationDistribution

PopulationQuantile :=
    Quantile
    of PopulationDistribution

PopulationCorrelation :=
    Correlation
    between population variables
    when defined

PopulationParameterSet := {
    PopulationSize,
    PopulationMean,
    PopulationVariance,
    PopulationProportion,
    PopulationTotal,
    PopulationMedian,
    PopulationQuantile,
    PopulationCorrelation
}

Census :=
    DataCollection
    attempting_to observe
    every unit
    in finite Population

Sample :=
    SubsetOrSequence
    selected_or_observed
    from Population

SampleRelation :=
    Sample
    --sampledFrom-->
    Population

SamplingFraction :=
    f
    =
    n/N
    for finite population

FinitePopulationCorrection :=
    FPC
    =
    sqrt(
        (N-n)/(N-1)
    )
    under simple random sampling
    without replacement

NegligibleSamplingFraction :=
    n/N
    sufficiently small
    ⇒
    FPC≈1
    for practical approximation

SamplingWithReplacement :=
    SelectedUnit
    may be selected again

SamplingWithoutReplacement :=
    SelectedUnit
    cannot be selected again

SimpleRandomSampling :=
    SamplingDesign
    assigning equal probability
    to samples_or_units
    according_to design definition

StratifiedPopulation :=
    Population
    partitioned_into
    nonoverlapping strata

Stratum :=
    Subpopulation
    defined_by stratification variable

StratifiedPopulationConstraint :=
    Population
    =
    Union(Strata)
    ∧ PairwiseDisjoint(Strata)

ClusteredPopulation :=
    Population
    partitioned_or_grouped
    into clusters

Cluster :=
    GroupOfPopulationUnits
    used_in sampling design

Subpopulation :=
    PopulationSubset
    defined_by
    attribute_or_condition

Domain :=
    Subpopulation
    for which
    separate estimates are required

PopulationPartition :=
    {P_1,...,P_k}
    such_that
    Union(P_i)=Population
    ∧ PairwiseDisjoint(P_i)

PopulationHierarchy :=
    Population
    → Subpopulation
    → StatisticalUnit

DynamicPopulation :=
    PopulationMembership
    changes_over_time

ClosedPopulation :=
    NoRelevantEntryOrExit
    during specified study interval

OpenPopulation :=
    Units
    may enter_or_leave
    during study interval

PopulationAtRisk :=
    Units
    eligible_to experience
    specified event
    during relevant time

DenominatorPopulation :=
    Population
    defining denominator
    for rate_or_proportion

PersonTimePopulation :=
    AccumulatedTimeAtRisk
    across population units

PopulationRate :=
    EventCount
    /
    PopulationExposure

PrevalencePopulation :=
    Population
    assessed_for
    existing condition_or_state
    at specified time_or_period

IncidencePopulation :=
    PopulationAtRisk
    observed_for
    new events

ObservedPopulation :=
    Units
    actually represented
    in collected data

EligiblePopulation :=
    Units
    satisfying eligibility criteria

EnrolledPopulation :=
    EligibleUnits
    entering study

AnalysisPopulation :=
    Units
    included_in
    final statistical analysis

PopulationMismatch :=
    TargetPopulation
    ≠
    SourceOrAnalysisPopulation
    in materially relevant way

Generalisability :=
    ExtentToWhich
    study findings
    apply_to TargetPopulation

ExternalValidity :=
    ValidityOfGeneralisation
    beyond observed sample_or_study setting

Representativeness :=
    DegreeToWhichSample
    reflects relevant population characteristics
    under stated purpose

RepresentativeSampleDoesNotRequireExactMatching :=
    Representativeness
    depends_on
    design_and_target estimands
    not exact equality
    of every sample characteristic

SelectionMechanism :=
    Process
    determining
    inclusion_in Sample

InclusionProbability :=
    π_i
    =
    P(Unit_iIncluded)

SamplingWeight :=
    w_i
    commonly proportional_to
    1/π_i
    under design-based estimation

UnequalProbabilitySampling :=
    π_i
    varies_across units

SelfWeightingDesign :=
    EqualFinalSamplingWeights
    under design

Nonresponse :=
    SelectedUnit
    fails_to provide
    intended data

ResponsePopulation :=
    RespondingUnits
    within selected sample

NonresponseBias :=
    ResponseMechanism
    causes systematic distortion
    relative_to target population

SelectionBias :=
    SelectionMechanism
    produces systematic distortion
    in target inference

PopulationCoverageBias :=
    SamplingFrameCoverageError
    affects
    population representation

PopulationDrift :=
    PopulationDistribution
    changes_over_time

ConceptDriftRelation :=
    RelationshipBetweenVariables
    changes_over_time
    within evolving population

CovariateShift :=
    PredictorDistributionChanges
    while selected conditional relation
    may remain stable
    under modelling assumption

PopulationHeterogeneity :=
    UnitsOrSubgroups
    differ
    in relevant characteristics

HomogeneousPopulation :=
    Population
    relatively similar
    on specified characteristics

MixturePopulation :=
    PopulationDistribution
    formed_from
    multiple subpopulation distributions

PopulationMixture :=
    P(X)
    =
    Σ_g
    P(G=g)
    P(X|G=g)

LatentSubpopulation :=
    UnobservedGroup
    with distinct distributional structure

PopulationModel :=
    MathematicalRepresentation
    of population characteristics
    and data-generating process

DesignBasedInference :=
    PopulationValues
    treated_as fixed
    ∧ RandomnessFromSamplingDesign

ModelBasedInference :=
    PopulationOrOutcomes
    represented_by probability model

SuperpopulationInference :=
    FiniteObservedUnits
    viewed_as generated_from
    broader probability distribution

PopulationParameterVsSampleStatistic :=
    PopulationParameter
    ≠
    SampleStatistic

ParameterStatisticRelation :=
    SampleStatistic
    may estimate
    PopulationParameter

SampleMeanEstimator :=
    X_bar
    estimates
    PopulationMean

SampleProportionEstimator :=
    p_hat
    estimates
    PopulationProportion

SampleTotalEstimator :=
    WeightedSample
    may estimate
    PopulationTotal
    under sampling design

SamplingError :=
    Difference
    between SampleStatistic
    and PopulationParameter
    due_to sample selection variability

NonsamplingError :=
    Error
    from measurement,
    processing,
    coverage,
    nonresponse,
    or specification

PopulationUncertainty :=
    Uncertainty
    about PopulationParameters
    inferred_from incomplete observations

PopulationEvidence :=
    CensusData
    ∨ SampleData
    ∨ AdministrativeData
    ∨ RegisterData
    ∨ ModelBasedEvidence

PopulationProvenance :=
    PopulationDefinition
    → {
        Source,
        InclusionCriteria,
        ExclusionCriteria,
        TimePeriod,
        GeographicScope,
        SamplingFrame,
        Version
    }

PopulationConstraint :=
    ConstraintOn(
        Membership,
        Scope,
        Frame,
        Parameters,
        SamplingRelation
    )

PopulationConsistency :=
    TargetDefinition
    ∧ MembershipRules
    ∧ Scope
    ∧ SamplingFrame
    ∧ ParameterDefinitions
    jointly_compatible

InvalidPopulationDefinition :=
    UndefinedTargetUnits
    ∨ ContradictoryEligibilityCriteria
    ∨ AmbiguousTimeScope
    ∨ AmbiguousSpatialScope
    ∨ IncompatibleSamplingFrame
    ∨ UndefinedParameterDenominator

PopulationValidation :=
    ResolveTargetEntityType
    → ResolveInclusionCriteria
    → ResolveExclusionCriteria
    → ResolveTemporalScope
    → ResolveSpatialScope
    → ResolvePopulationSizeIfKnown
    → ResolveSamplingFrame
    → EvaluateCoverage
    → ResolvePopulationParameters
    → ValidateSamplePopulationRelation

PopulationState := {
    TargetPopulation,
    SourcePopulation,
    AccessiblePopulation,
    PopulationSize,
    StatisticalUnits,
    Variables,
    Parameters,
    SamplingFrame,
    Coverage,
    Subpopulations,
    TimeScope,
    SpatialScope,
    Evidence,
    Confidence,
    Provenance
}

SEMANTIC_EQUIVALENCE(PopulationA,PopulationB) :=
    same(TargetEntityType)
    ∧ same(MembershipCriteria)
    ∧ same(TemporalScope)
    ∧ same(SpatialScope)
    ∧ same(MeasurementContext)

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

CoreClasses := {
    StatisticalPopulation,
    TargetPopulation,
    SourcePopulation,
    AccessiblePopulation,
    StudyPopulation,
    FinitePopulation,
    InfinitePopulation,
    Superpopulation,
    StatisticalUnit,
    PopulationVariable,
    PopulationParameter,
    SamplingFrame,
    Subpopulation,
    Stratum,
    Cluster,
    Sample,
    PopulationEvidence
}

CoreRelations := {
    containsUnit,
    sampledFrom,
    representedBy,
    hasVariable,
    hasParameter,
    hasFrame,
    hasSubpopulation,
    partitionedInto,
    includes,
    excludes,
    definedOver,
    estimates,
    generalisesTo,
    dependsOn,
    equivalentTo,
    tracesTo
}

TypedRelations :=
    StatisticalPopulation --containsUnit--> StatisticalUnit
    Sample --sampledFrom--> Population
    Population --representedBy--> SamplingFrame
    Population --hasVariable--> PopulationVariable
    Population --hasParameter--> PopulationParameter
    Population --hasFrame--> SamplingFrame
    Population --hasSubpopulation--> Subpopulation
    Population --partitionedInto--> Stratum
    PopulationDefinition --includes--> InclusionCriteria
    PopulationDefinition --excludes--> ExclusionCriteria
    Population --definedOver--> TemporalSpatialScope
    SampleStatistic --estimates--> PopulationParameter
    StudyResult --generalisesTo--> TargetPopulation
    Population --tracesTo--> Provenance

InferenceRules := {
    Unit(U)
        ∧ InclusionCriteria(U)
        ∧ ¬ExclusionCriteria(U)
        ⇒
        Member(U,Population),

    Sample(S)
        ∧ sampledFrom(S,P)
        ⇒
        SourcePopulation(S)=P,

    FinitePopulation(P)
        ⇒
        PopulationSize(P)=N,

    Census(P)
        ⇒
        AttemptObserve(AllUnits(P)),

    SimpleRandomSampleWithoutReplacement
        ∧ FinitePopulation
        ⇒
        ApplyFinitePopulationCorrection
        when required,

    SampleMean
        ⇒
        CandidateEstimator(PopulationMean),

    SampleProportion
        ⇒
        CandidateEstimator(PopulationProportion),

    CoverageError
        ⇒
        FlagRepresentationRisk,

    TargetPopulation≠SourcePopulation
        ⇒
        EvaluateGeneralisability
}

CanonicalPopulationRepresentation :=
    ParsePopulationDefinition
    → ResolveTargetEntityType
    → ResolveMembershipCriteria
    → ResolveTimeAndSpatialScope
    → ResolvePopulationType
    → ResolvePopulationSize
    → ResolveVariablesAndParameters
    → ResolveSamplingFrame
    → ResolveSubpopulations
    → ResolveSampleRelation
    → ValidatePopulation

PopulationGraph :=
    G=(V,E)

V := {
    Populations,
    TargetPopulations,
    SourcePopulations,
    AccessiblePopulations,
    StatisticalUnits,
    Variables,
    Parameters,
    SamplingFrames,
    Samples,
    Subpopulations,
    Strata,
    Clusters,
    EligibilityCriteria,
    ScopeNodes,
    Evidence,
    ProvenanceNodes
}

E := {
    containsUnit,
    sampledFrom,
    representedBy,
    hasVariable,
    hasParameter,
    hasFrame,
    hasSubpopulation,
    partitionedInto,
    includes,
    excludes,
    definedOver,
    estimates,
    generalisesTo,
    dependsOn,
    equivalentTo,
    tracesTo
}

CONFIDENCE(PopulationResolution) :=
    weighted_mean(
        TargetEntityResolution,
        MembershipCriteriaResolution,
        TemporalScopeResolution,
        SpatialScopeResolution,
        PopulationSizeResolution,
        SamplingFrameQuality,
        SamplePopulationLinkValidity,
        ProvenanceQuality
    )

AI_QUERY_INTERPRETATION :=
    Query
    → DetectPopulationIntent
    → IdentifyTargetUnits
    → ResolveEligibilityCriteria
    → ResolveTimeAndSpatialScope
    → IdentifyPopulationParameterOrSamplingQuestion

AI_REASONING_FLOW :=
    Query
    → ParsePopulationQuestion
    → ResolveTargetPopulation
    → ResolveSourceAndAccessiblePopulations
    → ResolveStatisticalUnits
    → ResolveInclusionAndExclusionCriteria
    → ResolveTemporalAndSpatialScope
    → DetermineFiniteInfiniteOrSuperpopulation
    → ResolvePopulationSizeIfAvailable
    → ResolvePopulationVariablesAndParameters
    → ResolveSamplingFrame
    → EvaluateFrameCoverage
    → ResolveSamplePopulationRelationship
    → EvaluateRepresentativenessAndGeneralisability
    → ValidatePopulationDefinition
    → UpdateConfidence
    → PreserveProvenance
    → GenerateExplanation

AI_CONSUMPTION := {
    ParsePopulationEntities,
    ParseTypedRelations,
    ResolveTargetPopulations,
    ResolveSourcePopulations,
    ResolveAccessiblePopulations,
    ResolveStatisticalUnits,
    ResolveMembershipCriteria,
    ResolveTemporalScopes,
    ResolveSpatialScopes,
    ClassifyFiniteInfiniteOrSuperpopulation,
    ResolvePopulationSizes,
    ResolvePopulationVariables,
    ResolvePopulationParameters,
    ResolveSamplingFrames,
    EvaluateCoverageErrors,
    ResolveSubpopulations,
    ResolveStrata,
    ResolveClusters,
    ResolveSamplePopulationLinks,
    EvaluateSamplingFractions,
    EvaluateFinitePopulationCorrections,
    EvaluateRepresentativeness,
    EvaluateGeneralisability,
    ValidatePopulationDefinitions,
    CompareSemanticEquivalence,
    UpdateConfidence,
    PreserveProvenance,
    GenerateFormalExplanation
}

UPDATE_MODEL :=
    NewPopulationDefinitionFrameSampleOrEvidence
    → ValidateInput
    → IdentifyAffectedPopulationClaims
    → UpdatePopulationState
    → RecomputeMembership
    → RecomputePopulationSizeIfRequired
    → ReevaluateSamplingFrameCoverage
    → ReevaluateSamplePopulationRelations
    → RecomputePopulationParametersIfRequired
    → RevalidateGeneralisability
    → RecomputeConfidence
    → PreserveProvenance
    → VersionModel

MembershipUpdate :=
    ChangedEligibilityCriteria
    ⇒ recompute(
        PopulationMembership,
        PopulationSize,
        SubpopulationMembership
    )

FrameUpdate :=
    ChangedSamplingFrame
    ⇒ reevaluate(
        Undercoverage,
        Overcoverage,
        DuplicateEntries,
        SelectionRisk
    )

ScopeUpdate :=
    ChangedTemporalOrSpatialScope
    ⇒ recompute(
        PopulationDefinition,
        PopulationSize,
        PopulationParameters,
        Generalisability
    )

FLOW_HASH_INPUT :=
    canonical(
        ONTOLOGY,
        CoreClasses,
        CoreRelations,
        InferenceRules,
        StatisticalPopulation,
        PopulationDefinition,
        PopulationValidation,
        SEMANTIC_EQUIVALENCE,
        AI_REASONING_FLOW
    )

FLOW_HASH :=
    HASH(FLOW_HASH_INPUT)

OUTPUT_MODEL := {
    PopulationEntityResolution,
    TargetPopulation,
    SourcePopulation,
    AccessiblePopulation,
    StatisticalUnits,
    InclusionCriteria,
    ExclusionCriteria,
    TemporalScope,
    SpatialScope,
    PopulationType,
    PopulationSize,
    Variables,
    PopulationParameters,
    SamplingFrame,
    CoverageStatus,
    Subpopulations,
    SamplePopulationRelation,
    RepresentativenessStatus,
    GeneralisabilityStatus,
    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