Simulate choice dataSource:
This function simulates choice data from a probit model.
simulate_choices( form, N, T = 1, J, re = NULL, alternatives = NULL, ordered = FALSE, ranked = FALSE, base = NULL, covariates = NULL, seed = NULL, true_parameter = list() )
formulaobject that is used to specify the model equation. The structure is
choice ~ A | B | C, where
choiceis the name of the dependent variable (the choices),
Aare names of alternative and choice situation specific covariates with a coefficient that is constant across alternatives,
Bare names of choice situation specific covariates with alternative specific coefficients,
Care 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
+0in the second spot.
In the ordered probit model (
ordered = TRUE), the
formulaobject has the simple structure
choice ~ A. ASCs are not estimated.
The number (greater or equal 1) of decision makers.
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.
The number (greater or equal 2) of choice alternatives.
A character (vector) of covariates of
formwith random effects. If
re = NULL(the default), there are no random effects. To have random effects for the ASCs, include
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,
alternativesis assumed to be specified with the alternatives ordered from worst to best.
FALSEper default. If
TRUE, the choice set
alternativesis assumed to be ordered from worst to best.
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
NULLif the model has no alternative specific covariates (e.g. in the ordered probit model). Per default,
baseis the last element of
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.
Set a seed for the simulation.
Optionally specify a named list with true parameter values for
dfor the simulation. See the vignette on model definition for definitions of these variables.
See the vignette on choice data for more details.
check_form()for checking the model formula
overview_effects()for an overview of the model effects
create_lagged_cov()for creating lagged covariates
as_cov_names()for re-labeling alternative-specific covariates
prepare_data()for preparing empirical choice data
train_test()for splitting choice data into a train and test subset
### 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 )