# Rank association and dependence

Six equally likely invented states have X = (-3,-2,-1,1,2,3) and
Y = (1,0,0,0,0,1). This is a complete constructed population, not sampled SSDs.
Y is determined by whether abs(X) equals 3.

Assign average ranks to ties. Both rank means are 7/2. The exact sum of
centered rank products is 0; the squared sums are 35/2 and 12. Their nonzero
product makes the Spearman coefficient exactly 0. Yet P(Y=1) = 1/3 and
P(Y=1 | X=3) = 1, disproving independence in this population.

The example refutes a general implication, not the measured SMART correlations
in Han et al. It does not establish a useful SSD predictor, validation accuracy,
causality or statistical significance. No raw fleet data is used or redistributed.

## Reproduce

Python 3 standard library only. Keep these four files together:

    python3 -B model.py --check
    python3 -B test_model.py
    python3 -B -O test_model.py

Regenerate results.json with python3 -B model.py. Its generator hash binds the
calculation. Tests use exact fractions, independent pair-count ranks, all 720
row permutations, a standard-library correlation cross-check and nonzero
controls. These are arithmetic checks, not independent empirical samples.

## Primary sources

Read 2026-11-04. No paper text, figures or datasets are republished.

- Han et al., An In-Depth Study of Correlated Failures in Production SSD-Based
  Data Centers, FAST 2021, pp. 417-429, sections 3 and 4.3:
  https://www.usenix.org/system/files/fast21-han.pdf
  Section 3's zero-correlation independence implication is too strong.
- SciPy spearmanr: monotonic rank association and constant-input behavior:
  https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.spearmanr.html
- SciPy rankdata: average ranks for tied values:
  https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.rankdata.html
- R stats cor: Pearson correlation of ranked observations:
  https://stat.ethz.ch/R-manual/R-devel/library/stats/html/cor.html

The arithmetic above is Hesela's illustrative construction, not a numerical
finding attributed to those sources. The existing article and corpus record
separate this population from the reported field measurements.
