This function performs Markov chain Monte Carlo simulation for fitting different types of probit models (binary, multivariate, mixed, latent class, ordered, ranked) to discrete choice data.
Arguments
- data
An object of class
RprobitB_data
.- scale
A character which determines the utility scale. It is of the form
<parameter> := <value>
, where<parameter>
is either the name of a fixed effect orSigma_<j>,<j>
for the<j>
th diagonal element ofSigma
, and<value>
is the value of the fixed parameter.- R
The number of iterations of the Gibbs sampler.
- B
The length of the burn-in period, i.e. a non-negative number of samples to be discarded.
- Q
The thinning factor for the Gibbs samples, i.e. only every
Q
th sample is kept.- print_progress
A boolean, determining whether to print the Gibbs sampler progress and the estimated remaining computation time.
- prior
A named list of parameters for the prior distributions. See the documentation of
check_prior
for details about which parameters can be specified.- latent_classes
Either
NULL
(for no latent classes) or a list of parameters specifying the number of latent classes and their updating scheme:C
: The fixed number (greater or equal 1) of latent classes, which is set to 1 per default. If eitherweight_update = TRUE
ordp_update = TRUE
(i.e. if classes are updated),C
equals the initial number of latent classes.weight_update
: A boolean, set toTRUE
to weight-based update the latent classes. See ... for details.dp_update
: A boolean, set toTRUE
to update the latent classes based on a Dirichlet process. See ... for details.Cmax
: The maximum number of latent classes.buffer
: The number of iterations to wait before a next weight-based update of the latent classes.epsmin
: The threshold weight (between 0 and 1) for removing a latent class in the weight-based updating scheme.epsmax
: The threshold weight (between 0 and 1) for splitting a latent class in the weight-based updating scheme.distmin
: The (non-negative) threshold in class mean difference for joining two latent classes in the weight-based updating scheme.
- seed
Set a seed for the Gibbs sampling.
- fixed_parameter
Optionally specify a named list with fixed 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 model fitting for more details.
See also
prepare_data()
andsimulate_choices()
for building anRprobitB_data
objectupdate()
for estimating nested modelstransform()
for transforming a fitted model
Examples
data <- simulate_choices(
form = choice ~ var | 0, N = 100, T = 10, J = 3, seed = 1
)
model <- fit_model(data = data, R = 1000, seed = 1)
#> Computing sufficient statistics - 0 of 4
#> Computing sufficient statistics - 1 of 4
#> Computing sufficient statistics - 2 of 4
#> Computing sufficient statistics - 3 of 4
#> Computing sufficient statistics - 4 of 4
#> MCMC iteration - 1 of 1000
#> MCMC iteration - 10 of 1000
#> MCMC iteration - 20 of 1000
#> MCMC iteration - 30 of 1000
#> MCMC iteration - 40 of 1000
#> MCMC iteration - 50 of 1000
#> MCMC iteration - 60 of 1000
#> MCMC iteration - 70 of 1000
#> MCMC iteration - 80 of 1000
#> MCMC iteration - 90 of 1000
#> MCMC iteration - 100 of 1000
#> MCMC iteration - 110 of 1000
#> MCMC iteration - 120 of 1000
#> MCMC iteration - 130 of 1000
#> MCMC iteration - 140 of 1000
#> MCMC iteration - 150 of 1000
#> MCMC iteration - 160 of 1000
#> MCMC iteration - 170 of 1000
#> MCMC iteration - 180 of 1000
#> MCMC iteration - 190 of 1000
#> MCMC iteration - 200 of 1000
#> MCMC iteration - 210 of 1000
#> MCMC iteration - 220 of 1000
#> MCMC iteration - 230 of 1000
#> MCMC iteration - 240 of 1000
#> MCMC iteration - 250 of 1000
#> MCMC iteration - 260 of 1000
#> MCMC iteration - 270 of 1000
#> MCMC iteration - 280 of 1000
#> MCMC iteration - 290 of 1000
#> MCMC iteration - 300 of 1000
#> MCMC iteration - 310 of 1000
#> MCMC iteration - 320 of 1000
#> MCMC iteration - 330 of 1000
#> MCMC iteration - 340 of 1000
#> MCMC iteration - 350 of 1000
#> MCMC iteration - 360 of 1000
#> MCMC iteration - 370 of 1000
#> MCMC iteration - 380 of 1000
#> MCMC iteration - 390 of 1000
#> MCMC iteration - 400 of 1000
#> MCMC iteration - 410 of 1000
#> MCMC iteration - 420 of 1000
#> MCMC iteration - 430 of 1000
#> MCMC iteration - 440 of 1000
#> MCMC iteration - 450 of 1000
#> MCMC iteration - 460 of 1000
#> MCMC iteration - 470 of 1000
#> MCMC iteration - 480 of 1000
#> MCMC iteration - 490 of 1000
#> MCMC iteration - 500 of 1000
#> MCMC iteration - 510 of 1000
#> MCMC iteration - 520 of 1000
#> MCMC iteration - 530 of 1000
#> MCMC iteration - 540 of 1000
#> MCMC iteration - 550 of 1000
#> MCMC iteration - 560 of 1000
#> MCMC iteration - 570 of 1000
#> MCMC iteration - 580 of 1000
#> MCMC iteration - 590 of 1000
#> MCMC iteration - 600 of 1000
#> MCMC iteration - 610 of 1000
#> MCMC iteration - 620 of 1000
#> MCMC iteration - 630 of 1000
#> MCMC iteration - 640 of 1000
#> MCMC iteration - 650 of 1000
#> MCMC iteration - 660 of 1000
#> MCMC iteration - 670 of 1000
#> MCMC iteration - 680 of 1000
#> MCMC iteration - 690 of 1000
#> MCMC iteration - 700 of 1000
#> MCMC iteration - 710 of 1000
#> MCMC iteration - 720 of 1000
#> MCMC iteration - 730 of 1000
#> MCMC iteration - 740 of 1000
#> MCMC iteration - 750 of 1000
#> MCMC iteration - 760 of 1000
#> MCMC iteration - 770 of 1000
#> MCMC iteration - 780 of 1000
#> MCMC iteration - 790 of 1000
#> MCMC iteration - 800 of 1000
#> MCMC iteration - 810 of 1000
#> MCMC iteration - 820 of 1000
#> MCMC iteration - 830 of 1000
#> MCMC iteration - 840 of 1000
#> MCMC iteration - 850 of 1000
#> MCMC iteration - 860 of 1000
#> MCMC iteration - 870 of 1000
#> MCMC iteration - 880 of 1000
#> MCMC iteration - 890 of 1000
#> MCMC iteration - 900 of 1000
#> MCMC iteration - 910 of 1000
#> MCMC iteration - 920 of 1000
#> MCMC iteration - 930 of 1000
#> MCMC iteration - 940 of 1000
#> MCMC iteration - 950 of 1000
#> MCMC iteration - 960 of 1000
#> MCMC iteration - 970 of 1000
#> MCMC iteration - 980 of 1000
#> MCMC iteration - 990 of 1000
#> MCMC iteration - 1000 of 1000
#> Computing log-likelihood
summary(model)
#> Probit model
#> Formula: choice ~ var | 0
#> R: 1000, B: 500, Q: 1
#> Level: Utility differences with respect to alternative 'C'.
#> Scale: Coefficient of the 1. error term variance fixed to 1.
#>
#> Gibbs sample statistics
#> true mean sd R^
#> alpha
#>
#> 1 -0.94 -0.85 0.06 1.16
#>
#> Sigma
#>
#> 1,1 1.00 1.00 0.00 1.00
#> 1,2 -0.42 -0.30 0.06 2.15
#> 2,2 0.27 0.19 0.04 1.62