Function to conduct multivariate regression analyses of survey data with the item count technique, also known as the list experiment, using predicted responses from list experiments as predictors in outcome regression models.
ictreg.joint(formula, data = parent.frame(), treat = "treat", J, outcome = "outcome", outcome.reg = "logistic", constrained = FALSE, maxIter = 1000)
formula | An object of class "formula": a symbolic description of the model to be fitted. |
---|---|
data | A data frame containing the variables in the model |
treat | Name of treatment indicator as a string. For single sensitive item models, this refers to a binary indicator, and for multiple sensitive item models it refers to a multi-valued variable with zero representing the control condition. This can be an integer (with 0 for the control group) or a factor (with "control" for the control group). |
J | Number of non-sensitive (control) survey items. |
outcome | Name of outcome indicator as a string. |
outcome.reg | Model for outcome regression. Options are "logistic" or "linear;" default is "logistic". |
constrained | A logical value indicating whether the control group parameters are constrained to be equal. Default is FALSE. |
maxIter | Maximum number of iterations for the Expectation-Maximization algorithm of the ML estimation. The default is 1000. |
ictreg.joint
returns an object of class "ictreg.joint". The
function summary
is used to obtain a table of the results. The object
ictreg.joint
is a list that contains the following components.
point estimate for effect of covariate on item count fitted on treatment group
standard error for estimate of effect of covariate on item count fitted on treatment group
point estimate for effect of covariate on item count fitted on control group
standard error for estimate of effect of covariate on item count fitted on control group
point estimate for effect of covariate and sensitive item on outcome
standard error for estimate of effect of covariate and sensitive item on outcome
variable names as defined in the data frame
call indicating whether the constrained model is used
the matched call
the data
argument
the outcome.reg
argument
the design matrix
the response vector
the vector indicating treatment status
Number of non-sensitive (control) survey items set by the user or detected.
a vector of the names used
by the treat
vector for the sensitive item or items. This is the
names from the treat
indicator if it is a factor, or the number of
the item if it is numeric.
a vector of the names used
by the treat
vector for the control items. This is the names from the
treat
indicator if it is a factor, or the number of the item if it is
numeric.
This function allows the user to perform regression analysis on survey data with the item count technique, also known as the list experiment, using predicted responses from list experiments as predictors in outcome regression models.
Imai, Kosuke, Bethany Park, and Kenneth F. Greene. (2014) ``Using the Predicted Responses from List Experiments as Explanatory Variables in Regression Models.'' available at http://imai.princeton.edu/research/files/listExp.pdf
# NOT RUN { data(mexico) loyal <- mexico[mexico$mex.loyal == 1,] notloyal <- mexico[mexico$mex.loyal == 0,] ## Logistic outcome regression ## (effect of vote-selling on turnout) ## This replicates Table 4 in Imai et al. 2014 loyalreg <- ictreg.joint(formula = mex.y.all ~ mex.male + mex.age + mex.age2 + mex.education + mex.interest + mex.married + mex.wealth + mex.urban + mex.havepropoganda + mex.concurrent, data = loyal, treat = "mex.t", outcome = "mex.votecard", J = 3, constrained = TRUE, outcome.reg = "logistic", maxIter = 1000) summary(loyalreg) ## Linear outcome regression ## (effect of vote-selling on candidate approval) ## This replicates Table 5 in Imai et al. 2014 approvalreg <- ictreg.joint(formula = mex.y.all ~ mex.male + mex.age + mex.age2 + mex.education + mex.interest + mex.married + mex.urban + mex.cleanelections + mex.cleanelectionsmiss + mex.havepropoganda + mex.wealth + mex.northregion + mex.centralregion + mex.metro + mex.pidpriw2 + mex.pidpanw2 + mex.pidprdw2, data = mexico, treat = "mex.t", outcome = "mex.epnapprove", J = 3, constrained = TRUE, outcome.reg = "linear", maxIter = 1000) summary(approvalreg) # }