Goodness of Fit statistic Tobit model

813 views Asked by At

I have estimated a Tobit model using the censReg package, along with the censReg function. Alternatively, the same Tobit model is estimated using the tobit function in the AER package.

Now, I really like to have some goodness of fit statistic, such as the Pseudo-R2. However, whenever I try to estimate this, the output returns as NA. For example:

Tobit <- censReg(Listing$occupancy_rate ~ ., left = -Inf, right = 1, data = Listing)
PseudoR2(Tobit, which = "McFadden")
[1] NA

So far, I have only seen reported Pseudo-R2's when people use Stata. Does anyone know how to estimate it in R?

Alternatively, Tobit estimates the (log)Sigma, which is basically the standard deviation of the residuals. Could I use this to calculate the R2?

All help is really appreciated.

1

There are 1 answers

1
UseR10085 On BEST ANSWER

You can use DescTools package to calculate PseudoR2. You have not provided any sample data. So, it is hard for me to run your model. I am using a default dataset like

library(DescTools)
r.glm <- glm(Survived ~ ., data=Untable(Titanic), family=binomial)

PseudoR2(r.glm, c("McFadden"))

For your model, you can use something like

library(AER)
data("Affairs", package = "AER")
fm.tobit <- tobit(affairs ~ age + yearsmarried + religiousness + occupation + rating,
                  data = Affairs)

#Create a function for pseudoR2 calculation 
pseudoR2 <- function(obj) 1 - as.vector(logLik(obj)/logLik(update(obj, . ~ 1)))
pseudoR2(fm.tobit)
#>[1] 0.05258401

Or using censReg as you have used

library(censReg)
data("Affairs", package = "AER")
estResult <- censReg(affairs ~ age + yearsmarried + religiousness +
                        occupation + rating, data = Affairs)
summary(estResult)
pseudoR2(estResult)
#>[1] 0.05258401

You can find the details about pseudoR2 in the following link

R squared in logistic regression