twn39 / code

:memo: 代码笔记,通过 issue 的方式记录日常遇到的问题和学习笔记
13 stars 1 forks source link

使用tidyquant计算各个股票的CAPM #206

Open twn39 opened 6 years ago

twn39 commented 6 years ago
library(tidyquant)

Ra <- c('000333.sz', '000651.sz', '601318.ss', '601939.ss', '600104.ss') %>%
  tq_get(get='stock.price', from='2017-06-01', to='2018-07-25') %>%
  group_by(symbol) %>%
  tq_transmute(select = adjusted,
               mutate_fun = periodReturn,
               period = 'daily',
               col_rename = 'Ra')

## 定义比较基准,这里选取上证指数
Rb <- '000001.ss' %>%
  tq_get(get = 'stock.price', from = '2017-06-01', to='2018-07-25') %>%
  tq_transmute(select = adjusted, 
               mutate_fun = periodReturn,
               period = 'daily',
               col_rename = 'Rb')

RaRb <- left_join(Ra, Rb, by=c('date' = 'date'))

RaRb_capm <- RaRb %>% 
  tq_performance(Ra = Ra,
                 Rb = Rb,
                 performance_fun = table.CAPM)

print(RaRb_capm)
twn39 commented 6 years ago

结果:

# A tibble: 5 x 13
# Groups:   symbol [5]
  symbol    ActivePremium  Alpha AnnualizedAlpha  Beta `Beta-` `Beta+` Correlation `Correlationp-value` InformationRatio `R-squared` TrackingError TreynorRatio
  <chr>             <dbl>  <dbl>           <dbl> <dbl>   <dbl>   <dbl>       <dbl>                <dbl>            <dbl>       <dbl>         <dbl>        <dbl>
1 000333.sz         0.368 0.0016           0.484 1.29    1.17    1.36        0.512                    0            1.21        0.262         0.304        0.242
2 000651.sz         0.416 0.0017           0.529 1.19    1.18    1.26        0.476                    0            1.36        0.227         0.307        0.303
3 601318.ss         0.399 0.0016           0.506 1.35    1.53    1.05        0.595                    0            1.55        0.354         0.258        0.254
4 601939.ss         0.216 0.0009           0.264 1.01    0.923   1.76        0.514                    0            0.920       0.265         0.235        0.158
5 600104.ss         0.222 0.0009           0.241 0.606   0.565   0.650       0.328                    0            0.890       0.108         0.250        0.273
twn39 commented 6 years ago

阿尔法系数(α)

阿尔法系数(α)是基金的实际收益和按照β系数计算的期望收益之间的差额。其计算方法如下:超额收益是基金的收益减去无风险投资收益(在中国为1年期银行定期存款收益);期望收益是贝塔系数β和市场收益的乘积,反映基金由于市场整体变动而获得的收益;超额收益和期望收益的差额即α系数。 贝塔系数(β)

贝塔系数衡量基金收益相对于业绩评价基准收益的总体波动性,是一个相对指标。β越高,意味着基金相对于业绩评价基准的波动性越大。β大于1 ,则基金的波动性大于业绩评价基准的波动性。反之亦然。如果β为1 ,则市场上涨10%,基金上涨10%;市场下滑10%,基金相应下滑10%。如果β为 1.1,市场上涨10%时,基金上涨11%, ;市场下滑10%时,基金下滑11% 。如果β为 0.9, 市场上涨10%时,基金上涨9% ;市场下滑10%时,基金下滑9% 。 R平方

R平方(R-squared)是反映业绩基准的变动对基金表现的影响,影响程度以0至100计。如果R平方值等于100 ,表示基金回报的变动完全由业绩基准的变动所致;若R平方值等于35,即35%的基金回报可归因于业绩基准的变动。简言之,R平方值愈低,由业绩基准变动导致的基金业绩的变动便愈少。此外,R平方也可用来确定贝塔系数(β)或阿尔法系数(α)的准确性。一般而言,基金的R平方值愈高,其两个系数的准确性便愈高。