8
$\begingroup$

From the document and help, probit model is supported by mlogit. But when I tried it with these R scripts, the estimation takes much longer time to run (than the logit verion) and the result is quite a bit different as well (argument probit=FALSE). Does the probit behave correctly? If so, how should I interpret the er.gc, er.gr, etc coefficients?

> require(mlogit)
> data(Heating)
> H <- mlogit.data(Heating, shape="wide", choice="depvar", varying=c(3:12))
> m1.probit = mlogit(depvar~ic+oc, H, probit=TRUE)
> summary(m1.probit)

Call:
mlogit(formula = depvar ~ ic + oc, data = H, probit = TRUE)

Frequencies of alternatives:
      ec       er       gc       gr       hp 
0.071111 0.093333 0.636667 0.143333 0.055556 

bfgs method
37 iterations, 0h:4m:54s 
g'(-H)^-1g = 0.011 
last step couldn't find higher value 

Coefficients :
                  Estimate  Std. Error t-value Pr(>|t|)  
er:(intercept)  2.5611e-01  3.6641e-01  0.6990  0.48457  
gc:(intercept) -2.6944e-02  3.3211e-01 -0.0811  0.93534  
gr:(intercept) -1.8439e+01  3.2798e+01 -0.5622  0.57398  
hp:(intercept) -6.4231e-01  7.4214e-01 -0.8655  0.38677  
ic             -1.1447e-03  5.3175e-04 -2.1528  0.03133 *
oc             -3.3779e-03  1.4011e-03 -2.4109  0.01591 *
er.gc           4.4987e-01  2.6880e-01  1.6736  0.09421 .
er.gr           5.8580e+00  1.1236e+01  0.5214  0.60212  
er.hp           1.2613e+00  5.0231e-01  2.5109  0.01204 *
gc.gc           7.1013e-01  3.5489e-01  2.0010  0.04540 *
gc.gr          -8.4606e+00  1.6848e+01 -0.5022  0.61555  
gc.hp           6.7245e-01  6.1475e-01  1.0939  0.27401  
gr.gr           1.4085e+01  2.6034e+01  0.5410  0.58849  
gr.hp           4.9476e-01  4.4568e-01  1.1101  0.26694  
hp.hp           2.2620e-01  2.9062e-01  0.7783  0.43637  
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Log-Likelihood: -1000.1
McFadden R^2:  0.021626 
Likelihood ratio test : chisq = 44.213 (p.value = 1.4049e-05)

> m1.logit = mlogit(depvar~ic+oc, H, probit=FALSE)
> summary(m1.logit)

Call:
mlogit(formula = depvar ~ ic + oc, data = H, probit = FALSE, 
    method = "nr", print.level = 0)

Frequencies of alternatives:
      ec       er       gc       gr       hp 
0.071111 0.093333 0.636667 0.143333 0.055556 

nr method
6 iterations, 0h:0m:0s 
g'(-H)^-1g = 9.58E-06 
successive function values within tolerance limits 

Coefficients :
                  Estimate  Std. Error t-value  Pr(>|t|)    
er:(intercept)  0.19459102  0.20424212  0.9527 0.3407184    
gc:(intercept)  0.05213336  0.46598878  0.1119 0.9109210    
gr:(intercept) -1.35058266  0.50715442 -2.6631 0.0077434 ** 
hp:(intercept) -1.65884594  0.44841936 -3.6993 0.0002162 ***
ic             -0.00153315  0.00062086 -2.4694 0.0135333 *  
oc             -0.00699637  0.00155408 -4.5019 6.734e-06 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Log-Likelihood: -1008.2
McFadden R^2:  0.013691 
Likelihood ratio test : chisq = 27.99 (p.value = 8.3572e-07)
$\endgroup$
1
  • $\begingroup$ You have a nice fast machine -- took my computer 2x as long to fit that probit model! $\endgroup$ – atiretoo Jun 3 '13 at 21:18
3
$\begingroup$

The run with probit=TRUE has not converged to a good answer. See the line in the output that starts with 'last step could not find higher value' and compare the same section in the logit model output. The other reason it takes so long to fit the probit model is that the software is approximating a high dimensional integral using simulation (See the vignette for mlogit, pg 54). Sometimes rescaling covariates can help with numerical difficulties but that's not the case here, I tried

HS$ic <- scale(H$ic)
HS$oc <- scale(H$oc)

m2.probit = mlogit(depvar~ic+oc, HS, probit=TRUE)

and had the same difficulty. I would treat the results of the probit model with a degree of skepticism. In particular, there is something funny going on with the outcome 'gr' in the probit model (see intercepts, and variance parameter estimates).

The coefficients in the summary that are labeled er.gc, er.gr etc. are the parameters of the variance-covariance matrix that is being estimated as part of the probit model.

$\endgroup$
6
$\begingroup$

Probit models often take longer to fit because the likelihood function is calculated by simulation or quadrature. The logit likelihood has a closed form solution that makes it fast.

Also, the Probit likelihood function is not globally convex, so the algorithm can converge to local maxima. You need to try different starting values.

Finally, the coefficients should not be the same, because they use a different scale parameter.

In general, if there is not a really compelling reason to use Probit, it's best to just stay away.

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.