銀行員 RとPythonに出会う

Rネタを中心に、いろいろと更新していきます

Rと効率的フロンティアとCAPM(2)

前回の続きです。

早速効率的フロンティアを描いてみます。

dt2 <- 

  dt[,c(1,2,5)] %>% na.omit() %>%

  tidyr::spread(ticker, ret) %>%

  select(2,3,4)



# 期待リターン(平均)の算出

er_x <- mean(dt2$SOFTBANK)

er_y <- mean(dt2$TAKEDA)

er_z <- mean(dt2$TOYOTA)



# ボラティリティ(標準偏差)の算出

sd_x <- sd(dt2$SOFTBANK)

sd_y <- sd(dt2$TAKEDA)

sd_z <- sd(dt2$TOYOTA)



# 共分散の算出

cov_xy <- cov(dt2$SOFTBANK, dt2$TAKEDA)

cov_xz <- cov(dt2$SOFTBANK, dt2$TOYOTA)

cov_yz <- cov(dt2$TAKEDA, dt2$TOYOTA)



# ポートフォリオのウェイトを出しておく

x_weights <- seq(from = 0, to = 1, length.out = 1000)



# ウェイト付けしたデータフレームを生成

three_assets <- data.table(wx = rep(x_weights, each = length(x_weights)),

                           wy = rep(x_weights, length(x_weights)))



three_assets[, wz := 1 - wx - wy]



three_assets[, ':=' (er_p = wx * er_x + wy * er_y + wz * er_z,

                     sd_p = sqrt(wx^2 * sd_x^2 +

                                   wy^2 * sd_y^2 +

                                   wz^2 * sd_z^2 +

                                   2 * wx * wy * cov_xy +

                                   2 * wx * wz * cov_xz +

                                   2 * wy * wz * cov_yz))]



# 今回はショート戦略はなしで考えたいので0以上のみ

three_assets <- three_assets[wx >= 0 & wy >= 0 & wz >= 0]



# plot

ggplot() +

  geom_point(data = three_assets, aes(x = sd_p, y = er_p, color = wx - wz)) +

  geom_point(data = data.table(sd = c(sd_x, sd_y, sd_z), mean = c(er_x, er_y, er_z)),

             aes(x = sd, y = mean), color = "red", size = 3, shape = 18) +

  theme_bw() + ggtitle("効率的フロンティア") +

  xlab("Volatility") + ylab("Expected Returns") +

  scale_y_continuous(label = percent) +

  scale_x_continuous(label = percent) +

  scale_color_gradientn(colors = c("red", "blue", "green"),

                        name = expression(omega[x] - omega[z]), labels = percent)

これを実行すると以下のプロットが出ます。

f:id:d_s:20180825020057p:plain

 一応ですが出ました。

 3つの株式の組み合わせで得られるリスク、期待リターンが色付きの箇所になります。

これに、銘柄を限定せず全銘柄で効率的フロンティアを作りCAPM(資本資産価格)というものを組み合わせると無リスク資産(国債等、日本の現状では現預金と言い換えても?)を加えた戦略が得られます。

今回は例が悪かったので他から図を拝借してきますが以下のような感じです。

 

http://words.equity-investment.info/img/%E6%9C%89%E5%8A%B9%E3%83%95%E3%83%AD%E3%83%B3%E3%83%86%E3%82%A3%E3%82%A22.jpg

参照:http://words.equity-investment.info/portfolio.theory.html

効率的(有効)フロンティアのカーブが最小になる点を最小分散ポートフォリオ、資本市場線との接点を市場ポートフォリオと言います。

この市場ポートフォリオの正体こそが厳しい厳しい仮定の下得られたCAPMでして、

すべての投資家はこの市場ポートフォリオと無リスク資産を持つとしています。

市場ポートフォリオは、市場の関連情報すべてを折り込んでいるため、投資家は市場ポートフォリオ保有することで最適なポートフォリオを保持できるというものです。 

これについてはもちろんいろんな意見がありCAPMも拡張されたりするわけです。

 

まとめ

長くなりましたが、これまでやってきた流れを乱暴な言い方で締めくくると、

「現金とTOPIX上場投信で資産配分考えておけばOK!!!!!!」と言えるのでしょうか。

あくまで理論的な話ですが。

次回以降は、前回冒頭あげたような身近なネタで分析していきます。