Hoff 2002 - Likelihood Estimation and Procrustes MCMC
Summary
The log-likelihood is concave in but not in , so MLE needs a good start (MDS on path-length distances). Positions are identified only up to rotation, reflection and translation; inference is on Procrustes-aligned configurations in a Metropolis-Hastings chain.
Overview
Unlike models, the conditional-independence likelihood is a product of Bernoullis, so ML and Bayes are practical.
Main Content
Log-likelihood (eq. 4)
, with a function of .
Concavity and non-identifiability
(a) The log-likelihood is strictly concave in . For the semiparametric model with constrained to be a symmetric positive matrix satisfying the triangle inequality, the parameter space is convex and is affine, so there is a unique maximiser (but is confounded with ). (b) For the distance or projection model is not affine, so the log-likelihood is not generally concave in . (c) For any latent matrix , for equivalent to under reflection, rotation or translation (distance model); the projection model is invariant under rotation and reflection only.
Resolution: work with the equivalence class (a configuration) and a Procrustes representative.
Procrustes transformation
For a reference and positions , over rotations/reflections ; for centred matrices (Sibson 1979). Take (the MLE centred at the origin).
Sampling procedure (Sec. 3)
- Find an MLE centred at origin by direct maximisation (start from classical MDS of ad hoc dissimilarities, e.g. Euclidean distance between rows/columns of or average directed geodesic length).
- Using as starting value, run a Markov chain: (a) sample a proposal , symmetric; (b) accept with probability , else ; (c) store , the Procrustes transform of toward (the paper prints the minimand with index , apparently a typo).
- Update and with a Metropolis-Hastings algorithm. For the projection model, only the alignment changes: ranges over rotations and reflections only (no translation).
Priors in the paper: diffuse independent on and the components of (monk data); exponential with mean 2 for in the Florentine example to keep predicted probabilities from reaching 0/1.
Examples
Rotation invariance and Procrustes alignment (numerical check)
Setup: 12 actors in 2-D with ; rotate and translate ; the log-likelihood is unchanged (-82.899 both) and Procrustes alignment to the original recovers it with maximum error .
import numpy as np
def loglik(Z, alpha, Y):
D = np.linalg.norm(Z[:, None] - Z[None], axis=2); eta = alpha - D
m = ~np.eye(len(Z), dtype=bool); return np.sum(Y[m]*eta[m] - np.log1p(np.exp(eta[m])))
def procrustes(Z, Z0): # align Z to Z0 over orthogonal T (after centring)
Zc, Z0c = Z - Z.mean(0), Z0 - Z0.mean(0)
U, s, Vt = np.linalg.svd(Z0c.T @ Zc); return Zc @ (Vt.T @ U.T)Use in PyMC: post-process draws of Z with procrustes(draw, Z_ref) before summarising or plotting (E21: “Hoff latent space + Procrustes”).
Connections
Positions’ posterior is plotted per actor in Hoff 2002 - Monks Florentine Families and Classroom Examples. Related identification issue: label switching in mixtures and SBMs (Network Outcome Models - Stochastic Block Models and Network Checks).