使用plm包pvcm函数执行面板回归时遇‘观测值数量不足’错误求助
面板回归
pvcm函数报错:观测数不足 操作代码
数据读取
Panel <- foreign::read.dta("http://dss.princeton.edu/training/Panel101.dta")
回归代码
library(plm) grun.tvarw <- pvcm(y ~ x1+x2+x3+opinion, data=Panel, index=c("country", "year"), model="within",effect="time")
报错信息
Error in FUN(X[[i]], ...) : insufficient number of observations
问题原因与解决方法
原因
pvcm用于拟合面板变系数模型,当指定effect="time"时,模型会为每个时间维度单独估计一组回归系数。但你使用的Panel101.dta是典型的短面板数据,部分年份的观测样本量小于需要估计的系数数量,导致无法完成回归计算。
解决方法
- 检查数据分布:先查看各年份的观测数,确认问题所在:
table(Panel$year)
- 更换模型类型:如果仅需控制时间固定效应,改用普通固定效应模型即可,无需使用变系数模型:
grun.tvarw <- plm(y ~ x1+x2+x3+opinion, data=Panel, index=c("country", "year"), model="within", effect="time")
- 调整
pvcm参数:若坚持使用变系数模型,可尝试将effect改为"individual"(基于个体维度估计变系数),或筛选掉观测数不足的年份/个体后再运行。
内容的提问来源于stack exchange,提问作者souvik mukherjee
相关产品推荐
相关产品推荐

