如何在R中基于LIQ因子为fund1至fund10编写循环回归代码
批量回归R代码实现
你可以直接使用以下两种方案中的任意一种,默认你的数据集列名符合fund1S到fund10S的命名规则:
方案1:基础for循环实现
适合需要自定义每一步输出的场景:
# 初始化结果存储列表 lm_results <- list() # 遍历10只基金执行回归 for (i in 1:10) { dep_col <- paste0("fund", i, "S") reg_formula <- as.formula(paste(dep_col, "~ LIQ")) lm_results[[i]] <- lm(reg_formula, data = Merge_Liq_Size) # 可选:逐只打印回归汇总结果 cat("\n==========", dep_col, "回归结果 ==========\n") print(summary(lm_results[[i]])) }
结果调用方式:要提取第n只基金的回归结果,执行summary(lm_results[[n]])即可。
方案2:lapply批量运行(更简洁)
代码更简洁,且支持直接按基金名提取结果:
# 生成所有基金的因变量列名 dep_cols <- paste0("fund", 1:10, "S") # 批量执行回归 lm_results <- lapply(dep_cols, function(col) { lm(as.formula(paste(col, "~ LIQ")), data = Merge_Liq_Size) }) # 给列表元素命名,方便后续调用 names(lm_results) <- dep_cols
结果调用方式:要提取对应基金的回归结果,执行summary(lm_results$fund3S)即可获取fund3S的回归汇总结果。
内容的提问来源于stack exchange,提问作者kjooh
相关产品推荐
相关产品推荐

