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

使用data.table识别固定效应回归线上方的面板数据对应ID

解决方法

首先加载data.table包,将拟合值合并到原数据集后,筛选实际值大于拟合值的观测即可,具体代码如下:

# 加载依赖包
library(data.table)
library(plm)

# 构造样本数据集
data <- data.frame(ID = c(1,1,1,1,2,2,3,3,3),
                   year = c(1,2,3,4,1,2,1,2,3),
                   progenyMean = c(70,68,72,69,76,73,72,75,71),
                   damMean = c(69,69,72,68,75,80,74,67,69))

# 拟合固定效应模型
fixed <- plm(progenyMean ~ damMean, data, model= "within", index = c("ID","year"))

# 计算拟合值
fitted <- as.numeric(fixed$model[[1]] - fixed$residuals)

# 转换为data.table格式,新增拟合值列
dt <- as.data.table(data)
dt[, fitted := fitted]

# 筛选回归线上方的观测(实际后代均值大于拟合值,对应残差为正)
above_line_dt <- dt[progenyMean > fitted]

# 提取对应ID
# 去重得到所有出现过符合条件观测的ID
unique_above_ids <- unique(above_line_dt$ID)
# 保留所有符合条件观测对应的ID(含重复值,可对应到具体年份)
all_above_ids <- above_line_dt$ID
  • 逻辑说明:回归线上方的点对应残差为正,即实际值-拟合值>0,直接按该条件筛选即可
  • 如果需要查看符合条件观测的年份、对应数值等完整信息,直接打印above_line_dt即可

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 09:45:04