Skip to contents

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,
  true_parameter = list()
)

Arguments

form

[formula]
A model description with the structure choice ~ A | B | C, where

  • choice 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), the formula object has the simple structure choice ~ A. ASCs are not estimated.

N

[integer(1)]
The number of decision makers.

T

[integer(1) | integer(N)]
The number of choice occasions or a vector of decider-specific choice occasions of length N.

J

[integer(1)]
The number >= 2 of choice alternatives.

re

[character() | NULL]
Names of covariates with random effects. If re = NULL (the default), there are no random effects. To have random effects for the ASCs, include "ASC" in re.

alternatives

[character()]
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

[logical(1)]
If TRUE, the choice set alternatives is assumed to be ordered from worst to best.

ranked

[logical(1)]
Are the alternatives ranked?

base

[character(1)]
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).

By default, base is the last element of alternatives.

covariates

[list]
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.

true_parameter

[list]
A named list with true parameter values for alpha, C, s, b, Omega, Sigma, Sigma_full, beta, z, d for the simulation.

See the vignette on model definition for definitions of these variables.

Value

An object of class RprobitB_data.

Details

See the vignette on choice data for more details.

See also

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"),
  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)
  )
)

### 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
)