首页 > 解决方案 > R studio:按组和时间进行面板回归和聚类?

问题描述

我有一些面板数据并且正在使用 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"))

任何帮助表示赞赏

标签: r

解决方案


你可以使用lfe::felm. 公式为y ~ x1 + x2 | f1 + f2 | (Q|W ~ x3+x4) | clu1 + clu2,其中f= 固定效应和clu= 集群。

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
    })

推荐阅读