Learn R Programming

polycor

The polycor package computes polychoric and polyserial correlations by quick “two-step” methods or ML, optionally with standard errors; tetrachoric and biserial correlations are special cases.

It was originally written by Prof. John Fox, who passed away in November, 2025. I (Duncan Murdoch) have taken over as maintainer in order to keep the package available as R evolves.

Please submit bug reports as Github issues at https://github.com/dmurdoch/polycor/issues.

Installation

You can install polycor from CRAN using:

install.packages("polycor")

You can install the development version of polycor from GitHub with:

# install.packages("pak")
pak::pak("dmurdoch/polycor")

Example

library(mvtnorm)
library(polycor)

set.seed(12345)
data <- rmvnorm(1000, c(0, 0), matrix(c(1, .5, .5, 1), 2, 2))
x <- data[,1]
y <- data[,2]
cor(x, y)  # sample correlation
#> [1] 0.5263698

x <- cut(x, c(-Inf, .75, Inf))
y <- cut(y, c(-Inf, -1, .5, 1.5, Inf))
polychor(x, y)  # 2-step estimate
#> [1] 0.5230474
polychor(x, y, ML=TRUE, std.err=TRUE)  # ML estimate
#> 
#> Polychoric Correlation, ML est. = 0.5231 (0.03819)
#> Test of bivariate normality: Chisquare = 2.739, df = 2, p = 0.2543
#> 
#>   Row Threshold
#>   Threshold Std.Err.
#>      0.7537  0.04403
#> 
#> 
#>   Column Thresholds
#>   Threshold Std.Err.
#> 1   -0.9842  0.04746
#> 2    0.4841  0.04127
#> 3    1.5010  0.06118

Copy Link

Version

Install

install.packages('polycor')

Monthly Downloads

21,011

Version

0.8-2

License

GPL (>= 2)

Issues

Pull Requests

Stars

Forks

Maintainer

Duncan Murdoch

Last Published

December 14th, 2025

Functions in polycor (0.8-2)

print.polycor

Standard Methods for polycor Objects
polychor

Polychoric Correlation
polyserial

Polyserial Correlation
hetcor

Heterogeneous Correlation Matrix