| bayeslist | R Documentation |
The main function for estimating Bayesian sensitive item models.
The function returns a bayeslist object that can be further investigated using standard functions such as summary, plot, print, predict, and coef. The model can be passed using a formula as in lm(). Convergence diagnotics can be performed using either print(object, "mcmc") or plot(object, "trace").
bayeslist(
formula,
data,
treat,
J,
type = "outcome",
nsim = 1000,
burnin = NULL,
thin = 1,
CIsize = 0.95,
nchain = 1,
seeds = 12345,
vb = FALSE,
only_vb = FALSE,
prior = NULL,
direct_item = NULL,
direct_item_misreport = NULL,
double_list = NULL,
double_list_treat = NULL,
aux_info = NULL,
aux_g = NULL,
aux_h = NULL,
BL_a = NULL,
BL_b = NULL,
conjugate_distance = FALSE,
conjugate_k = NULL,
predictvar = NULL,
predictvar_type = "binary",
parallel = TRUE,
robust = FALSE
)
formula |
An object of class "formula" (or one that can be coerced to that class): a symbolic description of the model to be fitted. |
data |
A data frame containing the variables in the model. |
treat |
Variable name of the treatment. |
J |
Number of control items. |
type |
Type of the model. Options include "outcome", "predict", "misreport", for the sensitive item outcome model, predictor model and misreport model, respectively. |
nsim |
The number of iterations. |
burnin |
The number of burnin iterations. |
thin |
Thinning parameter. |
CIsize |
The size of posterior confidence interval. |
nchain |
The number of parallel chains. |
seeds |
Random seeds to replicate the results. |
vb |
Logic. If TRUE, variational approximation will be used to supply initial values. The default is FALSE. |
only_vb |
Logic. If TRUE, only variational approximation will be calculated. The default is FALSE. |
prior |
Prior types. Options include "auxiliary", "double_list", "direct_item", and "BL" for beta-logistic prior. If NULL, no informative priors will be used. |
direct_item |
Variable name of the direct item. |
direct_item_misreport |
Variable name of the direct item for the misreporting model. |
double_list |
Variable name of the second list. |
double_list_treat |
Treatment variable of the second list. |
aux_info |
Auxiliary information for the informative priors. list(G,h,g), where: G (number of subgroups), h (auxiliary information for each subgroup), and g (subgroup indicator). If is.NULL, the following two parameters need to be specified when estimating the model with prior = "auxiliary". |
aux_g |
Auxiliary information for the informative priors: name of the variable indicating the group of each observation. |
aux_h |
Auxiliary information for the informative priors: name of the variable containing information of prevalence for each group |
BL_a |
The first shape hyperparameter for the beta-logistic prior, indicating the prior number of affirmative answers to the sensitive item. |
BL_b |
The second shape hyperparameter for the beta-logistic prior, indicating the prior number of non-affirmative answers to the sensitive item. |
conjugate_distance |
Logic. Indicating whether conjugate distance prior should be used. The default is FALSE. |
conjugate_k |
Degrees of freedom to be scaled by conjugate distance prior. The default is NULL. |
predictvar |
Variable name of the outcome to be predicted. |
predictvar_type |
The type of the outcome variable to be predicted. Options include "linear" and "binary". The default is "binary". |
parallel |
Logic. Indicating whether to do paralell computing. The default is TRUE. |
robust |
Logic. Indicating whether to impose robust constraints on the intercept-only model. The default is FALSE. |
A bayeslist object. An object of class bayeslist contains the following elements
CallThe matched call.
formulaSymbolic representation of the model.
typeModel type
nsimNumber of iterations.
BurninNumber of burnin iterations.
thinThinning.
seedsRandom seeds for reproducibility. The default is 12345.
CIsizeSize of the posterior confidence interval.
dataData used.
XIndependent variables.
YDependent variables.
xnamesNames of the independent variables.
stanfitOutput from stan.
sampledfPosterior samples.
summaryoutSummary of the stan-fit object.
nparsNumber of control variables.
only_vbWhether only viariational approximation is used.
priorInformative prior types.
direct_itemDirect item.
double_listThe second list.
aux_infoAuxiliary information.
ulbsUpper and lower bounds based on the specified confidence interval.
meansMean estimates.
treatTreatment.
outcomeOutcome to be predicted.
directDirect item for the misreport model.
robustRobust indicator.
Lu, X. and Traunmüller, R. (2021). Improving Studies of Sensitive Topics Using Prior Evidence: A Unified Bayesian Framework for List Experiments, SSRN, \Sexpr[results=rd]{tools:::Rd_expr_doi("10.2139/ssrn.3871089")}.
# Estimate sensitive item outcome model using Sri Lanka data on male sexual violence
# Load Sri Lanka list experiment data
data(srilanka)
# Model 1: intercept-only outcome model without prior information:
mod1 <- bayeslist(sexaussault ~ 1, data = srilanka, treat = "treatment", J = 3,
type = "outcome", nsim = 200, thin = 1, CIsize = 0.95, nchain = 1,
seeds = 342321, prior = NULL, parallel = TRUE)
summary(mod1) # summary of estimates
predict(mod1) # predicted prevalence for each observation
plot(mod1,"trace") # trace plot
plot(mod1,"coef") # coefficient plot
plot(mod1, only_prev = TRUE) # prevalence plot
# Model 2: multivariate outcome model without prior information:
mod2 <- bayeslist(sexaussault ~ age + edu, data = srilanka, treat = "treatment", J = 3,
type = "outcome", nsim = 200, thin = 1, CIsize = 0.95, nchain = 1,
seeds = 342321, prior = NULL, parallel = TRUE)
summary(mod2) # summary of estimates
predict(mod2) # predicted prevalence for each observation
plot(mod2,"trace") # trace plot
plot(mod2,"coef") # coefficient plot
plot(mod2) # prevalence + coefficient plot
# Model 3: intercept-only outcome model with prior information from medicolegal reports, i.e.,
# with a prior beta-logistic distribution BL(38, 146).
a <- 38; b <-146
mod3 <- bayeslist(sexaussault ~ 1, data = srilanka, treat = "treatment", J = 3,
type = "outcome", nsim = 200, thin = 1, CIsize = 0.95, nchain = 1,
seeds = 342321, prior = "BL", BL_a = a, BL_b = b,, parallel = TRUE)
summary(mod3)
predict(mod3)
plot(mod3,"trace")
plot(mod3,"coef")
plot(mod3, only_prev = TRUE)
# Model 4: multivariate outcome model with prior information from a direct item.
# Load London list experiment data
data(london)
mod4 <- bayeslist(listCount ~ agegrp + gender + social_grade + qual,data = london, J = 4,
treat = "listTreat", seeds = 4597, nsim = 200, nchain = 1,
prior = "direct_item", direct_item = "baselineTurnout")
summary(mod4)
predict(mod4)
plot(mod4,"trace")
plot(mod4,"coef")
plot(mod4)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.