BayES BayES

6.5 Multinomial Probit

Mathematical representation

pmi = Prob yi = m|xiβm , m = 1,,M p0i = 1 m=1Mpmi, with additional structure on each pmi (6.9)

The latent-variable representation of the multinomial Probit is:

y1i = xiβ1 + 𝜀1i y2i = xiβ2 + 𝜀2i yMi = xiβM + 𝜀Mi yi = 0 if maxj yji 0 1 if maxj yji = y1i and y1i > 0 M if maxj yji = yMi and yMi > 0 (6.10)

Let:

βMK×1 = β1 β2 β M and𝜀iM×1 = 𝜀1i 𝜀2i 𝜀 Mi

𝜀i is assumed to follow a multivariate-Normal distribution: 𝜀 N 0,Ω1. For identification purposes the precision matrix is restricted such that tr Ω = M.

Priors




Parameter Probability density function Default hyperparameters



β p β = |P|12 2πMK2 exp 1 2 β mP β m m = 0 MK, P = 0.001 IMK
Ω p Ω = |Ω|nM1 2 |V1|n2 2nM2ΓMn 2 exp 1 2 tr V1Ω n = M2, V = 100 M IM
Following Burgette & Nordheim (2012), the prior for Ω is transformed such that tr Ω = M



Syntax

[<model name> = ] mnprobit( y ~ x1 x2  xK [, <options> ] );

where:

PIC The dependent variable, y, in the dataset used for estimation must contain only consecutive integer values, with the numbering starting at 0 (base category). Observations with missing values in y are dropped during estimation, but if a non-integer numerical value is encountered or if the integer values are not consecutive (for example there are no observations for which yi = 1), then an error is produced.

The optional arguments for the multinomial Probit model are:5

Gibbs parameters


"chains"

number of chains to run in parallel (positive integer); the default value is 1

"burnin"

number of burn-in draws per chain (positive integer); the default value is 10000

"draws"

number of retained draws per chain (positive integer); the default value is 20000

"thin"

value of the thinning parameter (positive integer); the default value is 1

"seed"

value of the seed for the random-number generator (positive integer); the default value is 42

Hyperparameters


"m"

mean vector of the prior for β (MK ×1 vector); the default value is 0MK

"P"

precision matrix of the prior for β (MK ×MK symmetric and positive-definite matrix); the default value is 0.001 IMK

"V"

scale matrix of the prior for Ω (M ×M symmetric and positive-definite matrix); the default value is 100 M IM

"n"

degrees-of-freedom parameter of the prior for Ω (real number greater than or equal to M); the default value is M2

Dataset and log-marginal likelihood


"dataset"

the id value of the dataset that will be used for estimation; the default value is the first dataset in memory (in alphabetical order)

"logML_CJ"

boolean indicating whether the Chib (1995)/Chib & Jeliazkov (2001) approximation to the log-marginal likelihood should be calculated (true|false); the default value is false

Reported Parameters




β

variable_name

vector of parameters associated with the independent variables; these are broken into groups according to the alternative, m, the parameter is associated with




Stored values and post-estimation analysis
If a left-hand-side id value is provided when a multinomial Probit model is created, then the following results are saved in the model item and are accessible via the ‘.’ operator:

Samples

a matrix containing the draws from the posterior of β (across all alternatives, starting from the first one) and the unique elements of Ω

y_m$x1,,
  y_m$xK

vectors containing the draws from the posterior of the parameters associated with variables x1,,xK, for m = 1,2,,M (the names of these vectors are the names of the variables that were included in the right-hand side of the model, prepended by y_m$, where y_m is the name of the dependent variable followed by an underscore and the index of the alternative; this is done so that the samples on the parameters associated with the same independent variable but for different alternatives can be distinguished)

Omega_i_j

vectors containing the draws from the posterior of the unique elements of Ω; because Ω is symmetric, only M1M 2 + M of its elements are stored (instead of all M2 elements); i and j index the row and column of Ω, respectively, at which the corresponding element is located

Omega

M ×M matrix that stores the posterior mean of Ω; Ω is restricted such that tr Ω1 = M

logML

the Lewis & Raftery (1997) approximation of the log-marginal likelihood

logML_CJ

the Chib (1995)/Chib & Jeliazkov (2001) approximation to the log-marginal likelihood; this is available only if the model was estimated with the "logML_CJ"=true option

nchains

the number of chains that were used to estimate the model

nburnin

the number of burn-in draws per chain that were used when estimating the model

ndraws

the total number of retained draws from the posterior ( =chains draws)

nthin

value of the thinning parameter that was used when estimating the model

nseed

value of the seed for the random-number generator that was used when estimating the model

Additionally, the following functions are available for post-estimation analysis (see section B.14):

The multinomial Probit model uses the mfx() function to calculate and report the marginal effects of the independent variables on the probability of each outcome, m, occurring. Because the model calculates only one type of marginal effects, the only valid value for the "type" option is 1. The generic syntax for a statement involving the mfx() function after estimation of a multinomial Probit model is:

mfx( ["type"=1] [, "point"=<point of calculation>] [, "model"=<model name>] );

See the general documentation of the mfx() function (section B.14) for details on the other optional arguments.

PIC Although BayES can calculate marginal effects for the multinomial Probit model at each observation, the calculations may take an excessive amount of time to complete. This is because the GHK simulator needs to be invoked at every observed data point, each time using all draws from the posterior, thus leading to an immense number of computations.

The multinomial Probit model uses the predict() function to generate predictions of the probability each of the M + 1 outcomes occuring. Because the model generates only one type of predictions, the only valid value for the "type" option is 1. The generic syntax for a statement involving the predict() function after estimation of a multinomial Probit model is:

[<id value>] = predict( ["type"=1] [, "point"=<point of calculation>] [,"model"=<model name>] [, "stats"=true|false] [, "prefix"=<prefix for new variable name>] );

See the general documentation of the predict() function (section B.14) for details on the other optional arguments.

PIC Although BayES can generate summary statistics of the predictions for the multinomial Probit model at each observation, the calculations may take an excessive amount of time to complete. This is because the GHK simulator needs to be invoked at every observed data point, each time using all draws from the posterior, thus leading to an immense number of computations.

Examples

Example 1

myData = import("$BayESHOME/Datasets/dataset7.csv"); 
myData.constant = ones(rows(myData), 1); 
 
mnprobit( y ~ constant x1 x2 x3 x4 );

Example 2

myData = import("$BayESHOME/Datasets/dataset7.csv"); 
myData.constant = ones(rows(myData), 1); 
 
myModel = mnprobit( y ~ constant x1 x2 x3 x4, 
    "m"=ones(2*5,1), "P"=0.1*eye(2*5,2*5), 
    "burnin"=20000, "draws"=40000, "thin"=4, "chains"=2, 
    "logML_CJ" = true ); 
 
diagnostics("model"=myModel); 
 
kden(myModel.y_2$x3, "title" = "beta3 for the 2nd alternative"); 
 
margeff_mean = mfx("point"="mean","model"=myModel); 
margeff_median = mfx("point"="median","model"=myModel); 
margeff_atx = mfx("point"=[1,1,0.5,2,0],"model"=myModel); 
 
predict();

5Optional arguments are always given in option-value pairs (eg. "chains"=3).

Share this content:
Facebook Twitter LinkedIn Email
© 2016–20 Grigorios Emvalomatis