我的問題是這樣的:我得到NA
我應該在計算可靠的標準錯誤時得到一些值。面板數據迴歸:穩健的標準錯誤
我正在嘗試使用羣集健全標準錯誤進行固定效果面板迴歸。爲此,我按照Arai (2011)誰在頁。 3遵循Stock/ Watson (2006)(稍後發佈在Econometrica,對於那些有訪問權限的人)。我想通過(M/(M-1)*(N-1)/(N-K)
來糾正自由度,因爲我的羣集數量是有限的,而且我有不平衡的數據。
類似問題[1,2]在計算器上和交叉驗證相關問題[3]之前已經公佈。
新井(以及在第一環節的答案)使用的功能,下面的代碼(我在下面提供了一些進一步的評論我的數據):
gcenter <- function(df1,group) {
variables <- paste(
rep("C", ncol(df1)), colnames(df1), sep=".")
copydf <- df1
for (i in 1:ncol(df1)) {
copydf[,i] <- df1[,i] - ave(df1[,i], group,FUN=mean)}
colnames(copydf) <- variables
return(cbind(df1,copydf))}
# 1-way adjusting for clusters
clx <- function(fm, dfcw, cluster){
# R-codes (www.r-project.org) for computing
# clustered-standard errors. Mahmood Arai, Jan 26, 2008.
# The arguments of the function are:
# fitted model, cluster1 and cluster2
# You need to install libraries `sandwich' and `lmtest'
# reweighting the var-cov matrix for the within model
library(sandwich);library(lmtest)
M <- length(unique(cluster))
N <- length(cluster)
K <- fm$rank
dfc <- (M/(M-1))*((N-1)/(N-K))
uj <- apply(estfun(fm),2, function(x) tapply(x, cluster, sum));
vcovCL <- dfc*sandwich(fm, meat=crossprod(uj)/N)*dfcw
coeftest(fm, vcovCL) }
,其中gcenter
計算偏離平均值(固定效果)。然後,我繼續並使用DS_CODE
作爲我的羣集變量(我已將其數據命名爲「數據」)進行迴歸。
centerdata <- gcenter(data, data$DS_CODE)
datalm <- lm(C.L1.retE1M ~ C.MCAP_SEC + C.Impact_change + C.Mom + C.BM + C.PD + C.CashGen + C.NITA + C.PE + C.PEdummy + factor(DS_CODE), data=centerdata)
M <- length(unique(data$DS_CODE))
dfcw <- datalm$df/(datalm$df - (M-1))
,並要計算
clx(datalm, dfcw, data$DS_CODE)
然而,當我想計算UJ(見上述公式clx
)的變化,我只得到一開始對我的迴歸係數的一些值,然後很多零。如果此輸入uj用於方差,則只有NAs
結果。
我的數據
由於我的數據可能是特殊的結構,我無法弄清楚這個問題,我發佈了整個事情從Hotmail一個link。原因是有了其他數據(摘自Arai(2011)),我的問題不會發生。對不起,我很抱歉,如果你可以看看它,但我會很感激。 該文件是一個純粹包含數據的5mb .txt文件。
新居的論文你的鏈接下不復存在。你能提供實際的鏈接嗎? – MERose