0

我目前正在mitools分析 5 个估算数据集(我使用了 Amelia)。分析单位是国家年。每个数据集有超过 3600 个观测值。所有分析感兴趣的因变量是滞后计数变量。

鉴于数据的性质(面板和计数),我决定使用pglm package. 我一直在使用以下代码来尝试估计所有五个估算数据集的 pglm 模型,以便将这些估计与 mitools 结合起来:

setwd("C:/Desktop")

library(mitools)
library(pglm)

#The data.dir code below establishes where the files are located
data.dir <- "C:/Desktop"

#The imputationList function combines all 5 imputed gtot datasets into one object
#called allgtot
allcountdata <- imputationList(lapply(list.files(data.dir, pattern = "panelcount.\\.dta", full=TRUE),read.dta, warn.missing.labels=FALSE))

#To see if the combining was successful
allcountdata

#Lets see if all of the column names are still there
colnames(allcountdata)


count_mitools<-pglm(count_lag ~     
                        HROsec
                        + hrofilled
                        + physint
                        + democracy
                        + log(PopTotal)
                        + GDPpercapita
                        + cell
                        + gini
                        + polity2
                        + CivilWar
                        + milper
                        + elp
                        + factor(year),
                        allcountdata,
                        family="negbin",
                        model="within", 
                        print.level=0,
                        method="nr",
                        index=c("cowcode", "year"))

但是,我收到以下错误:

Error in is.finite(x[[i]]) : 
  default method not implemented for type 'list'

我尝试将列表对象强制转换为数据框,如下所示:

as.data.frame(allcountdata)

但是,R 声明我不能这样做。

我该怎么做才能使 pglm 估计工作?

如果我不能使用 pglm,那么适用于面板计数数据回归分析的替代模型(和相应的 R 包)是什么(最好是两者):

a) 与 mitools 分析兼容
b) 接受列表对象进行估计

我提供了一个压缩 zip 文件的链接,该文件包含我在这里使用的所有五个估算数据集。

4

0 回答 0