Learn R Programming

RRreg (version 0.6.0)

RRuni: Univariate analysis of randomized response data

Description

Analyse a data vector response with a specified RR model (e.g., Warner) with known randomization probability p

Usage

RRuni(response, data, model, p, group = NULL, MLest = TRUE)

Arguments

response
either vector of responses containing 0='no' and 1='yes' or name of response variable in data. In Kuk's card playing method (Kuk), the observed response variable gives the number of red cards. For the Forced Response (FR
data
optional data.frame containing the response variable
model
defines RR model. Available models: "Warner", "UQTknown", "UQTunknown", "Mangat", "Kuk","FR", "Crosswise", "CDM", "CDMsym", "SLD"
p
randomization probability (see details or vignette("RRreg"))
group
a group vector of the same length as response containing values 1 or 2, only required for two-group models, which specify different randomization probabilities for two groups, e.g., CDM or SLD. If a data.frame
MLest
whether to use optim to get ML instead of moment estimates (only relevant if pi is outside of [0,1])

Value

  • an RRuni object, can by analyzed by using summary

Details

Each RR design model differs in the definition of the randomization probability p, which is defined as a single probability for
  • "Warner": Probabiltiy to get sensitive Question
  • "Mangat": Prob. for noncarriers to respond truthfully (i.e., with No=0)
  • "Crosswise": Prevalence of 'yes' responses for unrelated question (response category is coded as 1=['no-no' or 'yes-yes']; 0=['yes-no' or 'no-yes'])
and as a two-valued vector of probabilities for
  • "Kuk": Probability of red cards in first and second set, respectively (red=1, black=0);
  • Unrelated Question ("UQTknown"): Prob. to respond to sensitive question and known prevalence of 'yes' responses to unrelated question
  • Unrelated Question ("UQTunknown"): Prob. to respond to sensitive question in group 1 and 2, respectively
  • Cheating Detection ("CDM"): Prob. to be prompted to say yes in group 1 and 2, respectively
  • Symmetric CDM ("CDMsym"): 4-valued vector: Prob. to be prompted to say 'yes'/'no' in group 1 and 'yes'/'no' in group 2
  • Stochastic Lie Detector ("SLD"): Prob. for noncarriers to reply with 0='no' in group 1 and 2, respectively
  • Forced Response model ("FR"): m-valued vector (m=number of response categories) with the probabilities of being prompted to select response categories 0,1,..,m-1, respectively (requiressum(p)<1< code="">)
  • RR as misclassification ("custom"): a quadratic misclassification matrix is specified, where the entryp[i,j]defines the probability of responding i (i-th row) given a true state of j (j-th column)) (seegetPW)
For the continuous RR models:
  • "mix.norm": 3-valued vector - Prob. to respond to sensitive question and mean and SD of the masking normal distribution of the unrelated question
  • "mix.exp": 2-valued vector - Prob. to respond to sensitive question and mean of the masking exponential distribution of the unrelated question
  • "mix.unknown": 2-valued vector - Prob. of responding to sensitive question in group 1 and 2, respectively

See Also

vignette('RRreg') or https://dl.dropboxusercontent.com/u/21456540/RRreg/index.html for a detailed description of the RR models and the appropriate definition of p

Examples

Run this code
# Generate responses of 1000 people according to Warner's model
# with an underlying true proportion of .3
genData <- RRgen(n=1000, pi=.3, model="Warner", p=.7)
# Analyse univariate data to estimate 'pi'
analyse <- RRuni(response=genData$response, model="Warner", p=.7)
summary(analyse)

# Generate data in line with the Stochastic Lie Detector 
# assuming that 90\% of the respondents answer truthfully
genData2 <- RRgen(n=1000, pi=.3, model="SLD", p=c(.2,.8), 
                  complyRates=c(.8,1),groupRatio=0.4)
analyse2 <- RRuni(response=genData2$response, model="SLD", 
                  p=c(.2,.8), group=genData2$group)
summary(analyse2)

Run the code above in your browser using DataLab