3

I fitted a multinomial probit model with one independent categorical variable Y (levels 1,2,3) and two explanatory variables X1 and X2.

Using mlogit package in R like this:

library(mlogit)
df = read.csv("https://gitlab.com/cristiandavidarteaga/rtraining/raw/b40daf27a52bf01ce58d0ea32c5e4854f5b23836/mlogit_2var/data.csv",header = T)
d = mlogit.data(df,shape = "wide",choice = "y")

myprobit = mlogit(y~0|x1+x2, d, probit = TRUE)
summary(myprobit)

Gives me the following coefficients:

Frequencies of alternatives:
    1     2     3 
0.509 0.128 0.363 

bfgs method
21 iterations, 0h:0m:34s 
g'(-H)^-1g = 9.56E-08 
gradient close to zero 

Coefficients :
                 Estimate  Std. Error  t-value Pr(>|t|)    
2:(intercept) -10.7685665   0.9330425 -11.5413   <2e-16 ***
3:(intercept) -11.4357413   1.0913296 -10.4787   <2e-16 ***
2:x1            0.1097622   0.0093004  11.8019   <2e-16 ***
3:x1            0.1094478   0.0094566  11.5737   <2e-16 ***
2:x2            0.1010603   0.0100107  10.0952   <2e-16 ***
3:x2            0.1150660   0.0116610   9.8676   <2e-16 ***
2.3             0.9781048   0.0471720  20.7348   <2e-16 ***
3.3             0.0676135   0.0521005   1.2978   0.1944    
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Log-Likelihood: -199.84
McFadden R^2:  0.79498 
Likelihood ratio test : chisq = 1549.8 (p.value = < 2.22e-16)

I can't find a clear explanation about how to use these coefficients to predict outcomes for new data.

For example, If I have these coefficients, How can I manually predict (by hand, not using R) the outcome (1, 2 or 3) for x1 = 26 and x2 = 55 ?

Do I need to use the co-variance matrix to do this?

I know R or STATA can do it, however, for my research it's important to understand how to do it since I need to write a custom version of probit.

  • Why are all the p-values so low? How much data do you have? – Michael R. Chernick Apr 13 '17 at 00:15
  • I simulated the data, that is probably why, I have 1000 observations, this is the data just in case: https://gitlab.com/cristiandavidarteaga/rtraining/raw/b40daf27a52bf01ce58d0ea32c5e4854f5b23836/mlogit_2var/data.csv – Cristian Arteaga Apr 13 '17 at 03:16
  • fitted(myprobit) RTFM – StasK Apr 18 '17 at 13:59
  • Questions that are just about how to use R are generally off topic here. If you have a software-neutral question about how prediction works with multinomial probit models, please edit to clarify. – gung - Reinstate Monica Apr 18 '17 at 16:08
  • 4
    Dear @gung I edited, I specified that I want to predict (calculate probabilities) by hand, I know a software package can do it but my need is to uderstand how it works. – Cristian Arteaga Apr 18 '17 at 18:14

2 Answers2

1

For example, If I have these coefficients, How can I manually predict (by hand, not using R) the outcome (1, 2 or 3) for x1 = 26 and x2 = 55 ?

You cannot do it by hand. The conditional probabilities are given by 2D integrals with the integrand being a multivariate normal distribution density function. There is no closed form solution. See the vignette called "6. The multinomial probit model" in version 1.1-1 of the mlogit package. You can also see my formulas in this question.

Computation of Multivariate Normal and t Probabilities by Genz and Bretz has a section on the 2D case but there is no closed form solution.

Do I need to use the co-variance matrix to do this?

Yes. See the aforementioned vignette.

-2

In the Multinomial Probit model, recall that the probability of individual $i$ choosing alternative $j$, expressed as $\pi_{ij}$, is given by: $$P(Y = y_{ij}) = \pi_{ij} = \Phi(\beta_0 + \beta_1x_{1i} + \beta_2x_{2i} + \theta_j)$$ where $\Phi(z)$ = the standard normal cumulative density function, expressed as: $$\Phi(z) = \frac{1}{\sqrt{2\pi}}\int_{-\infty}^{z}e^{-x^2/2}dx$$ Approximate values for $\Phi(z)$ can be found in tables in most statistics textbooks.

Hence from your results, the corresponding $\pi_{ij}$ are expressed as:

  • For $j$ = 2 $$\pi_{i2} = \Phi(-10.769 + 0.11x_{1i} + 0.101x_{2i} + 0.978)$$
  • For $j$ = 3 $$\pi_{i3} = \Phi(-11.436 + 0.109x_{1i} + 0.115x_{2i} + 0.068)$$
Emaasit
  • 5
  • 3
  • This is not the correct formulas for the model the OP is using. The uses mlogit which estimates the covariance matrix for the error. Thus, the conditional probabilities can be computed as two dimensional integrals over a cube. – Benjamin Christoffersen Jan 13 '21 at 09:59