amscale: Aldrich-McKlevey Scaling

View source: R/amscale.R

amscaleR Documentation

Aldrich-McKlevey Scaling

Description

Performs Aldrich-McKlevey's (1977) scaling method for perceptual data. The function will automatically filter out missing data.

Usage

amscale(
  stim_placements,
  self_placements = NULL,
  compute_respondent_variables = TRUE,
  polarity = NULL,
  method = "matrix",
  verbose = FALSE
)

Arguments

stim_placements

A data.frame or matrix containing numeric values of respondent placements of stimuli, with stimuli on columns and respondents on rows.

self_placements

An optional numeric vector containing respondent self-placements. If provided, must have same number of elements as stim_placements has rows.

compute_respondent_variables

Whether to compute individual respondent displacement parameters, defaults to TRUE. Ignored and treated as if TRUE if self_placements is provided.

polarity

An optional integer giving the column index of a stimulus that you wish to have a negative value. All stimuli and respondent self-placements will also be rescaled accordingly.

method

Either "matrix" or "QR". See details.

verbose

Whether to print diagnostic messages specific to the function while running. Defaults to FALSE.

Details

Aldrich-McKelvey scaling takes a matrix of respondent placements of some stimuli (typically parties and/or candidates) on some scale (typically ideological dimensions) and estimates the positions of the stimuli on that scale. Unlike simply taking the mean, this process has some robustness to rationalisation bias, where respondents distort the scale in line with their own ideological preferences (see Bølstad 2020).

This function implements two versions of Aldrich-McKelvey scaling. First method="matrix" implements the canonical version. Second, method="QR" implements a version using QR decomposition, which eliminates the need to drop some respondents (see Swatton 2021), but can be slower to compute.

Where respondent self-placements are provided, respondent ideal points on the same scale can be estimated, through first estimating individual respondent distortion parameters. Where not provided, these distortion parameters can still be estimated, but this can be skipped by setting compute_respondent_variables=FALSE.

Value

An object of class "amscale", containing the following elements:

stimuli Double vector containing scaled stimuli estimates.
respondent If compute_respondent_variables was not NULL or if self_placements was provided, a data.frame with the same number of rows as the input containing respondent displacement intercepts and weights. If self_placements was provided, additionally contains estimated respondent ideal points.
n_input The number of respondents in the initial input.
n_used The number of respondents used for scaling the stimuli in the model after filtering for missing data.
n_filtered The number of respondents filtered out due to missing data.
n_dropped The number of respondents dropped to enable scaling. Will always be 0 if method="QR".
n_stim The number of stimuli scaled in the model.
fit The adjusted fit statistic proposed in Aldrich and McKelvey's paper (1977) for the model.

References

\insertRef

aldrich1977psmisc

\insertRef

poole2016psmisc

\insertRef

bolstad2020capturingpsmisc

\insertRef

swatton2021psmisc


philswatton/psmisc documentation built on June 11, 2025, 1:13 p.m.