含重复年份的横截面数据如何在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
相关产品推荐
相关产品推荐

