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

面板数据Pesaran CD测试报错求助(意大利省份面板)

解决Pesaran CD测试中截面不变变量导致的NA结果问题

问题场景

针对意大利省份面板数据(每个省份包含22年季度数据,共92个观测),变量lag_lingua的取值仅在省份间存在差异,同一省份的所有时间点(年、季度)取值固定。使用plm包执行Pesaran CD测试时,得到以下结果:

Pesaran CD test for cross-sectional dependence in panels
data: AA$lag_lingua
z = NA, p-value = NA
alternative hypothesis: cross-sectional dependence

Warning message:
In cor(wideres, use = "pairwise.complete.obs") :
la deviazione standard è zero.

原因分析

Pesaran CD测试的核心逻辑是利用变量的时间维度波动,计算不同截面单元间的同期相关系数。而lag_lingua在每个省份的时间序列中完全没有变异(所有观测值相同),导致该变量的时间序列标准差为0,无法计算有效的截面相关系数,最终返回NA结果并触发标准差为0的警告。

解决方法

1. 明确测试适用范围

Pesaran CD测试原本是为随时间变化的面板变量设计的。对于完全截面不变的变量,它的截面相关性是恒定的(所有时间点的截面相关系数完全一致),没必要用CD测试——直接计算截面单元间的简单相关系数即可:

# 提取每个省份的lag_lingua唯一值
cross_section_data <- unique(AA[, c("id", "lag_lingua")])
# 计算省份间的相关系数矩阵
cor(cross_section_data$lag_lingua)

2. 若需结合CD测试框架(如流程要求)

如果必须用CD测试的逻辑,可以转而去测试包含该变量的回归残差的截面相关性(前提是回归中包含随时间变化的变量):

# 示例:以某个随时间变化的变量为被解释变量,加入lag_lingua做时间固定效应回归
model <- plm(your_time_varying_var ~ lag_lingua, data = AA, model = "within", effect = "time")
# 对回归残差执行CD测试
pcdtest(residuals(model))

这样残差会包含时间维度的波动,满足CD测试的计算要求。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 07:52:38