rstatavgam

How to use robust se and cluster se with vglm tobit model?


I'm trying to migrate a tobit model from Stata to R.

The Stata commands for robust would be to just add ,vce(robust) to the model. And for clustering it would be ,vce(cluster idvar).

Reproducible Stata example:

use http://www.ats.ucla.edu/stat/stata/dae/tobit, clear
tobit apt read math i.prog, ul(800)
tobit apt read math i.prog, ul(800) vce(cluster prog)

Reproducible R example:

library("VGAM")

dat <- read.csv("http://www.ats.ucla.edu/stat/data/tobit.csv")

summary(m <- vglm(apt ~ read + math + prog, tobit(Upper = 800), data = dat))

My understanding is that coeftest(m, vcov = sandwich) should give me robust se.

But I get the following: Error: $ operator not defined for this S4 class.

Could someone suggest an approach for estimating the robust se from the vglm model and also clustered se with vglm?


Solution

  • After spending a whole day looking into this question myself, I think I finally found an appropriate package: Zelig.

    http://docs.zeligproject.org/en/latest/zelig-tobit.html

    Compare without clustering to clustering:

    WITHOUT

    > summary(m <- zelig(apt ~ read + math + prog,
              below=0, above=Inf, model="tobit", data = dat))
    
    
     How to cite this model in Zelig:
      Kosuke Imai, Gary King, and Olivia Lau. 2015.
      "tobit: Linear regression for Left-Censored Dependent Variable"
      in Kosuke Imai, Gary King, and Olivia Lau, "Zelig: Everyone's Statistical Software,"
      http://gking.harvard.edu/zelig
    
    
    Call:
    "survreg"(formula = formula, dist = "gaussian", data = data, 
        robust = robust)
                    Value Std. Error     z        p
    (Intercept)    242.74     29.760  8.16 3.45e-16
    read             2.55      0.576  4.43 9.24e-06
    math             5.38      0.651  8.27 1.31e-16
    proggeneral    -13.74     11.596 -1.18 2.36e-01
    progvocational -48.83     12.818 -3.81 1.39e-04
    Log(scale)       4.12      0.050 82.41 0.00e+00
    
    Scale= 61.6 
    
    Gaussian distribution
    Loglik(model)= -1107.9   Loglik(intercept only)= -1202.8
        Chisq= 189.72 on 4 degrees of freedom, p= 0 
    Number of Newton-Raphson Iterations: 5 
    n= 200 
    

    WITH

    > summary(m <- zelig(apt ~ read + math + prog, below=0,
              above=Inf, model="tobit",
              data = dat,robust=T,cluster="prog"))
    
    
     How to cite this model in Zelig:
      Kosuke Imai, Gary King, and Olivia Lau. 2015.
      "tobit: Linear regression for Left-Censored Dependent Variable"
      in Kosuke Imai, Gary King, and Olivia Lau, "Zelig: Everyone's Statistical Software,"
      http://gking.harvard.edu/zelig
    
    
    Call:
    "survreg"(formula = formula, dist = "gaussian", data = data, 
        robust = robust)
                    Value Std. Err (Naive SE)       z        p
    (Intercept)    242.74   2.8315     29.760   85.73 0.00e+00
    read             2.55   0.3159      0.576    8.08 6.40e-16
    math             5.38   0.2770      0.651   19.44 3.78e-84
    proggeneral    -13.74   0.3252     11.596  -42.25 0.00e+00
    progvocational -48.83   0.1978     12.818 -246.83 0.00e+00
    Log(scale)       4.12   0.0586      0.050   70.34 0.00e+00
    
    Scale= 61.6 
    
    Gaussian distribution
    Loglik(model)= -1107.9   Loglik(intercept only)= -1202.8
        Chisq= 189.72 on 4 degrees of freedom, p= 0 
    (Loglikelihood assumes independent observations)
    Number of Newton-Raphson Iterations: 5 
    n= 200