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

R语言非平衡面板多变量协整与单位根检验方法咨询

面板单位根、协整检验实操方案

purtest函数index参数与数据格式要求

  • 你之前手动用split拆分变量转宽表的操作完全没必要,purtest原生支持标准长格式面板数据,只需要先把数据转为plm包识别的pdata.frame对象,通过index参数指定个体ID列和时间列即可,非平衡面板也可直接适配。
  • 要求的输入格式就是你现有的原始数据结构:每行对应1个「个体-年份」观测,列依次为个体标识、年份标识、所有研究变量,和你给出的示例df结构完全一致,不需要做宽表转换。
  • 具体调用方法参考如下代码,基于你提供的测试数据即可直接运行:
library(plm)
# 转换为plm识别的面板数据对象,index第一个参数是个体列名,第二个是时间列名
p_df <- pdata.frame(df, index = c("id", "year"))
# 直接对目标变量做单位根检验,例:对var1做IPS单位根检验
purtest(p_df$var1, test = "ips", exo = "intercept", lags = "AIC")
  • 多变量批量做单位根检验不需要逐变量手动处理,用lapply循环变量列即可一次性完成:
# 指定需要检验的所有变量名
target_vars <- c("var1", "var2")
# 批量输出所有变量的检验结果
unit_root_results <- lapply(target_vars, function(col) {
  purtest(p_df[[col]], test = "ips", exo = "intercept", lags = "AIC")
})
names(unit_root_results) = target_vars

多变量面板协整检验实现方法

  • plm包内置的pcoint函数支持一次性输入多个变量完成面板协整检验,不需要逐对变量手动拆分处理,同样适配前面构造的pdata.frame长格式面板对象。
  • 基础调用示例:检验var1和var2的协整关系
# 以Johansen协整检验为例,K为滞后阶数,可根据信息准则调整
coint_result <- pcoint(~ var1 + var2, data = p_df, type = "johansen", K = 2)
summary(coint_result)
  • 如果需要检验多组不同的变量组合,同样可以通过循环传入不同公式批量输出结果,效率远高于手动逐组处理。

缺失值(NA)的影响

  • 面板单位根、协整检验默认采用行删除法处理缺失值,即只要某行的目标变量存在NA,对应观测就会被剔除。如果变量NA占比过高,会直接压缩有效样本量,大幅降低检验的统计效力,甚至导致结果偏误。
  • 对应处理规则可参考:
    • 若NA为随机缺失且整体占比低于5%,直接使用默认行删除法即可,结果不会出现明显偏差
    • 若NA占比较高,建议先根据数据属性选择合理的插补方法(如组内线性插值、相邻年份均值插补等)补全数据后再做检验,需要在研究中明确报告缺失值处理逻辑
    • 若NA集中在少数个体或特定时间段,可以截取平衡面板子样本做检验,作为稳健性结果对照

内容的提问来源于stack exchange,提问作者philipp.kn_98

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 23:24:15