prep_data {hbamr} | R Documentation |
Prepare data to fit an HBAM or FBAM model
Description
This function prepares data to fit a hierarchical Bayesian Aldrich-McKelvey (HBAM) model. It can be run ahead of fitting the models, or it can be run implicitly as part of a single function call to fit the models using hbam()
or fbam()
. It applies a set of inclusion criteria, performs any necessary data transformation, and returns a list of data suited for sampling in rstan
. The data provided to prep_data()
can be centered, but they do not have to be: The function will detect un-centered data and attempt to center these automatically, assuming that the highest and lowest observed values in the data mark the extremes of the scale.
Usage
prep_data(
self = NULL,
stimuli,
prefs = NULL,
allow_miss = 2,
req_valid = NA,
req_unique = 2,
B = NULL,
group_id = NULL,
quiet = FALSE
)
Arguments
self |
An optional numerical vector of N ideological self-placements. Any missing data must be coded as NA. If this argument is not supplied, respondent positions will not be estimated. |
stimuli |
An N × J matrix of numerical stimulus placements, where J is the number of stimuli. Any missing data must be coded as NA. |
prefs |
An N × J matrix of numerical stimulus ratings or preference scores. These data are only required by the |
allow_miss |
Integer specifying how many missing stimulus positions to be accepted for an individual still to be included in the analysis. This argument will not be used if the data have been prepared in advance via the |
req_valid |
Integer specifying how many valid observations to require for a respondent to be included in the analysis. The default is |
req_unique |
Integer specifying how may unique positions on the ideological scale each respondent is required to have used when placing the stimuli in order to be included in the analysis. The default is |
B |
Integer specifying the upper bound of the survey scale after centering. If not supplied, this information will be inferred from the data. |
group_id |
Vector of length N identifying which group each respondent belongs to. The format can be factor, character, integer, or numeric. Respondents with NAs on |
quiet |
Logical: Should information about the data be printed to the console? Defaults to |
Value
A list of data to be used by hbam()
or fbam()
. The returned list includes the logical vector keep
, which identifies the rows in the original data that have been kept for further analysis. The stimuli data are stored in a vector as a long-form sparse matrix. If the stimuli data include column-names, these will be preserved for later use.
Examples
# Loading and re-coding ANES 1980 data:
data(LC1980)
LC1980[LC1980 == 0 | LC1980 == 8 | LC1980 == 9] <- NA
self <- LC1980[, 1]
stimuli <- LC1980[, -1]
# Prepare data for model fitting, using defaults:
dat <- prep_data(self, stimuli)
# Prepare data for model fitting, using using alternative settings:
dat2 <- prep_data(self, stimuli, allow_miss = 0, req_unique = 3)
# Obtain the data that are included in the analysis:
self2 <- self[dat2$keep]
stimuli2 <- stimuli[dat2$keep, ]