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

含重复年份的横截面数据如何在R中实现IRR对滞后MSCI、前瞻GDP的回归

实现滞后回归的操作步骤

你的数据是带重复年份的横截面数据,不需要转xts/ts格式,按以下步骤操作即可:

  • 第一步:构造年度宏观变量映射表
    由于同一年份的MSCI、GDP指标值完全一致,先提取去重后的年度指标,先按年份排序,再计算所需的滞后/领先变量:
    library(data.table)
    # 提取去重的年度宏观指标
    yearly_macro <- unique(restr_subs[, .(vintage_year, msci, gdp_growth_euro, gdp_growth_america)])
    # 生成连续年份序列,避免跳年导致偏移期数错误
    full_years <- data.table(vintage_year = seq(min(yearly_macro$vintage_year), max(yearly_macro$vintage_year), 1))
    # 补全缺失年份的宏观数据,缺失值默认填充NA
    yearly_macro <- merge(full_years, yearly_macro, by = "vintage_year", all.x = T)
    # 按年份升序排序
    setorder(yearly_macro, vintage_year)
    # 计算t-1期MSCI、t+2期GDP
    yearly_macro[, `:=`(
      msci_lag1 = shift(msci, n = 1, type = "lag"),
      gdp_lead2_euro = shift(gdp_growth_euro, n = 2, type = "lead"),
      gdp_lead2_america = shift(gdp_growth_america, n = 2, type = "lead")
    )]
    
  • 第二步:匹配滞后/领先变量到原始数据集
    按年份将计算好的偏移变量匹配到所有同年份的观测上:
    restr_subs <- merge(restr_subs, yearly_macro[, .(vintage_year, msci_lag1, gdp_lead2_euro, gdp_lead2_america)], by = "vintage_year", all.x = T)
    
  • 第三步:运行回归模型
    直接用处理好的字段跑你需要的回归即可:
    # 示例为用欧元区GDP的回归,可根据需要替换为美国GDP变量
    model <- lm(IRR ~ msci_lag1 + gdp_lead2_euro, data = restr_subs)
    summary(model)
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 16:15:03