2015-04-14 2 views
0

У меня есть набор данных избыточных доходов на 576 лет для портфелей 25 активов (она продолжается до 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 

мне нужно запустить 25 регрессий для CAPM модели и мне нужно организовать альфы (перехваты), бета (коэф.) и 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 раз для каждого актива.

+0

Посмотрите на это http://stackoverflow.com/questions/28972652/r-repeating-linear-regression-in-a-large-dataset/ 28972825 # 28972825 – DatamineR

ответ

1

прямо вперед зацикливание пример, как это:

# 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]) 
+0

Большое вам спасибо за помощь. Я попытался запустить код, и он работает отлично, но без 1 в coeftest (lm (formula (paste0 ('er', i, '1 ~ market.rf')), поскольку он показывал ошибку. –

Смежные вопросы