RRlin {RRreg} | R Documentation |
Linear randomized response regression
Description
Linear regression for a continuous criterion, using randomized-response (RR) variables as predictors.
Usage
RRlin(
formula,
data,
models,
p.list,
group = NULL,
Kukrep = 1,
bs.n = 0,
nCPU = 1,
maxit = 1000,
fit.n = 3,
pibeta = 0.05
)
Arguments
formula |
a continuous criterion is predicted by one or more categorical
RR variables defined by |
data |
an optional data frame, list or environment, containing the variables in the model. |
models |
character vector specifying RR model(s) in order of appearance
in formula. Available models: |
p.list |
list of randomization probabilities for RR models in the same
order as specified in |
group |
vector or matrix specifying group membership by the indices 1
and 2. Only for multigroup RR models, e.g., |
Kukrep |
defines the number of repetitions in Kuk's card playing method |
bs.n |
Number of samples used for the non-parametric bootstrap |
nCPU |
only relevant for the bootstrap: either the number of CPU cores
or a cluster initialized via |
maxit |
maximum number of iterations in optimization routine |
fit.n |
number of fitting runs with random starting values |
pibeta |
approximate ratio of probabilities pi to regression weights beta (to adjust scaling). Can be used for speeding-up and fine-tuning ML estimation (i.e., choosing a smaller value for larger beta values). |
Value
Returns an object RRlin
which can be analysed by the generic
method summary
Author(s)
Daniel W. Heck
References
van den Hout, A., & Kooiman, P. (2006). Estimating the linear regression model with categorical covariates subject to randomized response. Computational Statistics & Data Analysis, 50, 3311-3323.
See Also
vignette('RRreg')
or
https://www.dwheck.de/vignettes/RRreg.html for a
detailed description of the RR models and the appropriate definition of
p
Examples
# generate two RR predictors
dat <- RRgen(n = 500, pi = .4, model = "Warner", p = .3)
dat2 <- RRgen(n = 500, pi = c(.4, .6), model = "FR", p = c(.1, .15))
dat$FR <- dat2$response
dat$trueFR <- dat2$true
# generate a third predictor and continuous dependent variables
dat$nonRR <- rnorm(500, 5, 1)
dat$depvar <- 2 * dat$true - 3 * dat2$true +
.5 * dat$nonRR + rnorm(500, 1, 7)
# use RRlin and compare to regression on non-RR variables
linreg <- RRlin(depvar ~ response + FR + nonRR,
data = dat,
models = c("Warner", "FR"),
p.list = list(.3, c(.1, .15)), fit.n = 1
)
summary(linreg)
summary(lm(depvar ~ true + trueFR + nonRR, data = dat))