R中具有固定效应的Tobit回归-警告或错误

jecbmhm3  于 2023-03-20  发布在  其他
关注(0)|答案(1)|浏览(199)

我正在使用大型面板数据集估计标准Tobit模型。我需要包括ID和TIME的固定效应,但使用AER::tobit()或VGAM:vglm()会遇到优化问题。问题似乎与反转设计矩阵有关。
例如,AER::tobit()和VGAM:vglm()对于下面的示例代码tobit.AER和tobit.vglm运行良好,但是一旦添加因子变量as.factor(id),优化要么失败(AER),要么产生警告(VGAM)。
错误包括:
求解默认值(vcov.hyp)时出错:系统在计算上是奇异的:倒数条件数= 3.00879e-17
以及
检查wz(wz,M = M,trace =跟踪,wzepsilon =控制$wzepsilon):工作权重变量“wz”的16个对角元素已替换为0.00000000001819
因此,AER::tobit停止,VGAM:vglm出于所有实际目的被卡住(在我的实际大型数据集上运行时)。
我似乎无法为这两个软件包中的任何一个选择不同的优化方法(AER依赖于survreg,VGAM有自己的基于Fisher评分的优化例程)。
有没有其他的编码方法?
谢谢你!

n <- 1000

res <- rnorm(n, mean = 0, sd = 1)
int <- c(rep(0,n/2), rep(10,n/2)) 
id  <- c(rep(0,n/2), rep(1,n/2)) 
X   <- rnorm(n, mean = 0, sd = 1)

y.star <- int + 4*X + res
y <- if_else(y.star >= 0, y.star, 0)

test.data <- data.frame(factor(id), y, X)

summary(tobit.AER    <- AER::tobit(y   ~ X,                  left = 0, cluster = id, robust=TRUE, data = test.data))
summary(tobit.AER.fe <- AER::tobit(y   ~ X + as.factor(id) , left = 0, cluster = id, robust=TRUE, data = test.data))

summary(tobit.vglm    <- VGAM::vglm(y   ~ X ,                 VGAM::tobit(Lower = 0, type.fitted = "censored"), robust=TRUE, data = test.data))
summary(tobit.vglm.fe <- VGAM::vglm(y   ~ X + as.factor(id) , VGAM::tobit(Lower = 0, type.fitted = "censored"), robust=TRUE, data = test.data))```
ctehm74n

ctehm74n1#

当包含大型面板数据集的固定效应时,反转设计矩阵会出现问题,并导致您在上面强调的问题。
尝试使用 * 组内 * 变换,该变换涉及从每组内的每个观测减去组均值(即,对于每个ID和TIME组合)。此变换消除了在模型中包含固定效应的需要,并有助于降低问题的维度。

library(plm)

n <- 1000
res <- rnorm(n, mean = 0, sd = 1)
int <- c(rep(0,n/2), rep(10,n/2)) 
id  <- c(rep(0,n/2), rep(1,n/2)) 
time <- rep(1:2, n/2)
X   <- rnorm(n, mean = 0, sd = 1)

y.star <- int + 4*X + res
y <- if_else(y.star >= 0, y.star, 0)

test.data <- data.frame(id, time, y, X)

tobit.plm <- plm::pgmm(y ~ X, data = test.data, index = c("id", "time"), effect = "twoways", model = "tobit", lower = 0, display = "summary")

summary(tobit.plm)

相关问题