[英]R studio: Panel regression and clustering by group and time?
我有一些面板數據並且正在使用 PLM 包。 我想按組和時間對標准錯誤進行聚類。 但是,我只能在一個級別上進行聚類,而不能同時在兩個級別上進行聚類。
數據示例:
Date Country Stock_Returns House_Prices
1990 Japan 11.84 1000.00
1991 Japan 5.65 759.6
1990 USA -6.45 2831.90
1991 USA 9.78 532.63
我的回歸的一個例子
Reg1 <- plm(Stock_Returns ~ House_Prices, data =DF1, index=c("Country", "Date"), model="within)
這是我目前按時間聚類的方法,但我不知道如何做“時間”“組”?
x <- coeftest(Reg1, function(x), vcovHC(x, type="sss", cluster="time"))
任何幫助表示贊賞
你可以使用lfe::felm
。 公式為y ~ x1 + x2 | f1 + f2 | (Q|W ~ x3+x4) | clu1 + clu2
y ~ x1 + x2 | f1 + f2 | (Q|W ~ x3+x4) | clu1 + clu2
y ~ x1 + x2 | f1 + f2 | (Q|W ~ x3+x4) | clu1 + clu2
,其中f
= 固定效應和clu
=cluster。
library(lfe)
fit <- felm(Stock_Returns ~ House_Prices | Country + Date | 0 | Date + Country, data=DF1)
summary(fit)
# Call:
# felm(formula = Stock_Returns ~ House_Prices | Country + Date | 0 | Date + Country, data = DF1)
#
# Residuals:
# Min 1Q Median 3Q Max
# -1.23404 -0.47836 0.03347 0.37293 1.94425
#
# Coefficients:
# Estimate Cluster s.e. t value Pr(>|t|)
# House_Prices 0.55393 0.08945 6.193 0.00848 **
# ---
# Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
#
# Residual standard error: 0.7618 on 29 degrees of freedom
# Multiple R-squared(full model): 0.7174 Adjusted R-squared: 0.581
# Multiple R-squared(proj model): 0.5377 Adjusted R-squared: 0.3145
# F-statistic(full model, *iid*):5.258 on 14 and 29 DF, p-value: 8.098e-05
# F-statistic(proj model): 38.35 on 1 and 3 DF, p-value: 0.008482
注意:您可能會獲得很少 (<50) 個集群,並且可能需要使用特殊方法引導您的標准錯誤。 您可能想閱讀Cameron 等人。 2015並咨詢當地統計人員。
數據
set.seed(42)
DF1 <- expand.grid(Date=1990:2000, Country=c("Japan", "USA", "Germany", "Mexico"))
DF1 <- within(DF1, {
Stock_Returns <- rnorm(nrow(DF1), 20)
House_Prices <- abs(rnorm(nrow(DF1), 5000)) + Stock_Returns
})
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.