Skip to contents

Binary choice of x over status_quo by a voter at ideal_point (both default to the origin) with quadratic utility \(-\beta\|v - z\|^2\) and utility-difference noise: LogitVote, ProbitVote, CauchyVote give \(F(U(x) - U(s))\). NormalVote is the NOMINATE Gaussian-utility probit \(\Phi(\beta e^{-w^2 d_x^2/2} - \beta e^{-w^2 d_s^2/2})\) (Poole and Rosenthal 1997). BoltzmannVote gives softmax probabilities \(e^{-d_j^2/T}/\sum_k e^{-d_k^2/T}\) over alternatives (rows of x; status_quo appended when given or when x is one point). MixedLogitVote averages the logit probability over \(\beta_r \sim N(\beta, \sigma^2)\) Philox draws (Train 2009). ProximityVote is 1, 0.5 or 0 as x is nearer, equidistant or farther than status_quo in the Minkowski p-norm. QuadUtility is \(-(x - v)^\top A (x - v)\). MedianVoter2d is the Plott total-median test: the exact Tukey depth of a point among the ideal points (rows of x) and whether it is at least \(n/2\). UtilityMax picks the alternative with the largest quadratic, linear or Gaussian utility (1-based index). VoteTrading and VoteTrade2d report the number of Riker-Brams trades (VoteTradingRikerBrams); WeightedVote returns one power index of PowerIndices. DiscountUtility is Grofman's discounting utility \(-\beta\|v - s - \delta(x - s)\|^2\); MixedUtility the Merrill-Grofman unified utility \(2(1-\beta)(v-n)\cdot(x-n) - \beta\|v - x\|^2\). Identical to the Python modules morie.fn.svlgv, svprv, svchy, svnrm, svblt, svmxl, svpxv, svqud, svmv2, svutm, svvtr, svvt2, svwvt, svdsc and svmxu.

Usage

LogitVote(x, ideal_point = NULL, status_quo = NULL, beta = 1)

ProbitVote(x, ideal_point = NULL, status_quo = NULL, beta = 1)

CauchyVote(x, ideal_point = NULL, status_quo = NULL, beta = 1)

NormalVote(x, ideal_point = NULL, status_quo = NULL, beta = 1, w = 1)

BoltzmannVote(x, ideal_point = NULL, status_quo = NULL, temperature = 1)

MixedLogitVote(
  x,
  ideal_point = NULL,
  status_quo = NULL,
  beta = 1,
  beta_sd = 0.5,
  n_draws = 1000L,
  seed = 1L
)

ProximityVote(x, ideal_point = NULL, status_quo = NULL, p = 2)

QuadUtility(x, ideal_point = NULL, salience = NULL)

MedianVoter2d(x, ideal_point = NULL)

UtilityMax(x, ideal_point = NULL, utility = "quadratic", scale = 1)

VoteTrading(valuations)

VoteTrade2d(valuations)

WeightedVote(weights, quota = NULL, index = "shapley_shubik")

DiscountUtility(
  x,
  ideal_point = NULL,
  status_quo = NULL,
  discount = 0.5,
  beta = 1
)

MixedUtility(x, ideal_point = NULL, neutral = NULL, beta = 0.5)

Arguments

x

Alternative (vector), alternatives (matrix rows), or ideal points (MedianVoter2d).

ideal_point

Voter ideal point (for MedianVoter2d, the point tested).

status_quo

Status quo (default origin).

beta

Utility scale, or proximity weight for MixedUtility.

w

NOMINATE dimension weight.

temperature

Softmax temperature.

beta_sd

Standard deviation of the random coefficient.

n_draws

Simulation draws.

seed

Philox seed.

p

Minkowski exponent.

salience

Vector (diagonal) or matrix of issue saliences.

utility

"quadratic", "linear" or "gaussian".

scale

Gaussian utility scale.

valuations

Voters x issues signed intensities.

weights

Player weights.

quota

Winning quota.

index

Power index name.

discount

Fraction of the promised move expected to be enacted.

neutral

Neutral point for the directional component.

Value

List with value and model-specific components.

References

Enelow, J. M. and Hinich, M. J. (1984). The Spatial Theory of Voting. Cambridge University Press.

Poole, K. T. and Rosenthal, H. (1997). Congress: A Political-Economic History of Roll Call Voting. Oxford University Press.

Plott, C. R. (1967). A notion of equilibrium and its possibility under majority rule. American Economic Review 57, 787-806.

Grofman, B. (1985). The neglected role of the status quo in models of issue voting. Journal of Politics 47, 230-237.

Merrill, S. and Grofman, B. (1999). A Unified Theory of Voting. Cambridge University Press.

Examples

LogitVote(1, ideal_point = 0, status_quo = 2)$value
#> [1] 0.9525741
MedianVoter2d(rbind(c(0, 0), c(1, 1), c(2, 2), c(0, 2), c(2, 0)))$is_core
#> [1] TRUE
MixedUtility(2, ideal_point = 1)$value
#> [1] 1.5