简体   繁体   中英

How to replicate standard Tobit results in R using mhurdle package

I'm exploring multiple-hurdle models using the mhurdle package in R. To start, I trying to simply replicate the results of a standard Tobit model run using the tobit() function from the AER package or the censReg() function from the censReg package (both produce the same results). Using sample data from mhurdle , these latter two packages yield the same coefficient estimates for a Tobit regression, but I cannot replicate them using mhurdle() . Here is a basic example. I suspect I'm overlooking something rather simple, but I can't figure it out. Any idea where the misspecification lies between the two models?

library(censReg)
library(mhurdle)

### Load sample data from the mhurdle package
data(Interview) 

## mhurdle() results for standard Tobit specification
summary(mhurdle(vacations ~ 0 | linc, data=Interview, dist="n", h2=T))

## censReg() results for Tobit (same as tobit() from "AER")
summary(censReg(vacations ~ linc, data=Interview))

The mhurdle package produces the following output:

Call:
mhurdle(formula = vacations ~ 0 | linc, data = Interview, dist = "n", 
    h2 = TRUE, method = "bfgs")

Frequency of 0:  0.848 

Coefficients :
               Estimate Std. Error  t-value              Pr(>|t|)    
h2.(Intercept) -8.97938    0.54647 -16.4315 < 0.00000000000000022 ***
h2.linc         4.98411    0.61031   8.1666  0.000000000000000222 ***
sd.sd           8.68863    0.18009  48.2463 < 0.00000000000000022 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

Log-Likelihood: -765.67 on 3 Df

R^2 :
 Coefficient of determination : 0.040817 
 Likelihood ratio index       : NA  

The censReg and the AER packages produce the following output:

Call:
censReg(formula = vacations ~ linc, data = Interview, method = "bfgs")

Observations:
         Total  Left-censored     Uncensored Right-censored 
          1000            848            152              0 

Coefficients:
            Estimate Std. error t value              Pr(> t)    
(Intercept) -6.33252    0.53559 -11.823 < 0.0000000000000002 ***
linc         3.51493    0.46583   7.545   0.0000000000000451 ***
logSigma     1.81278    0.06231  29.091 < 0.0000000000000002 ***
---
Signif. codes:  0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1

BFGS maximization, 44 iterations
Return code 0: successful convergence 
Log-likelihood: -712.5855 on 3 Df

The mhurdle function has an argument "scaled". If its meaning is TRUE (default), the dependent variable is divided by its geometric mean. So, in this case estimated coefficients are scaled by the geometric mean of dependent variable. To obtain the standard result (tobit, censreg) just change "scaled" to FALSE.

summary(mhurdle(vacations ~ 0 | linc, data=Interview, dist="n", h2=T, scaled = FALSE))

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM