[英]Storing model coefficients in a loop in R
这似乎是一个非常基本的问题,但我一直找不到解决方案。 我基本上希望在 for 循环中运行线性回归,并将每次迭代的 model 系数(如果可能,还有标准误差)存储在 csv 文件中。
作为参考,我正在对宏观经济“冲击”(宏观经济因素的残差对其滞后值进行回归)进行 Fama-MacBeth 回归。
我的循环代码如下
for (i in 7:69){
model <- lm(data = data, data[[i]]~TM2R+IPR+InfR+UnR+OilR)
#Model coefficients
print(model$coefficients)
#Standard Errors in regression results
model$vcov <- vcovHC(model, type = "HC1")
print(model$vcov)
}
您可以使用broom
package 将 output 从lm()
转换为数据框,然后将 append 从vconvHC()
转换为数据框。
最后,您导出为 csv。
library(broom)
library(sandwich)
for (i in 7:69){
model_name <- paste0("model_", i, ".csv")
model_i <- lm(data = data, data[[i]]~TM2R+IPR+InfR+UnR+OilR)
tidy_model <- tidy(model_i)
tidy_model$vcov <- vcovHC(model_i, type = "HC1")
write.csv(tidy_model, file = model_name)
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.