创建 OLS 结果矩阵
Creating a matrix of OLS results
我有 25 个资产组合的 576 年超额 returns 数据集(一直持续到 201012 和 er25)
date er1 er2 er3 er4 er5 market-rf
196301 12.77 11.19 9.15 10.71 10.87 4.93
196302 -3.48 -3.72 -0.94 -1.06 2.51 -2.42
196303 4.75 -1.7 -0.34 0.99 2.36 3.06
196304 4.55 1.25 1.8 3.29 2.52 4.49
196305 3.15 1.44 2.51 3.89 7.63 1.77
我需要 运行 CAPM
模型的 25 个回归,我需要安排 alphas(截距)、betas(系数)和截距的 t 统计量一个 25x3 矩阵形式。
这是我的回归。
capm1 <- lm(er1~market.rf, data=ff25)
capm2 <- lm(er2~market.rf, data=ff25)
capm3 <- lm(er3~market.rf, data=ff25) etc until capm25.
我可以这样得到coeftest
的结果。
coeftest(capm1)
t test
系数:
# Estimate Std. Error t value Pr(>|t|)
#(Intercept) -0.395188 0.204474 -1.9327 0.05376 .
#market.rf 1.434851 0.045032 31.8629 < 2e-16 ***
#---
#Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
此外,我可以使用
提取感兴趣的 3 个变量
summary(capm1)$coef[1,1]
summary(capm1)$coef[2,1]
summary(capm1)$coef[1,3]
谁能帮我以矩阵或表格形式安排这些变量(我最终会得到 25 个截距、25 个系数和 25 个截距 t 统计量)。
还有没有任何循环代码可以写入 运行 这个 ols 回归,因为我必须手动 运行 每个资产的回归 25 次。
一个简单的循环例子是这样的:
# an index matrix to extract to three values of interest
indx <- matrix(c(1,1,
2,1,
1,3),nrow=3,byrow=TRUE)
# initialize the output matrix to NULL
out <- NULL
# iterate over the 25 variables
for(i in seq(25))
out <- rbind(out,
coeftest(lm(formula(paste0('er',i,'~market.rf')),
data=ff25))[indx])
我有 25 个资产组合的 576 年超额 returns 数据集(一直持续到 201012 和 er25)
date er1 er2 er3 er4 er5 market-rf
196301 12.77 11.19 9.15 10.71 10.87 4.93
196302 -3.48 -3.72 -0.94 -1.06 2.51 -2.42
196303 4.75 -1.7 -0.34 0.99 2.36 3.06
196304 4.55 1.25 1.8 3.29 2.52 4.49
196305 3.15 1.44 2.51 3.89 7.63 1.77
我需要 运行 CAPM
模型的 25 个回归,我需要安排 alphas(截距)、betas(系数)和截距的 t 统计量一个 25x3 矩阵形式。
这是我的回归。
capm1 <- lm(er1~market.rf, data=ff25)
capm2 <- lm(er2~market.rf, data=ff25)
capm3 <- lm(er3~market.rf, data=ff25) etc until capm25.
我可以这样得到coeftest
的结果。
coeftest(capm1)
t test
系数:
# Estimate Std. Error t value Pr(>|t|)
#(Intercept) -0.395188 0.204474 -1.9327 0.05376 .
#market.rf 1.434851 0.045032 31.8629 < 2e-16 ***
#---
#Signif. codes: 0 ‘***’ 0.001 ‘**’ 0.01 ‘*’ 0.05 ‘.’ 0.1 ‘ ’ 1
此外,我可以使用
提取感兴趣的 3 个变量summary(capm1)$coef[1,1]
summary(capm1)$coef[2,1]
summary(capm1)$coef[1,3]
谁能帮我以矩阵或表格形式安排这些变量(我最终会得到 25 个截距、25 个系数和 25 个截距 t 统计量)。 还有没有任何循环代码可以写入 运行 这个 ols 回归,因为我必须手动 运行 每个资产的回归 25 次。
一个简单的循环例子是这样的:
# an index matrix to extract to three values of interest
indx <- matrix(c(1,1,
2,1,
1,3),nrow=3,byrow=TRUE)
# initialize the output matrix to NULL
out <- NULL
# iterate over the 25 variables
for(i in seq(25))
out <- rbind(out,
coeftest(lm(formula(paste0('er',i,'~market.rf')),
data=ff25))[indx])