This function simulates choice data from a probit model.
Usage
simulate_choices(
form,
N,
T = 1,
J,
re = NULL,
alternatives = NULL,
ordered = FALSE,
ranked = FALSE,
base = NULL,
covariates = NULL,
seed = NULL,
true_parameter = list()
)
Arguments
- form
A
formula
object that is used to specify the model equation. The structure ischoice ~ A | B | C
, wherechoice
is the name of the dependent variable (the choices),A
are names of alternative and choice situation specific covariates with a coefficient that is constant across alternatives,B
are names of choice situation specific covariates with alternative specific coefficients,and
C
are names of alternative and choice situation specific covariates with alternative specific coefficients.
Multiple covariates (of one type) are separated by a
+
sign. By default, alternative specific constants (ASCs) are added to the model. They can be removed by adding+0
in the second spot.In the ordered probit model (
ordered = TRUE
), theformula
object has the simple structurechoice ~ A
. ASCs are not estimated.- N
The number (greater or equal 1) of decision makers.
- T
The number (greater or equal 1) of choice occasions or a vector of choice occasions of length
N
(i.e. a decision maker specific number). Per default,T = 1
.- J
The number (greater or equal 2) of choice alternatives.
- re
A character (vector) of covariates of
form
with random effects. Ifre = NULL
(the default), there are no random effects. To have random effects for the ASCs, include"ASC"
inre
.- alternatives
A character vector with the names of the choice alternatives. If not specified, the choice set is defined by the observed choices. If
ordered = TRUE
,alternatives
is assumed to be specified with the alternatives ordered from worst to best.- ordered
A boolean,
FALSE
per default. IfTRUE
, the choice setalternatives
is assumed to be ordered from worst to best.- ranked
TBA
- base
A character, the name of the base alternative for covariates that are not alternative specific (i.e. type 2 covariates and ASCs). Ignored and set to
NULL
if the model has no alternative specific covariates (e.g. in the ordered probit model). Per default,base
is the last element ofalternatives
.- covariates
A named list of covariate values. Each element must be a vector of length equal to the number of choice occasions and named according to a covariate. Covariates for which no values are supplied are drawn from a standard normal distribution.
- seed
Set a seed for the simulation.
- true_parameter
Optionally specify a named list with true parameter values for
alpha
,C
,s
,b
,Omega
,Sigma
,Sigma_full
,beta
,z
, ord
for the simulation. See the vignette on model definition for definitions of these variables.
Details
See the vignette on choice data for more details.
See also
check_form()
for checking the model formulaoverview_effects()
for an overview of the model effectscreate_lagged_cov()
for creating lagged covariatesas_cov_names()
for re-labeling alternative-specific covariatesprepare_data()
for preparing empirical choice datatrain_test()
for splitting choice data into a train and test subset
Examples
### simulate data from a binary probit model with two latent classes
data <- simulate_choices(
form = choice ~ cost | income | time,
N = 100,
T = 10,
J = 2,
re = c("cost", "time"),
alternatives = c("car", "bus"),
seed = 1,
true_parameter = list(
"alpha" = c(-1, 1),
"b" = matrix(c(-1, -1, -0.5, -1.5, 0, -1), ncol = 2),
"C" = 2
)
)
### simulate data from an ordered probit model
data <- simulate_choices(
form = opinion ~ age + gender,
N = 10,
T = 1:10,
J = 5,
alternatives = c("very bad", "bad", "indifferent", "good", "very good"),
ordered = TRUE,
covariates = list(
"gender" = rep(sample(c(0, 1), 10, replace = TRUE), times = 1:10)
),
seed = 1
)
### simulate data from a ranked probit model
data <- simulate_choices(
form = product ~ price,
N = 10,
T = 1:10,
J = 3,
alternatives = c("A", "B", "C"),
ranked = TRUE,
seed = 1
)