Arai の (2015) メソッド (具体的には、4 ページの mclx 関数) を使用して、R で私の lm のクラスターロバスト標準エラーを生成します ( http://www.ne.su.se/polopoly_fs/1.216115.1426234213!/menu /standard/file/clustering1.pdf )。
パネル データを使用して、クラスターに強い双方向の標準誤差 (年別および国別) を作成しようとしました。
私の問題は、すべての独立変数の係数推定値を取得する一方で、標準誤差の NA、t 統計、および一部の (すべてではない) 変数の p 値を取得することです。
関連トピックを確認しましたが、この問題に対する回答が見つかりませんでした。特に、すべてのデータは「数値」であるため、データ構造とは関係ありません。多重共線性の問題ではなく、クラスター次元 (年と国) ごとに十分な観測値があります...
mclx() 関数は次のようになります。
### Write function for Multiple dimension SE clustering
mclx <-
function(fm, dfcw, cluster1, cluster2){
library(sandwich)
library(lmtest)
cluster12 = paste(cluster1, cluster2, sep="")
M1 <- length(unique(cluster1))
M2 <- length(unique(cluster2))
M12 <- length(unique(cluster12))
N <- length(cluster1)
K <- fm$rank
dfc1 <- (M1/(M1-1))*((N-1)/(N-K))
dfc2 <- (M2/(M2-1))*((N-1)/(N-K))
dfc12 <- (M12/(M12-1))*((N-1)/(N-K))
u1 <- apply(estfun(fm), 2,
function(x) tapply(x, cluster1, sum))
u2 <- apply(estfun(fm), 2,
function(x) tapply(x, cluster2, sum))
u12 <- apply(estfun(fm), 2,
function(x) tapply(x, cluster12, sum))
vc1 <- dfc1*sandwich(fm, meat=crossprod(u1)/N)
vc2 <- dfc2*sandwich(fm, meat=crossprod(u2)/N)
vc12 <- dfc12*sandwich(fm, meat=crossprod(u12)/N)
vcovMCL <- (vc1+vc2-vc12)*dfcw
coeftest(fm, vcovMCL)
}
次に、多変量線形モデルを指定して、結果を呼び出します。
### cluster on two variables (year and anation)
mclx(fm, 1, data$year, data$nation)
残念ながら、ここにデータを掲載する許可はありません。また、新井(2015)提供のテストデータを使用すると問題は発生しませんが、私のデータでは問題がわかりません。では、標準誤差、t 統計、および p 値の一部のパラメーター推定値が NA を生成する理由と、これを回避する方法について、誰かが一般的な考えを持っているのではないでしょうか? ヒントがあればとてもありがたいです...