constrain item parameters in analysis of roll call data

Share:

Description

Sets constraints on specified item parameters in Bayesian analysis of roll call data by generating appropriate priors and start values for Markov chain Monte Carlo iterations.

Usage

1
2
constrain.items(obj, dropList = list(codes = "notInLegis", lop = 0),
                x, d = 1)

Arguments

obj

an object of class rollcall.

dropList

a list (or alist) indicating which voting decisions, legislators and/or roll calls are to be excluded from the subsequent analysis; see dropRollCall for details.

x

a list containing elements with names matching votes found in dimnames(object$votes)[[2]] (but after any subsetting specified by dropList). Each component of the list must be a vector containing d elements, specifying the value to which the item discrimination parameters should be constrained, in each of the d dimensions. The intercept or item difficultly parameter will not be constrained.

d

numeric, positive integer, the number of dimensions for which to set up the priors and start values.

Details

constrain.items and its cousin, constrain.legis are usefully thougt of as “pre-processor” functions, generating priors and start values for both the item parameters and the ideal points. For the items specified in x, the prior mean for each dimension is set to the value given in x, and the prior precision for each dimension is set to 1e12 (i.e., a near-degenerate “spike” prior). For the other items, the priors are set to a mean of 0 and precision 0.01. All of the ideal points are given normal priors with mean 0, precision 1.

Start values are also generated for both ideal points and item parameters. The start values for the items specified in x are set to the values specified in x. The list resulting from constrain.items can then be given as the value for the parameters priors and startvals when ideal is run. The user is responsible for ensuring that a sufficient number of items are constrained such that when ideal is run, the model parameters are identified.

dropRollCall is first called to generate the desired roll call matrix. The entries of the roll call matrix are mapped to c(0,1,NA) using the codes component of the rollcall object. See the discussion in the documentation of ideal for details on the generation of start values.

Value

a list with elements:

xp

prior means for ideal points. A matrix of dimensions number of legislators in obj by d.

xpv

prior meansprecisions for ideal points. A matrix of dimensions number of legislators in obj by d.

bp

prior means for item parameters. A matrix of dimensions number of items or votes in obj by d+1.

bpv

prior meansprecisions for item parameters. A matrix of dimensions number of items or votes in obj by d+1.

xstart

start values for ideal points. A matrix of dimensions number of legislators in obj by d.

bstart

start values for ideal points. A matrix of dimensions number of items or votes in obj by d+1.

See Also

rollcall, ideal, constrain.legis

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
## Not run: 
data(s109)
f <- system.file("extdata","id1.rda",package="pscl")
load(f)
id1sum <- summary(id1,include.beta=TRUE)
suspect1 <- id1sum$bSig[[1]]=="95
close60 <- id1sum$bResults[[1]][,"Yea"] < 60
close40 <- id1sum$bResults[[1]][,"Yea"] > 40
suspect <- suspect1 & close60 & close40
id1sum$bResults[[1]][suspect,]
suspectVotes <- dimnames(id1sum$bResults[[1]][suspect,])[[1]]


## constraints on 2d model,
## close rollcall poorly fit by 1d model
## serves as reference item for 2nd dimension

cl <- constrain.items(s109,
                      x=list("2-150"=c(0,7),
                        "2-169"=c(7,0)),
                      d=2)

id1Constrained <- ideal(s109,
                        d=2,
                        meanzero=TRUE,
                        priors=cl,
                        startvals=cl,
                        maxiter=1e5,
                        burnin=1e3,
                        thin=1e2)
summary(id1Constrained,include.beta=TRUE)

## End(Not run)

Want to suggest features or report bugs for rdrr.io? Use the GitHub issue tracker.