#r #regression #log-likelihood #goodness-of-fit
#r #регрессия #логарифмическая вероятность #соответствие
Вопрос:
Я оценил модель Tobit, используя пакет censReg вместе с функцией censReg. В качестве альтернативы, та же модель Тобита оценивается с использованием функции тобита в пакете AER.
Теперь мне действительно нравится иметь некоторую статистику соответствия, такую как псевдо-R2. Однако всякий раз, когда я пытаюсь оценить это, результат возвращается как NA. Например:
Tobit <- censReg(Listing$occupancy_rate ~ ., left = -Inf, right = 1, data = Listing)
PseudoR2(Tobit, which = "McFadden")
[1] NA
До сих пор я видел только сообщения о псевдо-R2, когда люди используют Stata. Кто-нибудь знает, как оценить это в R?
В качестве альтернативы, Tobit оценивает (логарифмическую) сигму, которая в основном является стандартным отклонением остатков. Могу ли я использовать это для вычисления R2?
Вся помощь действительно ценится.
Ответ №1:
Вы можете использовать DescTools
пакет для вычисления PseudoR2
. Вы не предоставили никаких выборочных данных. Итак, мне сложно запустить вашу модель. Я использую набор данных по умолчанию, например
library(DescTools)
r.glm <- glm(Survived ~ ., data=Untable(Titanic), family=binomial)
PseudoR2(r.glm, c("McFadden"))
Для вашей модели вы можете использовать что-то вроде
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
Или использовать censReg
так, как вы использовали
library(censReg)
data("Affairs", package = "AER")
estResult <- censReg(affairs ~ age yearsmarried religiousness
occupation rating, data = Affairs)
summary(estResult)
pseudoR2(estResult)
#>[1] 0.05258401
Вы можете найти подробную информацию pseudoR2
по следующей ссылке
Комментарии:
1. Спасибо за этот ответ! При использовании самодельной функции это сработало.