Skip to content

Polychoric and tetrachoric correlation

Polychoric correlation estimates latent Gaussian dependence behind ordered categories; tetrachoric is its binary case. A threshold example separates latent rho 0.7071 from binary phi 0.5.

Polychoric correlation estimates the correlation between two unobserved continuous variables, assuming a bivariate normal distribution whose thresholds generate the observed ordered categories. Tetrachoric correlation is the special case in which both observed variables are binary. For a quant analysing ordered risk assessments or investor survey responses, the distinction matters: correlation between the category codes answers a different question from correlation between the assumed latent variables.
Factor analysis of ordinal responses is one application. A latent-variable interpretation must be meaningful for the measurement process; assigning numbers to unordered labels does not create an ordered scale.

What the thresholds say

Let Z1,Z2Z_1,Z_2 have a standard bivariate normal distribution, with correlation ρ\rho. For ordered categories i=1,…,ri=1,\ldots,r and j=1,…,cj=1,\ldots,c, define
X=iwhen ai−1<Z1≤ai,Y=jwhen bj−1<Z2≤bj.X=i\quad\text{when }a_{i-1}<Z_1\le a_i, \qquad Y=j\quad\text{when }b_{j-1}<Z_2\le b_j.
The cutpoints increase strictly, with a0=b0=−∞a_0=b_0=-\infty and ar=bc=+∞a_r=b_c=+\infty. Fixing both latent means to zero and variances to one sets their location and scale: the category table cannot identify arbitrary latent units. The target ρ\rho is Pearson correlation on this stipulated latent scale, rather than on the observed category codes.

Each cell is a normal rectangle probability:

pij(ρ,a,b)=Φ2(ai,bj;ρ)−Φ2(ai−1,bj;ρ)−Φ2(ai,bj−1;ρ)+Φ2(ai−1,bj−1;ρ),\begin{aligned} p_{ij}(\rho,a,b) ={}&\Phi_2(a_i,b_j;\rho)-\Phi_2(a_{i-1},b_j;\rho)\\ &-\Phi_2(a_i,b_{j-1};\rho)+\Phi_2(a_{i-1},b_{j-1};\rho), \end{aligned}

where Φ2\Phi_2 is the bivariate standard normal cumulative distribution function. These probabilities must be nonnegative and sum to one. Changing a category's numerical label while preserving its order leaves this model unchanged; changing the category boundaries changes the information observed.

The model and its identification are set out in Welz, Mair and Alfons, §3.

A correlation of 0.5 can imply a latent 0.7071

Stipulate ρ=0.5≈0.7071\rho=\sqrt{0.5}\approx0.7071 and cut both latent variables at zero:

X=1{Z1>0},Y=1{Z2>0}.X=\mathbf{1}_{\{Z_1>0\}},\qquad Y=\mathbf{1}_{\{Z_2>0\}}.

Both indicators have probability 1/21/2 of being 1. In this balanced Gaussian case, the upper-right quadrant probability is

q=P(X=1,Y=1)=14+arcsin⁡(ρ)2π=38=0.375.q=\mathbb{P}(X=1,Y=1) =\frac14+\frac{\arcsin(\rho)}{2\pi} =\frac38=0.375.
Symmetry gives the following synthetic population table, alongside expected counts for N=400N=400 independent pairs. These are model expectations, not a simulated or empirical dataset.
Observed pairProbabilityExpected count
X=0,Y=0X=0,Y=00.375150
X=0,Y=1X=0,Y=10.12550
X=1,Y=0X=1,Y=00.12550
X=1,Y=1X=1,Y=10.375150
Total1.000400
The binary Pearson coefficient, also called phi, is
Corr(X,Y)=q−(1/2)(1/2)(1/2)(1/2)(1/2)(1/2)=0.375−0.250.25=0.5.\text{Corr}(X,Y) =\frac{q-(1/2)(1/2)}{\sqrt{(1/2)(1/2)(1/2)(1/2)}} =\frac{0.375-0.25}{0.25}=0.5.

The indicators retain the signs of Z1Z_1 and Z2Z_2 but discard their distances from zero. Their correlation of 0.5 is a correct description of the binary outcomes. Under the stated threshold model, the latent correlation is 0.7071.

Synthetic standard bivariate normal model with latent correlation 0.7071 cut at zero on both axes. Matching-sign quadrants each have probability 37.5%, opposing-sign quadrants 12.5%. Expected counts at N equals 400 are 150, 50, 50, 150; binary Pearson correlation is 0.5000.
Synthetic standard bivariate normal model with latent correlation 0.7071 cut at zero on both axes. Matching-sign quadrants each have probability 37.5%, opposing-sign quadrants 12.5%. Expected counts at N equals 400 are 150, 50, 50, 150; binary Pearson correlation is 0.5000.
The same stipulated Gaussian model produces two different correlation coefficients. Contours show equal latent density; table counts are expectations for 400 independent pairs.

Combining the two displayed equations yields

ϕ=2πarcsin⁡(ρ),ρ=sin⁡(πϕ2).\phi=\frac{2}{\pi}\arcsin(\rho), \qquad \rho=\sin\left(\frac{\pi\phi}{2}\right).
This shortcut requires both zero thresholds and the Gaussian model. Unequal category frequencies require their own cutpoints and rectangle probabilities. In credit modelling, the same distinction separates default-indicator correlation from latent credit-quality correlation; the balanced 50% illustration above is not a default-rate calibration.
For the covariance arithmetic behind phi, Expectation, Variance and Covariance develops the calculation from probability weights (free signed-in account required; public preview available).

From a sample table to an estimate

For observed counts nijn_{ij}, maximum likelihood estimation maximises
ℓ(ρ,a,b)=∑i=1r∑j=1cnijlog⁡pij(ρ,a,b),\ell(\rho,a,b)=\sum_{i=1}^{r}\sum_{j=1}^{c}n_{ij}\log p_{ij}(\rho,a,b),

up to a constant. Full ML estimates the thresholds and correlation together. A common two-step method first obtains marginal cuts, for example

a^i=Φ−1 ⁣(∑k=1i∑j=1cnkjN),\widehat a_i=\Phi^{-1}\!\left(\frac{\sum_{k=1}^{i}\sum_{j=1}^{c}n_{kj}}{N}\right),

then holds the cuts fixed while numerically optimising over ρ\rho. Here Φ−1\Phi^{-1} is the standard normal quantile function. In the balanced example, each cut is Φ−1(0.5)=0\Phi^{-1}(0.5)=0. If the expected counts above were instead an actual observed table, both fitting approaches would return approximately 0.7071.

The official polycor manual, “polychor”, documents both estimators. It also states that its two-step standard error treats estimated thresholds as fixed; that uncertainty calculation differs from joint ML's parameter covariance. Report the method, sample size and uncertainty alongside the coefficient. The example's exact population probabilities do not imply that a sample estimate has no sampling error.

A fitted number is conditional on the model

A strictly positive two-by-two table has three independent proportions; the tetrachoric model has two cutpoints and one correlation. It is exactly identified. A perfect fit to that table therefore supplies no spare restriction with which to validate latent normality. More ordered categories can supply restrictions to assess fit, but cannot reveal the full unobserved distribution without assumptions. If the latent joint law is not Gaussian, the fitted coefficient need not equal its actual Pearson correlation. A fitted latent correlation is not a causal effect.

Sparse cells can make estimation unstable; extreme tables can put the optimum at a singular correlation boundary. A numerical cap below ∣ρ∣=1|\rho|=1 is a computation safeguard, not evidence that the estimate is precise. A constant variable provides no usable correlation information. Any adjustment to zero counts must be reported because it changes the fitted table.

Across many variables, separately fitted pairwise correlations may fail to form a positive semidefinite matrix. The Stata tetrachoric manual discusses both zero-count adjustments and matrix repair. Such repair changes the estimates; it does not establish a valid common latent model.
Finally, polyserial correlation concerns one continuous and one ordinal variable. It is a different measurement setup from the two ordinal variables used for polychoric correlation.

Sources

Last updated
  • ordinal data
  • latent variables
  • correlation
  • econometrics
  • threshold models
← Back to the glossaryBack to top ↑