Skip to main content

Spearman Correlation Ontology

Correlation & Regression
Authors: MArk Anthony Higgins - Sky Recursive Ai
© Mark Anthony Higgins 11 October 2025
Revised Date: 23 September 2026
Audio Overview
FULL EXECUTABLE FLOW ALGEBRA — SPEARMAN CORRELATION ONTOLOGY
Kireth Research — Semantic Library
URL: https://kirethresearch.org/booksai-core/ontologies/probability-statistics-ontologies/correlation-regression/spearman-correlation-ontology.html

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

BEGIN_FLOW

SpearmanCorrelation :=
 RankCorrelation
 ∧ MonotonicAssociationMeasure
 ∧ PearsonCorrelationOfRanks
 ∧ NonparametricAssociationStatistic

Population := TargetCollectionOrGeneratingProcess
Sample := {(X_i,Y_i)}_{i=1..n}
VariableX := X
VariableY := Y
RankX := R_X
RankY := R_Y

RankTransformation :=
 RawValues
 → OrderedValues
 → AssignedRanks

RankX_i :=
 Rank(X_i)

RankY_i :=
 Rank(Y_i)

PopulationSpearmanCorrelation :=
 ρ_s
 =
 Corr(
  F_X(X),
  F_Y(Y)
 )
 under continuous-distribution representation

SampleSpearmanCorrelation :=
 r_s
 =
 Corr(
  Rank(X),
  Rank(Y)
 )

PearsonOfRanksRelation :=
 SpearmanCorrelation
 =
 PearsonCorrelation(RankX,RankY)

NoTieShortcut :=
 r_s
 =
 1
 -
 [6Σ_i d_i²]
 /
 [n(n²-1)]

RankDifference :=
 d_i=RankX_i-RankY_i

ShortcutConstraint :=
 NoTieShortcut
 valid_when
 ranks contain no ties
 under standard formulation

TiedRanks :=
 EqualObservedValues
 → EqualAverageRanks
 under common ranking convention

AverageRank :=
 MeanOfOccupiedRankPositions
 assigned_to tied observations

TieCorrection :=
 TiedRanks
 → UsePearsonCorrelationOfRanks
 or exact tie-aware procedure

SpearmanRange :=
 -1≤ρ_s≤1

PositiveSpearmanCorrelation :=
 ρ_s>0

NegativeSpearmanCorrelation :=
 ρ_s<0

ZeroSpearmanCorrelation :=
 ρ_s=0

PerfectPositiveSpearman :=
 ρ_s=1

PerfectNegativeSpearman :=
 ρ_s=-1

SpearmanMagnitude :=
 |ρ_s|

SpearmanDirection :=
 sign(ρ_s)

PerfectPositiveMonotonicOrdering :=
 IdenticalRankOrdering
 ⇒ r_s=1

PerfectNegativeMonotonicOrdering :=
 ReverseRankOrdering
 ⇒ r_s=-1

SpearmanSymmetry :=
 Spearman(X,Y)=Spearman(Y,X)

SelfSpearman :=
 Spearman(X,X)=1
 when variable has nonconstant ranks

UndefinedSpearman :=
 ConstantVariable
 ⇒ RankVariance=0
 ⇒ SpearmanUndefined

MonotonicIncreasingRelationship :=
 X increases
 → Y tends_to increase

MonotonicDecreasingRelationship :=
 X increases
 → Y tends_to decrease

MonotonicAssociationTarget :=
 SpearmanCorrelation
 measures strength_and_direction
 of monotonic association

NonlinearMonotonicRelation :=
 StrongCurvedMonotonicRelationship
 may yield high |ρ_s|
 even when PearsonCorrelation differs

NonMonotonicDependenceConstraint :=
 StrongNonmonotonicDependence
 may yield low SpearmanCorrelation

SpearmanVsPearson :=
 SpearmanUsesRanksAndTargetsMonotonicAssociation
 whereas PearsonUsesRawValuesAndTargetsLinearAssociation

SpearmanVsKendall :=
 SpearmanCorrelatesRanks
 whereas KendallUsesConcordantAndDiscordantPairs

ScaleInvariance :=
 StrictlyMonotonicTransformationOfEitherVariable
 preserves SpearmanMagnitude
 with sign depending_on transformation direction

IncreasingTransformation :=
 StrictlyIncreasingTransform
 → RanksPreserved

DecreasingTransformation :=
 StrictlyDecreasingTransform
 → RanksReversed

LocationScaleRobustness :=
 RankBasedStatistic
 invariant_to many monotonic rescalings

OutlierRobustness :=
 RankTransformation
 generally reduces influence
 of extreme magnitudes
 relative_to PearsonCorrelation

OutlierConstraint :=
 ExtremeRanks
 can still influence SpearmanCorrelation

OrdinalDataRelation :=
 SpearmanCorrelation
 applicable_to ordered variables
 when rank interpretation is meaningful

ContinuousDataRelation :=
 ContinuousVariables
 may be rank-transformed
 for SpearmanCorrelation

BinaryVariableConstraint :=
 HeavyTiesOrBinaryVariables
 require careful interpretation
 and may favour other association measures

IndependenceRelation :=
 Independence
 ⇒ PopulationSpearmanCorrelation=0
 under continuous compatible setting

ZeroSpearmanConstraint :=
 ρ_s=0
 ↛ Independence
 in general

SpearmanDoesNotImplyCausation :=
 SpearmanCorrelation
 ↛ CausalRelationship

Confounding :=
 ThirdVariable
 may induce_or alter
 monotonic association

SimpsonsParadox :=
 AggregateRankAssociation
 may differ_from conditional associations

SamplingDistribution :=
 DistributionOf(r_s)
 under repeated sampling

ExactNullDistribution :=
 PermutationDistributionOfRanks
 under independence
 for small samples_and compatible tie conditions

PermutationTest :=
 NullExchangeability
 → PermuteOneVariableRanks
 → RecomputeSpearman
 → NullDistribution

SpearmanNullHypothesis :=
 H0:ρ_s=0
 or independence_null
 under specified test framework

AlternativeHypothesis := {
 H1:ρ_s≠0,
 H1:ρ_s>0,
 H1:ρ_s<0
}

SpearmanPValue :=
 ObservedSpearmanStatistic
 ∧ NullReferenceDistribution
 ∧ AlternativeDirection
 → PValue

ExactSpearmanPValue :=
 ExactPermutationDistribution
 → TailProbability

AsymptoticSpearmanPValue :=
 LargeSampleApproximation
 → TailProbability

ApproximateTTransformation :=
 t
 =
 r_s sqrt(
  (n-2)/(1-r_s²)
 )
 sometimes_used_as approximation

ApproximationConstraint :=
 TApproximation
 is not universally exact
 for SpearmanCorrelation

BootstrapSpearman :=
 ResamplePairedObservations
 → ComputeSpearmanReplicates
 → ApproximateSamplingDistribution

SpearmanConfidenceInterval :=
 BootstrapInterval
 ∨ FisherLikeApproximation
 ∨ OtherValidatedProcedure

ConfidenceIntervalConstraint :=
 IntervalMethod
 must record assumptions_and approximation

SpearmanPower :=
 AlternativeMonotonicAssociation
 ∧ SampleSize
 ∧ Alpha
 ∧ JointDistribution
 → RejectionProbability

SampleSizePlanning :=
 ExpectedSpearmanCorrelation
 ∧ Alpha
 ∧ DesiredPower
 → RequiredN
 under specified planning model

PartialSpearmanCorrelation :=
 SpearmanOrRankBasedAssociation
 adjusted_for control variables
 under specified method

RankResidualMethod :=
 RankVariables
 → RegressRanksOnControls
 → CorrelateResiduals

PartialSpearmanConstraint :=
 MultipleDefinitionsExist
 → MethodMustBeExplicit

SpearmanCorrelationMatrix :=
 MatrixOfPairwiseSpearmanCorrelations

MatrixSymmetry :=
 R_s=R_s^T

MatrixDiagonal :=
 diag(R_s)=1
 for nonconstant variables

PositiveSemidefiniteRelation :=
 PearsonCorrelationMatrixOfCommonRankVectors
 is positive semidefinite

MissingDataSpearman :=
 MissingPairs
 → PairwiseCompleteOrModelBasedHandling

PairwiseCompleteSpearman :=
 ComputeEachVariablePair
 using available paired observations

ListwiseCompleteSpearman :=
 UseRowsCompleteAcrossAllSelectedVariables

MissingDataConstraint :=
 MissingnessMechanism
 may bias naive rank correlation

WeightedSpearman :=
 WeightedRankAssociation
 under explicitly defined weighting method

WeightedSpearmanConstraint :=
 NoSingleUniversalWeightedSpearmanDefinition
 → FormulaMustBeSpecified

SurveySpearman :=
 ComplexSamplingDesign
 → DesignAwareRankAssociationAndVariance

ClusteredSpearman :=
 ClusterDependence
 → ClusterAwareUncertainty

RepeatedMeasuresSpearman :=
 WithinSubjectDependence
 requires appropriate repeated-measures association framework

TimeSeriesSpearman :=
 SerialDependence
 → RankAssociationWithDependenceAwareInference

LaggedSpearman :=
 Spearman(X_t,Y_(t-k))

CopulaRelation :=
 For continuous variables
 SpearmanRho
 is functional_of copula

CopulaSpearmanFormula :=
 ρ_s
 =
 12∫∫[
  C(u,v)-uv
 ]dudv

AlternativeCopulaFormula :=
 ρ_s
 =
 12E[UV]-3
 where U=F_X(X), V=F_Y(Y)

ConcordanceRelation :=
 SpearmanRho
 is measure_of concordance
 for continuous distributions

MeasurementError :=
 NoiseCanAlterRanks
 → AttenuateOrDistortSpearmanAssociation

RangeRestriction :=
 RestrictedObservedRange
 may alter rank association

Discretisation :=
 ContinuousVariable
 → CategoriesOrRoundedValues
 → Ties
 → ChangedSpearmanProperties

RankingPrecision :=
 MeasurementResolution
 affects tie frequency

TieFrequency :=
 MoreTies
 → LessDistinctRankInformation

SpearmanEffectSize :=
 ρ_s
 or r_s
 as monotonic association magnitude

EffectSizeInterpretationConstraint :=
 LabelsSuchAsWeakModerateStrong
 are context-dependent
 not universal thresholds

Reporting :=
 Report(
  SpearmanCorrelation,
  SampleSize,
  ConfidenceInterval,
  PValueIfRelevant,
  TieHandling,
  MissingDataHandling,
  VariableDefinitions,
  SamplingDesign
 )

SpearmanCorrelationConstraint :=
 ConstraintOn(
  VariableX,
  VariableY,
  RankDefinition,
  TieHandling,
  Population,
  SamplingDesign,
  DependenceStructure,
  MissingDataMethod
 )

SpearmanCorrelationConsistency :=
 Variables
 ∧ RankingMethod
 ∧ TieHandling
 ∧ SamplingDesign
 ∧ InferenceMethod
 jointly_compatible

InvalidSpearmanCorrelation :=
 UndefinedVariable
 ∨ ConstantRankVariable
 ∨ InvalidPairing
 ∨ InconsistentTieHandling
 ∨ InvalidNullReference
 ∨ IgnoredDependence
 ∨ UnsupportedCausalInterpretation

SpearmanCorrelationValidation :=
 ResolvePopulationAndSample
 → ResolveVariableXAndVariableY
 → ValidatePairing
 → ResolveRankTransformation
 → ResolveTieHandling
 → ComputeRanks
 → ComputePearsonCorrelationOfRanks
 → ResolveMagnitudeAndDirection
 → QuantifySamplingUncertainty
 → ResolvePValueIfRequested
 → ValidateSamplingDesignAndDependence
 → ValidateMissingDataHandling
 → ValidateInterpretation
 → ValidateResult

SpearmanCorrelationState := {
 Population,
 Sample,
 VariableX,
 VariableY,
 RankX,
 RankY,
 TieHandling,
 SpearmanCorrelationEstimate,
 CorrelationMagnitude,
 CorrelationDirection,
 SampleSize,
 NullDistribution,
 ConfidenceInterval,
 PValue,
 SamplingDesign,
 DependenceStructure,
 MissingDataMethod,
 Evidence,
 Confidence,
 Provenance
}

SEMANTIC_EQUIVALENCE(SpearmanA,SpearmanB) :=
 same(VariableSemantics)
 ∧ same(PairedObservations)
 ∧ same(RankOrdering)
 ∧ same(TieHandling)
 ∧ same(SamplingDesign)
 ∧ same(InferenceFramework)
 ∧ same(MissingDataFramework)

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

CoreClasses := {
 SpearmanCorrelation,
 PopulationSpearmanCorrelation,
 SampleSpearmanCorrelation,
 RankCorrelation,
 Rank,
 RankDifference,
 TiedRank,
 MonotonicAssociation,
 PositiveSpearmanCorrelation,
 NegativeSpearmanCorrelation,
 ZeroSpearmanCorrelation,
 PerfectSpearmanCorrelation,
 SpearmanTest,
 PermutationDistribution,
 SpearmanConfidenceInterval,
 PartialSpearmanCorrelation,
 SpearmanCorrelationMatrix
}

CoreRelations := {
 correlatesWith,
 computedFrom,
 ranks,
 hasRank,
 hasRankDifference,
 hasMagnitude,
 hasDirection,
 hasTieHandling,
 hasSamplingDistribution,
 testedBy,
 adjustedFor,
 representedBy,
 affectedBy,
 constrainedBy,
 equivalentTo,
 tracesTo
}

TypedRelations :=
 SpearmanCorrelation --correlatesWith--> VariablePair
 SampleSpearmanCorrelation --computedFrom--> Sample
 RankTransformation --ranks--> Variable
 Observation --hasRank--> Rank
 PairedObservation --hasRankDifference--> RankDifference
 SpearmanCorrelation --hasMagnitude--> CorrelationMagnitude
 SpearmanCorrelation --hasDirection--> CorrelationDirection
 SpearmanCorrelation --hasTieHandling--> TieHandlingMethod
 SampleSpearmanCorrelation --hasSamplingDistribution--> SamplingDistribution
 SpearmanCorrelation --testedBy--> SpearmanTest
 PartialSpearmanCorrelation --adjustedFor--> ControlVariable
 SpearmanCorrelation --representedBy--> SpearmanCorrelationMatrix
 SpearmanCorrelation --affectedBy--> MissingData
 SpearmanCorrelation --tracesTo--> Provenance

InferenceRules := {
 RankX ∧ RankY
  ⇒ SpearmanCorrelation=PearsonCorrelation(RankX,RankY),

 NoTies
  ⇒ SpearmanCorrelation=1-[6Σd_i²]/[n(n²-1)],

 IdenticalRankOrdering
  ⇒ SpearmanCorrelation=1,

 ReverseRankOrdering
  ⇒ SpearmanCorrelation=-1,

 Independence
  ⇒ PopulationSpearmanCorrelation=0
  under compatible continuous setting,

 SpearmanCorrelation=0
  ↛ Independence,

 StrictlyIncreasingTransformations
  ⇒ SpearmanCorrelationPreserved,

 UnsupportedCausalAssumptions
  ⇒ FlagCausalInterpretationInvalid
}

CanonicalSpearmanCorrelationRepresentation :=
 ParseSpearmanCorrelationRequest
 → ResolvePopulationSampleAndVariables
 → ValidatePairing
 → ResolveRankingMethod
 → ResolveTieHandling
 → ComputeRanks
 → ComputeRankDifferencesIfRequired
 → ComputeSpearmanCorrelation
 → ResolveMagnitudeAndDirection
 → ResolveNullDistribution
 → ComputeConfidenceIntervalAndPValueIfRequested
 → DiagnoseTiesMissingnessAndDependence
 → ValidateSamplingDesign
 → ValidateSpearmanCorrelation

SpearmanCorrelationGraph := G=(V,E)

V := {
 SpearmanCorrelations,
 PopulationSpearmanCorrelations,
 SampleSpearmanCorrelations,
 RankCorrelations,
 Ranks,
 RankDifferences,
 TiedRanks,
 MonotonicAssociations,
 PositiveSpearmanCorrelations,
 NegativeSpearmanCorrelations,
 ZeroSpearmanCorrelations,
 PerfectSpearmanCorrelations,
 SpearmanTests,
 PermutationDistributions,
 ConfidenceIntervals,
 PartialSpearmanCorrelations,
 SpearmanCorrelationMatrices,
 Variables,
 Samples,
 Populations,
 Evidence,
 ProvenanceNodes
}

E := {
 correlatesWith,
 computedFrom,
 ranks,
 hasRank,
 hasRankDifference,
 hasMagnitude,
 hasDirection,
 hasTieHandling,
 hasSamplingDistribution,
 testedBy,
 adjustedFor,
 representedBy,
 affectedBy,
 constrainedBy,
 equivalentTo,
 tracesTo
}

CONFIDENCE(SpearmanCorrelationResolution) :=
 weighted_mean(
  VariableResolution,
  PairingValidity,
  RankingValidity,
  TieHandlingValidity,
  SamplingDesignValidity,
  CorrelationCalculationValidity,
  InferenceValidity,
  MissingDataValidity,
  InterpretationValidity,
  ProvenanceQuality
 )

AI_QUERY_INTERPRETATION :=
 Query
 → DetectSpearmanCorrelationIntent
 → IdentifyVariablesPopulationAndSample
 → ResolveMonotonicRankPartialMatrixOrTestingContext
 → IdentifyRequestedCoefficientDirectionMagnitudeConfidenceIntervalOrPValue
 → ResolveTieHandlingSamplingDesignAndMissingDataContext

AI_REASONING_FLOW :=
 Query
 → ParseSpearmanCorrelationProblem
 → ResolvePopulationAndSample
 → ResolveVariableXAndVariableY
 → ValidatePairing
 → ResolveRankingMethod
 → DetectAndResolveTies
 → ComputeRanks
 → ComputeSpearmanCorrelation
 → ResolveDirectionAndMagnitude
 → ResolveExactPermutationOrAsymptoticInference
 → ComputeConfidenceIntervalAndPValueIfRequested
 → DiagnoseMissingnessDependenceAndRangeRestriction
 → ValidateSamplingDesign
 → ValidateNonCausalInterpretation
 → UpdateConfidence
 → PreserveProvenance
 → GenerateExplanation

AI_CONSUMPTION := {
 ParseSpearmanCorrelationEntities,
 ParseTypedRelations,
 ResolvePopulations,
 ResolveSamples,
 ResolveVariables,
 ValidatePairing,
 ComputeRanks,
 DetectTies,
 ResolveTieHandling,
 ComputeRankDifferences,
 ComputeSpearmanCorrelations,
 ComputeCorrelationMagnitudes,
 ResolveCorrelationDirections,
 ConstructSpearmanCorrelationMatrices,
 ComputePartialSpearmanCorrelations,
 ResolvePermutationNullDistributions,
 ComputeExactSpearmanPValues,
 ComputeAsymptoticSpearmanPValues,
 ComputeSpearmanConfidenceIntervals,
 ExecuteBootstrapSpearmanInference,
 ComputeSpearmanPower,
 SolveSpearmanSampleSizes,
 ResolveWeightedSpearmanMethods,
 ResolveSurveySpearmanInference,
 DiagnoseMissingData,
 DiagnoseDependence,
 ValidateSpearmanCorrelationSemantics,
 CompareSemanticEquivalence,
 UpdateConfidence,
 PreserveProvenance,
 GenerateFormalExplanation
}

UPDATE_MODEL :=
 NewDataVariablesRanksDesignOrEvidence
 → ValidateInput
 → IdentifyAffectedSpearmanClaims
 → UpdateSpearmanCorrelationState
 → RecomputeRanks
 → ReevaluateTieHandling
 → RecomputeSpearmanCorrelation
 → RecomputeSamplingDistributionAndUncertainty
 → RecomputePValueIfRequired
 → RerunMissingDataAndDependenceDiagnostics
 → RecomputeConfidence
 → PreserveProvenance
 → VersionModel

DataUpdate :=
 ChangedObservedData
 ⇒ recompute(
  RankX,
  RankY,
  TieHandling,
  SpearmanCorrelationEstimate,
  ConfidenceInterval,
  PValue
 )

RankingUpdate :=
 ChangedRankingOrTieConvention
 ⇒ recompute(
  Ranks,
  RankDifferences,
  SpearmanCorrelationEstimate,
  SemanticEquivalence
 )

DesignUpdate :=
 ChangedSamplingOrDependenceDesign
 ⇒ reevaluate(
  NullDistribution,
  ConfidenceInterval,
  PValue,
  InferenceValidity
 )

FLOW_HASH_INPUT :=
 canonical(
  ONTOLOGY,
  CoreClasses,
  CoreRelations,
  InferenceRules,
  SpearmanCorrelation,
  SpearmanCorrelationValidation,
  SpearmanCorrelationConstraint,
  SEMANTIC_EQUIVALENCE,
  AI_REASONING_FLOW
 )

FLOW_HASH := HASH(FLOW_HASH_INPUT)

OUTPUT_MODEL := {
 SpearmanCorrelationEntityResolution,
 Population,
 Sample,
 VariableX,
 VariableY,
 RankX,
 RankY,
 TieHandling,
 SpearmanCorrelationEstimate,
 CorrelationMagnitude,
 CorrelationDirection,
 SampleSize,
 NullDistribution,
 ConfidenceInterval,
 PValue,
 SamplingDesign,
 DependenceStructure,
 MissingDataMethod,
 InterpretationStatus,
 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