2014-02-06 5 views
3

Я пытаюсь перенести модель tobit из Stata в R.Как использовать надежный se и кластер с моделью vglm tobit?

Командами Stata для надежного было бы просто добавить ,vce(robust) к модели. А для кластеризации это будет ,vce(cluster idvar).

Возпроизводимо Stata пример:

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) 

Воспроизводимость R Пример:

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)) 

Я понимаю, что coeftest(m, vcov = sandwich) должен дать мне надежный себе.

Но я получаю следующее: Error: $ operator not defined for this S4 class.

Может кто-то предложить подход для оценки прочного такова из модели vglm, а также кластерный себе с vglm?

+2

Я думаю, что вам нужно закодировать это самостоятельно. Пакет 'plm' может группировать SE, но это относится к линейным моделям. Вы можете либо запрограммировать аналитическое решение, либо блок-бутстрап блоком. –

ответ

2

Проведя целый день, рассматривая этот вопрос самостоятельно, я думаю, что, наконец, нашел подходящий пакет: Zelig.

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

Сравнить без кластеризации для кластеризации:

БЕЗ

> 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 

С

> 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 
+0

Я принял ваше решение, но добавлю, что он работает только тогда, когда данные подвергаются цензуре снизу. Zelig (версия 5.0) также имеет модель «tobit.bayes», которая позволяет использовать цензурные данные, но, похоже, не поддерживает кластерные модели. –