dwnominate: Run DW-NOMINATE

View source: R/dwnominate.R

dwnominateR Documentation

Run DW-NOMINATE

Description

Estimate legislator ideal points using the DW-NOMINATE roll call scaling procedure featured in \insertCitepoole_ideology_2011;textualdwnominate.

Usage

dwnominate(
  rc_list,
  id = NULL,
  start = NULL,
  sessions = NULL,
  dims = 2,
  model = 1,
  niter = 4,
  beta = 5.9539,
  w = 0.3463,
  polarity = NULL,
  ...
)

Arguments

rc_list

A list of rollcall objects from the pscl package, in chronological order.

id

Column name in the rollcall objects' legis.data data frames providing a unique legislator ID. If not specified legislator names will be used.

start

A roll call scaling result of class common space, wnominate, oc, or dwnominate providing starting estimates of legislator ideologies. If not provided, dwnominate will calculate common space scores to get starting values. See the "details" section for more information about providing starting values.

sessions

A vector of length 2 providing the first and last sessions to include. Defaults to c(1, length(rc_list)).

dims

The number of dimensions to estimate. Can be either 1 or 2.

model

The degree of the polynomial representing changes in legislator ideology over time. 0 is constant, 1 is linear, 2 is quadratic and 3 is cubic.

niter

Number of iterations. 4 iterations are typically enough for the results to converge.

beta

Starting estimate of the parameter representing the spatial error in legislator choices.

w

Starting estimate for the weight of the second dimension. The first dimension has a weight of 1, so w should be <= 1.

polarity

A vector of length 1 or dims specifying, for each dimension, a legislator who should have a positive coordinate value. Legislators can be specified either by name or ID. If unspecified the first legislator in the data is used.

...

Arguments passed to wnominate if starting estimates are calculated.

Details

DW-NOMINATE was introduced in \insertCitemccarty_income_1997;textualdwnominate. It's an extension of the older D-NOMINATE program \insertCitepoole_patterns_1991dwnominate that uses the "weighted" distance model first used by W-NOMINATE.

The model assumes that legislators have Guassian utility functions centered around their ideal points, along with an additional roll call-specific random utility that makes the voting decisions probabilistic rather than deterministic.

The returned values are a maximum likelihood estimate of the model parameters (with minor exceptions around the boundary of the space). DW-NOMINATE uses a three-step estimation procedure similar to expectation maximization to find the maximum likelihood. The estimation procedure is a local optimization algorithm, but the likelihood function is not globally convex, so the results can be sensitive to starting estimates. Users must provide reasonable starting values to get correct results. See vignette("starting-estimates", package = "dwnominate") for more discussion of the starting estimates.

A fairly complete technical description of the procedure is available in \insertCitepoole_spatial_2005;textualdwnominate.

Value

A list of class dwnominate containing:

  • legislators A data frame of legislator information

  • rollcalls A data frame of rollcall information

  • start The wnominate or oc results used as starting points for DW-NOMINATE

References

\insertAllCited

See Also

https://legacy.voteview.com/dw-nominate.htm for the original fortran code and instructions. common_space to help generate starting estimates.

Examples


data(nhsenate)
results <- dwnominate(nhsenate)
plot(results)


wmay/dwnominate documentation built on Feb. 19, 2024, 7:38 p.m.