Skip to contents

Maximum rank correlation (Han 1987), \(b_{MRC} = \arg\max_b [n(n-1)]^{-1}\sum_i\sum_{j\ne i} 1\{Y_i > Y_j\}1\{X_i'b > X_j'b\}\), and the Cavanagh-Sherman variant, which replaces \(1\{Y_i > Y_j\}\) with an increasing \(M(Y_i)\).

Usage

morie_rank_index(x, y, variant = "mrc", M = NULL)

Arguments

x

numeric matrix of covariates.

y

response; only its ordering is used.

variant

"mrc" or "cs".

M

increasing function for the CS variant; ranks when NULL.

Value

list: beta, objective, variant, requires_bandwidth, asymptotically_efficient, rate_exponent, inference, se, n, d, method.

Details

The identifying observation is an ordering, not a moment: if G is nondecreasing and \(Y - G(X'\beta)\) is independent of X, then \(X_i'\beta > X_j'\beta\) implies \(P(Y_i > Y_j) > P(Y_j > Y_i)\). G never appears. That is the appeal and the cost:

  • no bandwidth – no kernel, no smoothing parameter, no nonparametric pre-estimate of G;

  • not asymptotically efficient, as the book states plainly. Root-n consistent and asymptotically normal, but it does not attain \(\Omega_{SI}\);

  • inference is awkward – the asymptotic covariance is hard to implement, so the practical route is the bootstrap (Subbotin 2008). No analytic standard error is returned, because a plausible-looking one would be the wrong thing to trust.

At d = 2 the objective is PIECEWISE CONSTANT in the single free coefficient t, flipping exactly at \(t = -(x_{1i} - x_{1j})/(x_{2i} - x_{2j})\). Sorting those \(n^2\) breakpoints and accumulating costs \(O(n^2\log n)\) ONCE, against \(O(n^2)\) per grid point for a naive scan – at n = 300 the difference between minutes and milliseconds. Mirrors morie.fn.hrzrank.

References

Horowitz, Sec. 2.5.5; Han (1987), Sherman (1993), Cavanagh and Sherman (1998), Subbotin (2008).

Examples

set.seed(1)
x <- cbind(rnorm(80), rnorm(80))
morie_rank_index(x, tanh(x %*% c(1, -0.6)) + rnorm(80) * 0.3)$beta
#> [1]  1.00 -0.62