R 面板数据回归:稳健标准误差
我的问题是:我得到了R 面板数据回归:稳健标准误差,r,regression,standard-error,panel-data,robust,R,Regression,Standard Error,Panel Data,Robust,我的问题是:我得到了NA,在计算稳健标准误差时,我应该得到一些值 我正在尝试使用集群稳健标准误差进行固定效应面板回归。为此,我在《世界卫生组织》第9页上关注世界卫生组织。下面是第3条(稍后发表于,适用于有访问权限的用户)。我想通过(M/(M-1)*(N-1)/(N-K)纠正向下偏差的自由度,因为我的簇数是有限的,并且我有不平衡的数据 类似的问题在StackOverflow上的[,]和CrossValidated上的相关问题[]之前已经发布过 Arai(以及第一个链接中的答案)使用以下函数代码(我
NA
,在计算稳健标准误差时,我应该得到一些值
我正在尝试使用集群稳健标准误差进行固定效应面板回归。为此,我在《世界卫生组织》第9页上关注世界卫生组织。下面是第3条(稍后发表于,适用于有访问权限的用户)。我想通过(M/(M-1)*(N-1)/(N-K)
纠正向下偏差的自由度,因为我的簇数是有限的,并且我有不平衡的数据
类似的问题在StackOverflow上的[,]和CrossValidated上的相关问题[]之前已经发布过
Arai(以及第一个链接中的答案)使用以下函数代码(我在下面提供了我的数据,并提供了一些进一步的注释):
我想计算一下
clx(datalm, dfcw, data$DS_CODE)
然而,当我想计算方差的uj(见上面的公式clx
)时,我只在开始时得到回归器的一些值,然后是大量的零。如果这个输入uj用于方差,则只有NAs
结果
我的数据
由于我的数据可能具有特殊的结构,我无法找出问题所在,因此我将整件事情作为Hotmail的一个链接发布。原因是,使用其他数据(取自Arai(2011))我的问题没有发生。对于混乱的情况,我先表示歉意,但如果您能查看一下,我将非常感激。
该文件是一个5mb.txt文件,仅包含数据。经过一段时间的处理后,它对我有效,并提供:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 4.5099e-16 5.2381e-16 0.8610 0.389254
C.MCAP_SEC -5.9769e-07 1.2677e-07 -4.7149 2.425e-06 ***
C.Impact_change -5.3908e-04 7.5601e-05 -7.1306 1.014e-12 ***
C.Mom 3.7560e-04 3.3378e-03 0.1125 0.910406
C.BM -1.6438e-04 1.7368e-05 -9.4645 < 2.2e-16 ***
C.PD 6.2153e-02 3.8766e-02 1.6033 0.108885
C.CashGen -2.7876e-04 1.4031e-02 -0.0199 0.984149
C.NITA -8.1792e-02 3.2153e-02 -2.5438 0.010969 *
C.PE -6.6170e-06 4.0138e-06 -1.6485 0.099248 .
C.PEdummy 1.3143e-02 4.8864e-03 2.6897 0.007154 **
factor(DS_CODE)130324 -5.2497e-16 5.2683e-16 -0.9965 0.319028
factor(DS_CODE)130409 -4.0276e-16 5.2384e-16 -0.7689 0.441986
factor(DS_CODE)130775 -4.4113e-16 5.2424e-16 -0.8415 0.400089
...
str(数据)
为您返回了什么?plm包可以估计面板回归的聚集SEs。原始数据不再可用,因此这里有一个使用虚拟数据的示例
require(foreign)
require(plm)
require(lmtest)
test <- read.dta("http://www.kellogg.northwestern.edu/faculty/petersen/htm/papers/se/test_data.dta")
fpm <- plm(y ~ x, test, model='pooling', index=c('firmid', 'year'))
##Arellano clustered by *group* SEs
> coeftest(fpm, vcov=function(x) vcovHC(x, cluster="group", type="HC0"))
t test of coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.029680 0.066939 0.4434 0.6575
x 1.034833 0.050540 20.4755 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
有关更多详细信息,请参阅:
str(data)
返回DS\u code
的因子和DNEW
的int。所有其他结果都是一样的……但是:这是最奇怪的事情:如果我使用简化的数据集(我只给了您一个小数据集,没有其他变量和R行数).对于大数据集,我在计算uj时得到了一行NAs
。如果我导出的整个数据集没有行号(row.names=FALSE
),再次导入并进行回归,它会与大数据集一起工作。我不知道为什么…Arai的论文不再存在于你的链接下。你能提供实际链接吗?
Estimate Std. Error t value Pr(>|t|)
(Intercept) 4.5099e-16 5.2381e-16 0.8610 0.389254
C.MCAP_SEC -5.9769e-07 1.2677e-07 -4.7149 2.425e-06 ***
C.Impact_change -5.3908e-04 7.5601e-05 -7.1306 1.014e-12 ***
C.Mom 3.7560e-04 3.3378e-03 0.1125 0.910406
C.BM -1.6438e-04 1.7368e-05 -9.4645 < 2.2e-16 ***
C.PD 6.2153e-02 3.8766e-02 1.6033 0.108885
C.CashGen -2.7876e-04 1.4031e-02 -0.0199 0.984149
C.NITA -8.1792e-02 3.2153e-02 -2.5438 0.010969 *
C.PE -6.6170e-06 4.0138e-06 -1.6485 0.099248 .
C.PEdummy 1.3143e-02 4.8864e-03 2.6897 0.007154 **
factor(DS_CODE)130324 -5.2497e-16 5.2683e-16 -0.9965 0.319028
factor(DS_CODE)130409 -4.0276e-16 5.2384e-16 -0.7689 0.441986
factor(DS_CODE)130775 -4.4113e-16 5.2424e-16 -0.8415 0.400089
...
str(dat)
'data.frame': 48251 obs. of 12 variables:
$ DS_CODE : chr "902172" "902172" "902172" "902172" ...
$ DNEW : num 2e+05 2e+05 2e+05 2e+05 2e+05 ...
$ MCAP_SEC : num 78122 71421 81907 80010 82462 ...
$ NITA : num 0.135 0.135 0.135 0.135 0.135 ...
$ CashGen : num 0.198 0.198 0.198 0.198 0.198 ...
$ BM : num 0.1074 0.1108 0.097 0.0968 0.0899 ...
$ PE : num 57 55.3 63.1 63.2 68 ...
$ PEdummy : num 0 0 0 0 0 0 0 0 0 0 ...
$ L1.retE1M : num -0.72492 0.13177 0.00122 0.07214 -0.07332 ...
$ Mom : num 0 0 0 0 0 ...
$ PD : num 5.41e-54 1.51e-66 3.16e-80 2.87e-79 4.39e-89 ...
$ Impact_change: num 0 -10.59 -10.43 0.7 -6.97 ...
require(foreign)
require(plm)
require(lmtest)
test <- read.dta("http://www.kellogg.northwestern.edu/faculty/petersen/htm/papers/se/test_data.dta")
fpm <- plm(y ~ x, test, model='pooling', index=c('firmid', 'year'))
##Arellano clustered by *group* SEs
> coeftest(fpm, vcov=function(x) vcovHC(x, cluster="group", type="HC0"))
t test of coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.029680 0.066939 0.4434 0.6575
x 1.034833 0.050540 20.4755 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
library("lmtest")
library("multiwayvcov")
data(petersen)
m1 <- lm(y ~ x, data = petersen)
> coeftest(m1, vcov=function(x) cluster.vcov(x, petersen[ , c("firmid")],
df_correction=FALSE))
t test of coefficients:
Estimate Std. Error t value Pr(>|t|)
(Intercept) 0.029680 0.066939 0.4434 0.6575
x 1.034833 0.050540 20.4755 <2e-16 ***
---
Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1