Search code examples
rtexregr-zelig

texreg-ing Tobit output from zelig package (R)


This is a strange question, but here goes:

I am trying to output my model results into a TeX table with texreg.

reg <- zelig(Y ~ X, model = "tobit", below = 0, above = Inf)

However, I'm getting an error from texreg:

texreg(reg)

Error in .local(model, ...) : Only the following Zelig models are currently supported: logit, ls, mlogit, ologit, probit, relogit.

My question is basically: is this an error from Zelig or from texreg?


Solution

  • UPDATE 2015-07-20:

    extract.zelig now has a tobit method (Zelig_4.2-1)

    So texreg(reg) now works as expected. I'll leave the below for posterity anyway.


    Having identified the source of the issue, I updated the extract.zelig method and passed this along to the package creator/maintainer Philip Leifield, who incorporated into the latest R-Forge version (available via install.packages("texreg", repos="http://R-Forge.R-project.org")). I'm not sure it's in the current CRAN release (2015-04-07)...

    Here's what we needed to add:

    else if ("tobit" %in% class(model)) {
            coefficient.names <- rownames(s$table)
            coefficients <- s$table[, 1]
            standard.errors <- s$table[, 2]
            significance <- s$table[, 5]
            gof <- numeric()
            gof.names <- character()
            gof.decimal <- logical()
            if (include.aic == TRUE) {
                aic <- AIC(model)
                gof <- c(gof, aic)
                gof.names <- c(gof.names, "AIC")
                gof.decimal <- c(gof.decimal, TRUE)
            }
            if (include.bic == TRUE) {
                bic <- BIC(model)
                gof <- c(gof, bic)
                gof.names <- c(gof.names, "BIC")
                gof.decimal <- c(gof.decimal, TRUE)
            }
            if (include.loglik == TRUE) {
                lik <- logLik(model)[1]
                gof <- c(gof, lik)
                gof.names <- c(gof.names, "Log Likelihood")
                gof.decimal <- c(gof.decimal, TRUE)
            }
            if (include.nobs == TRUE) {
                n <- nrow(model$data)
                gof <- c(gof, n)
                gof.names <- c(gof.names, "Num. obs.")
                gof.decimal <- c(gof.decimal, FALSE)
            }
            tr <- createTexreg(coef.names = coefficient.names, coef = coefficients, 
                se = standard.errors, pvalues = significance, gof.names = gof.names, 
                gof = gof, gof.decimal = gof.decimal)
            return(tr)
        }