You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

求Stata xtpcse与eststo命令的R替代方案(替代下架的panelAR)

在R中复现Stata的xtpcse固定效应模型(含PCSE、AR1自相关与异方差)

需求说明

需要在R中复现以下Stata代码的功能:拟合带面板校正标准误(PCSE)、AR1自相关、面板异方差的双向固定效应回归模型,且仅筛选predclass == 1的样本。原Stata代码如下:

xtpcse bi1_low ECECenrolmentrate02yearol_MA PublicspendingFamilybencash_MA 
N_co_ld N_par1_ld N_rr N_usd lnGDPpcPP MA1Blow Femaleemployment2554OECD 
i.country_num i.year 
if predclass ==1, correlation(ar1) hetonly 

eststo

已知panelAR包是Stata xtpcse的等价工具,但该包已从CRAN下架,安装失败,现寻求替代方案或可行的安装方法。


解决方案

方案一:使用plm包实现等价功能

plm是R中常用的面板数据分析包,可通过组合函数实现xtpcse的核心功能:

  1. 安装并加载包
install.packages("plm")
library(plm)
  1. 数据预处理
    筛选目标样本并转换为面板数据格式:
# 筛选predclass == 1的样本
df_filtered <- df[df$predclass == 1, ]
# 转换为面板数据(指定个体和时间索引)
p_df <- pdata.frame(df_filtered, index = c("country_num", "year"))
  1. 拟合双向固定效应模型
    对应Stata中的i.country_num(个体固定效应)和i.year(时间固定效应):
model_fe <- plm(
  bi1_low ~ ECECenrolmentrate02yearol_MA + PublicspendingFamilybencash_MA + 
    N_co_ld + N_par1_ld + N_rr + N_usd + lnGDPpcPP + MA1Blow + 
    Femaleemployment2554OECD + factor(year),
  data = p_df,
  model = "within",  # 个体固定效应
  effect = "individual"
)
  1. 计算带AR1自相关与异方差的PCSE
    对应Stata的correlation(ar1) hetonly参数:
# cor="ar1":AR1自相关;het=TRUE:面板异方差;pairwise=FALSE:不考虑同期相关(对应hetonly)
pcse_result <- pcse(model_fe, cor = "ar1", pairwise = FALSE, het = TRUE)
# 查看结果
summary(pcse_result)

方案二:安装下架的panelAR包

若坚持使用panelAR,可从CRAN存档或GitHub镜像安装,步骤如下:

  1. 安装依赖包
    先安装panelAR所需的依赖:
install.packages(c("devtools", "plm", "lmtest", "sandwich"))
library(devtools)
  1. 从CRAN存档安装
    指定版本安装(以v0.3.2为例,可根据存档调整版本号):
install_version("panelAR", version = "0.3.2", repos = "http://cran.us.r-project.org")
  1. 使用panelAR拟合模型
    安装完成后,直接对应Stata参数编写代码:
library(panelAR)
df_filtered <- df[df$predclass == 1, ]

model_panelAR <- panelAR(
  bi1_low ~ ECECenrolmentrate02yearol_MA + PublicspendingFamilybencash_MA + 
    N_co_ld + N_par1_ld + N_rr + N_usd + lnGDPpcPP + MA1Blow + 
    Femaleemployment2554OECD + factor(year),
  data = df_filtered,
  panelVar = "country_num",  # 个体变量
  timeVar = "year",          # 时间变量
  autoCorr = "ar1",          # AR1自相关
  panelCorr = FALSE,         # 不考虑同期相关(对应hetonly)
  hetCorr = TRUE,            # 面板异方差
  fixedEffects = "individual"# 个体固定效应,结合factor(year)实现双向固定
)

summary(model_panelAR)

内容的提问来源于stack exchange,提问作者Esther

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.06 00:00:35