Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

Tags:

r

stata

vgam

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?

like image 740
Jake Russ Avatar asked Oct 20 '22 15:10

Jake Russ


1 Answers

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 
like image 126
MichaelChirico Avatar answered Nov 01 '22 15:11

MichaelChirico