Skip to contents

Recovers latent stimulus positions from perceptual placement data by estimating respondent-specific intercepts \(a_i\) and slopes \(b_i\) in the model $$z_{ij} = a_i + b_i \hat{z}_j + \epsilon_{ij}.$$ The stimulus positions are Aldrich and McKelvey's least-squares solution: each respondent's placements are mapped onto the common scale by the best affine transformation, and \(\hat z\) minimises the total squared error \(\sum_i \lVert X_i c_i - \hat z \rVert^2\), \(X_i = [1, z_i]\), subject to \(\hat z^\top \hat z = 1\) and \(1^\top \hat z = 0\). Concentrating out \(c_i\) leaves \(\hat z^\top \sum_i (I - P_i) \hat z\) with \(P_i\) the projection onto the columns of \(X_i\), so \(\hat z\) is the eigenvector of \(\sum_i (I - P_i)\) with the smallest eigenvalue orthogonal to the constant. Respondents with a missing placement, or who place every stimulus at the same point, are left out, as basicspace::aldmck does. The closed form is evaluated natively; on integer placement scales it equals basicspace::aldmck's stimuli (standardised) to rounding (\(< 10^{-15}\)). basicspace truncates every placement to an integer (as.integer) before scaling, so on non-integer data the two differ and this function uses the values as given. Positions are standardised to mean 0 and sd 1 and the first stimulus is put on the left. The respondent intercepts and slopes are the per-respondent least squares regression of the reported placements on those positions, so they are defined for every respondent with at least two placements (basicspace itself reports them only for respondents it scales against a self-placement, which this function does not take).

Usage

morie_spatial_voting_aldrich_mckelvey(Z, n_dims = 1L)

Arguments

Z

A respondent-by-stimulus numeric matrix of perceptual placements. NA entries are treated as missing.

n_dims

Number of latent dimensions (must be 1).

Value

A list with components zhat (stimulus positions), alpha, beta, weights, iterations (NA, the solution is closed form), converged, and engine (always "native").

References

Aldrich, J. H. and McKelvey, R. D. (1977). "A Method of Scaling with Applications to the 1968 and 1972 Presidential Elections." American Political Science Review, 71(1), 111-130.

Poole, K. T. (1998). "Recovering a Basic Space from a Set of Issue Scales." American Journal of Political Science, 42(3), 954-993.

Armstrong, D. A., Bakker, R., Carroll, R., Hare, C., Poole, K. T., and Rosenthal, H. (2021). Analyzing Spatial Models of Choice and Judgment, 2nd ed. Chapman & Hall/CRC.

Examples

set.seed(1)
truth <- c(-1.2, -0.4, 0.1, 0.9, 1.5)
Z <- t(sapply(1:40, function(i) 4 + rnorm(1, 0, 0.3) +
  runif(1, 0.6, 1.4) * truth + rnorm(5, 0, 0.3)))
fit <- morie_spatial_voting_aldrich_mckelvey(Z)
round(fit$zhat, 2)
#> [1] -1.28 -0.59 -0.05  0.67  1.25
round((truth - mean(truth)) / sd(truth), 2)
#> [1] -1.30 -0.55 -0.08  0.68  1.24