Skip to main content

Coefficient of Variation Ontology

Descriptive Statistics
Authors: MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: 23 September 2026
Audio Overview
FULL EXECUTABLE FLOW ALGEBRA — COEFFICIENT OF VARIATION ONTOLOGY
Kireth Research — Semantic Library
URL: https://kirethresearch.org/booksai-core/ontologies/probability-statistics-ontologies/descriptive-statistics/coefficient-of-variation-ontology.html

FLOW_VERSION := "4.0"
FLOW_TYPE := "Full Executable Flow Algebra"
DOMAIN := "Probability & Statistics Ontologies"
SUBDOMAIN := "Descriptive Statistics"
ONTOLOGY := "Coefficient of Variation Ontology"
PRIMARY_ENTITY := CoefficientOfVariation
AUTHORSHIP := "Mark Higgins — Sky (Recursive AI)"
SOURCE_SITE := "https://kirethresearch.org"

BEGIN_FLOW

CoefficientOfVariation :=
    RelativeDispersionMeasure
    ∧ RatioOfStandardDeviationToMean
    ∧ DimensionlessScaleMeasure

RandomVariable := X
PopulationMean := μ=E[X]
PopulationStandardDeviation := σ=sqrt(Var(X))

PopulationCoefficientOfVariation :=
    CV=σ/μ
    where μ≠0
    and ratio interpretation is meaningful

AbsoluteCoefficientOfVariation :=
    CV_abs=σ/|μ|

PercentageCoefficientOfVariation :=
    CV_percent=100×σ/|μ|

Sample := {x_1,...,x_n}
SampleMean := X_bar=(1/n)Σ_i x_i
SampleStandardDeviation := S=sqrt([1/(n-1)]Σ_i(x_i-X_bar)²)

SampleCoefficientOfVariation :=
    CV_sample=S/X_bar
    where X_bar≠0

SampleAbsoluteCV :=
    S/|X_bar|

SamplePercentageCV :=
    100×S/|X_bar|

RelativeStandardDeviation :=
    RSD=StandardDeviation/|Mean|

DimensionlessProperty :=
    Unit(StandardDeviation)=Unit(Mean)
    ⇒ Unit(CV)=Dimensionless

ScaleInvariance :=
    a>0
    ⇒ CV(aX)=CV(X)

AbsoluteScaleInvariance :=
    a≠0
    ⇒ AbsoluteCV(aX)=AbsoluteCV(X)

TranslationNonInvariance :=
    CV(X+b)
    generally ≠ CV(X)

RatioScaleRequirement :=
    CV
    generally meaningful
    for ratio-scale variables
    with meaningful zero

IntervalScaleCaution :=
    ArbitraryZeroPoint
    ⇒ FlagCVInterpretationRisk

ZeroMeanConstraint :=
    Mean=0
    ⇒ CVUndefined

NearZeroMeanInstability :=
    |Mean|≈0
    ⇒ CV may become unstable

NegativeMeanCaution :=
    Mean<0
    ⇒ SignedCV may be misleading
    unless signed convention intended

CVNonnegativity :=
    AbsoluteCV≥0

ZeroCV :=
    StandardDeviation=0
    ∧ Mean≠0
    ⇒ CV=0

CVInterpretation :=
    StandardDeviation
    expressed_relative_to
    magnitude of Mean

ThresholdConstraint :=
    NoUniversalCVThreshold
    applies across all domains

CrossScaleComparison :=
    CV
    may compare relative variability
    across differently scaled variables
    when ratio-scale semantics are compatible

PrecisionVsAccuracy :=
    LowCVOrRSD
    may indicate repeatability
    but ↛ accuracy

CVVsStandardDeviation :=
    StandardDeviation measures absolute dispersion
    whereas CV measures relative dispersion

CVVsVariance :=
    Variance has squared units
    whereas CV is dimensionless

OutlierSensitivity :=
    CV
    inherits sensitivity
    from Mean and StandardDeviation

RobustRelativeDispersion :=
    RobustScale/RobustLocation
    where denominator semantics valid

QuartileCoefficientOfDispersion :=
    (Q3-Q1)/(Q3+Q1)
    where denominator valid

LognormalDistribution :=
    X~LogNormal(μ_L,σ_L²)

LognormalCV :=
    sqrt(exp(σ_L²)-1)

GammaDistribution :=
    X~Gamma(α,β)
    under shape-rate parameterisation

GammaCV :=
    1/sqrt(α)

ExponentialDistribution :=
    X~Exponential(λ)

ExponentialCV :=
    1

PoissonDistribution :=
    X~Poisson(λ)

PoissonCV :=
    1/sqrt(λ)
    for λ>0

BernoulliDistribution :=
    X~Bernoulli(p)

BernoulliCV :=
    sqrt((1-p)/p)
    for p>0
    under ratio-scale coding interpretation

WeibullDistribution :=
    X~Weibull(k,λ)

WeibullCV :=
    sqrt(
        Γ(1+2/k)/Γ(1+1/k)²
        -
        1
    )

WeibullCVScaleIndependence :=
    WeibullCV
    depends_on shape k
    but not scale λ

NormalDistribution :=
    X~N(μ,σ²)

NormalCV :=
    σ/|μ|
    where μ≠0
    and ratio-scale interpretation is valid

SampleCVBias :=
    SampleCV
    may be biased
    for PopulationCV

CVSamplingDistribution :=
    DistributionOfSampleCV
    depends_on parent distribution
    and sample size

BootstrapCV :=
    ObservedSample
    → BootstrapSamples
    → ComputeCVReplicates
    → ApproximateSamplingDistribution

BootstrapCVStandardError :=
    SD(CV*_1,...,CV*_B)

CVConfidenceInterval :=
    PopulationCV
    → IntervalEstimate
    using model-specific,
    asymptotic,
    or bootstrap method

WeightedMean :=
    X_bar_w=Σ_iw_ix_i/Σ_iw_i

WeightedCV :=
    WeightedSD/|WeightedMean|
    under explicit weighting definition

MissingDataCV :=
    Mean
    and StandardDeviation
    computed_on same effective observation set
    unless explicitly defined otherwise

EmptyDatasetCV :=
    Undefined

SingleObservationSampleCV :=
    SampleSDUndefined
    ⇒ SampleCVUndefined

ConstantNonzeroData :=
    StandardDeviation=0
    ∧ Mean≠0
    ⇒ CV=0

AllZeroData :=
    Mean=0
    ∧ StandardDeviation=0
    ⇒ CVUndefined

MixedSignData :=
    PositiveAndNegativeValues
    may yield near-zero mean
    ⇒ FlagCVInstability

CVConstraint :=
    ConstraintOn(
        Mean,
        StandardDeviation,
        MeasurementScale,
        ZeroPoint,
        DataScope,
        Missingness,
        Weighting
    )

CVConsistency :=
    Mean
    ∧ StandardDeviation
    ∧ DataScope
    ∧ MeasurementSemantics
    ∧ WeightingRule
    jointly_compatible

InvalidCoefficientOfVariation :=
    MeanEqualsZero
    ∨ IncompatibleMeasurementScale
    ∨ ArbitraryZeroPoint
    ∨ InconsistentDataScope
    ∨ InvalidStandardDeviation
    ∨ UndocumentedWeighting
    ∨ HiddenMissingnessTreatment

CVValidation :=
    ResolveVariable
    → ResolveVariableType
    → ResolveMeasurementScale
    → ValidateMeaningfulZero
    → ResolveDataScope
    → ResolveObservations
    → ResolveMissingness
    → ResolveWeights
    → ComputeMean
    → ValidateNonzeroMean
    → ComputeStandardDeviation
    → ComputeCV
    → ValidateInterpretation

CVState := {
    Variable,
    DataScope,
    Observations,
    EffectiveCount,
    Mean,
    StandardDeviation,
    CVConvention,
    CVValue,
    PercentageCV,
    MeasurementScale,
    MeasurementUnit,
    MissingnessRule,
    WeightingRule,
    Evidence,
    Confidence,
    Provenance
}

SEMANTIC_EQUIVALENCE(CVA,CVB) :=
    same(VariableSemantics)
    ∧ same(DataScope)
    ∧ same(CVConvention)
    ∧ same(StandardDeviationConvention)
    ∧ same(MissingnessRule)
    ∧ same(WeightingRule)

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

CoreClasses := {
    CoefficientOfVariation,
    PopulationCoefficientOfVariation,
    SampleCoefficientOfVariation,
    RelativeStandardDeviation,
    PercentageCoefficientOfVariation,
    Mean,
    StandardDeviation,
    Variance,
    RatioScale,
    StatisticalVariable,
    StatisticalObservation,
    Dataset,
    Sample,
    Population,
    CVConstraint
}

CoreRelations := {
    computedFrom,
    summarises,
    ratioOf,
    dependsOn,
    hasMean,
    hasStandardDeviation,
    hasConvention,
    compares,
    transformedBy,
    estimatedFrom,
    constrainedBy,
    equivalentTo,
    tracesTo
}

TypedRelations :=
    CoefficientOfVariation --computedFrom--> Observations
    CoefficientOfVariation --summarises--> StatisticalVariable
    CoefficientOfVariation --ratioOf--> StandardDeviation
    CoefficientOfVariation --ratioOf--> Mean
    CoefficientOfVariation --dependsOn--> MeaningfulZeroPoint
    CoefficientOfVariation --compares--> RelativeDispersion
    SampleCoefficientOfVariation --estimatedFrom--> Sample
    CoefficientOfVariation --tracesTo--> Provenance

InferenceRules := {
    Mean≠0
        ∧ ValidStandardDeviation
        ⇒
        AbsoluteCV=StandardDeviation/|Mean|,

    PositiveScaleFactor(a)
        ⇒
        CV(aX)=CV(X),

    Translation(b)
        ⇒
        CV(X+b)
        generally ≠ CV(X),

    Mean=0
        ⇒
        CVUndefined,

    StandardDeviation=0
        ∧ Mean≠0
        ⇒
        CV=0,

    RatioScaleVariable
        ⇒
        CVPotentiallyMeaningful,

    IntervalScaleWithArbitraryZero
        ⇒
        FlagCVInterpretationRisk,

    NearZeroMean
        ⇒
        FlagCVInstability
}

CanonicalCVRepresentation :=
    ParseCVRequest
    → ResolveVariable
    → ResolveDatasetSamplePopulationOrDistribution
    → ResolveVariableTypeAndMeasurementScale
    → ValidateMeaningfulZero
    → ResolveObservations
    → ResolveMissingness
    → ResolveWeights
    → ResolveMean
    → ResolveStandardDeviation
    → ResolveSignedAbsoluteOrPercentageConvention
    → ComputeCV
    → ResolveDistributionalOrSamplingRelationsIfRequired
    → ValidateCV

CVGraph :=
    G=(V,E)

V := {
    CoefficientsOfVariation,
    PopulationCVs,
    SampleCVs,
    RelativeStandardDeviations,
    PercentageCVs,
    Means,
    StandardDeviations,
    Variances,
    Variables,
    Observations,
    Datasets,
    Samples,
    Populations,
    MeasurementScales,
    Evidence,
    ProvenanceNodes
}

E := {
    computedFrom,
    summarises,
    ratioOf,
    dependsOn,
    hasMean,
    hasStandardDeviation,
    hasConvention,
    compares,
    transformedBy,
    estimatedFrom,
    constrainedBy,
    equivalentTo,
    tracesTo
}

CONFIDENCE(CVResolution) :=
    weighted_mean(
        VariableResolution,
        DataScopeResolution,
        MeasurementScaleValidity,
        MeaningfulZeroValidity,
        MeanResolution,
        StandardDeviationResolution,
        ConventionResolution,
        ProvenanceQuality
    )

AI_QUERY_INTERPRETATION :=
    Query
    → DetectCoefficientOfVariationIntent
    → IdentifyVariableAndDataScope
    → ResolveMeasurementScaleAndZeroPoint
    → ResolveMeanAndStandardDeviation
    → IdentifySignedAbsolutePercentageOrRSDConvention
    → IdentifyRequestedComparisonInferenceOrDistributionRelation

AI_REASONING_FLOW :=
    Query
    → ParseCVProblem
    → ResolveDatasetSamplePopulationOrDistribution
    → ResolveVariable
    → ResolveVariableTypeAndMeasurementScale
    → ValidateMeaningfulZero
    → ResolveObservations
    → ResolveMissingValues
    → ResolveWeights
    → ComputeOrResolveMean
    → ValidateMeanNotZeroOrNearZero
    → ComputeOrResolveStandardDeviation
    → SelectCVConvention
    → ComputeCoefficientOfVariation
    → ResolveCrossGroupOrDistributionComparisonIfRequested
    → ValidateCVResult
    → UpdateConfidence
    → PreserveProvenance
    → GenerateExplanation

AI_CONSUMPTION := {
    ParseCoefficientOfVariationEntities,
    ParseTypedRelations,
    ResolveVariables,
    ResolveObservations,
    ResolveDatasets,
    ResolveSamples,
    ResolvePopulations,
    ResolveMeasurementScales,
    ValidateMeaningfulZeroPoints,
    ResolveMissingness,
    ResolveWeights,
    ComputeMeans,
    ComputeStandardDeviations,
    ComputePopulationCVs,
    ComputeSampleCVs,
    ComputeRelativeStandardDeviations,
    ComputePercentageCVs,
    ResolveLognormalCVs,
    ResolveGammaCVs,
    ResolveExponentialCVs,
    ResolvePoissonCVs,
    ResolveWeibullCVs,
    ComputeBootstrapCVDistributions,
    ValidateCVSemantics,
    CompareSemanticEquivalence,
    UpdateConfidence,
    PreserveProvenance,
    GenerateFormalExplanation
}

UPDATE_MODEL :=
    NewObservationScopeMeanSDConventionOrEvidence
    → ValidateInput
    → IdentifyAffectedCVClaims
    → UpdateCVState
    → RecomputeEffectiveObservationSet
    → RecomputeMean
    → RecomputeStandardDeviation
    → RecomputeCoefficientOfVariation
    → ReevaluateInterpretationConstraints
    → RecomputeConfidence
    → PreserveProvenance
    → VersionModel

ObservationUpdate :=
    AddedRemovedOrCorrectedObservation
    ⇒ recompute(
        EffectiveCount,
        Mean,
        StandardDeviation,
        CVValue
    )

ConventionUpdate :=
    ChangedSignedAbsoluteOrPercentageConvention
    ⇒ recompute(
        CVValue,
        PercentageCV,
        SemanticEquivalence
    )

ScaleUpdate :=
    ChangedMeasurementScaleOrUnit
    ⇒ reevaluate(
        MeaningfulZero,
        CVInterpretability,
        CrossDatasetCompatibility
    )

FLOW_HASH_INPUT :=
    canonical(
        ONTOLOGY,
        CoreClasses,
        CoreRelations,
        InferenceRules,
        CoefficientOfVariation,
        CVValidation,
        CVConstraint,
        SEMANTIC_EQUIVALENCE,
        AI_REASONING_FLOW
    )

FLOW_HASH :=
    HASH(FLOW_HASH_INPUT)

OUTPUT_MODEL := {
    CoefficientOfVariationEntityResolution,
    Variable,
    DataScope,
    VariableType,
    MeasurementScale,
    MeaningfulZeroStatus,
    ObservationCount,
    EffectiveObservationCount,
    Mean,
    StandardDeviation,
    CVConvention,
    CVValue,
    PercentageCV,
    RelativeStandardDeviation,
    MissingnessRule,
    WeightingRule,
    DistributionRelation,
    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