こんにちは、毛糸です。
先日の金融庁が「老後に2,000万円必要です」という報告書を出して以降、SNSでは資産運用に関する話題が増えています。
【参考記事】
【年金は頼れない?】「老後までに2,000万」報告書を読んだあとに私たちが取るべき行動
年利○%で30年運用すれば、老後に2,000万円は余裕。
この○%には、3とか6とか下手すると10%とかいう数字が入ってくることが多いのですが、年利6%で30年間運用する、という仮定は、はっきりいって乱暴です。
こんにちは、毛糸です。
先日の金融庁が「老後に2,000万円必要です」という報告書を出して以降、SNSでは資産運用に関する話題が増えています。
【参考記事】
【年金は頼れない?】「老後までに2,000万」報告書を読んだあとに私たちが取るべき行動
年利○%で30年運用すれば、老後に2,000万円は余裕。
この○%には、3とか6とか下手すると10%とかいう数字が入ってくることが多いのですが、年利6%で30年間運用する、という仮定は、はっきりいって乱暴です。
こんにちは、毛糸です。
先日の金融庁が「老後に2,000万円必要です」という報告書を出して以降、SNSでは資産運用に関する話題が増えています。
【参考記事】
【年金は頼れない?】「「老後までに2,000万」報告書を読んだあとに私たちが取るべき行動
とにかく米国株に投資しておけばいいんだ!
最近、米国株式のパフォーマンスがよいことや、世界の時価総額ランキングの上位が米国企業ばかりであることなどを理由に、米国株だけ持っていればいいのだという結論に至る人が少なくないようです。
実際、2019/7/12のS&P500指数は3013.77ポイントで、
30年前329.81ポイントでしたから、
成長倍率は4倍超、
30年間の平均利回りに直すと年率7.6%を超える高いパフォーマンスになっています。
(出典:Google検索「S&P500」)
米国株式についても同様に、今後いままでと同じような成長を続ける確証などどこにもないのです。
したがって、資産運用においては、米国株式一辺倒ではなく、複数の資産クラスに分散投資することが必要です。
ちなみに、「いままで良かったからといって、今後も良いとは限らない」のと同様、「いままで悪かったからといって、今後も悪いとは限らない」もまた真です。
具体的には、日本株式が今後も低迷を続けるかは神のみぞ知る事であり、世間の言うような「日本株は魅力的な投資対象ではない」というのも、疑ってかかるべき主張です。
【参考記事】
「日本株に投資すると長期的には損」は本当か?
こんにちは、毛糸です。
株式の期待リターンを推定するために広く用いられているのが、CAPM(Capital Asset Pricing Model)です。
CAPMは株式のリターンを市場ポートフォリオの1次関数として表す、とてもわかり易いモデルです。
本記事ではCAPMの計算(具体的には、ベータの推定)を、統計プログラミング言語Rで行う方法についてまとめます。
CAPMにおけるベータの推定には、個別株式と市場ポートフォリオのリターンのデータが必要になりますが、quantmodというパッケージを使えば、簡単に取得できるため、その方法も説明します。
また、推定に必要な無リスク金利(安全資産利子率)には、財務省が公表している国債利回りを用いることとします。
こんにちは、毛糸です。
こんにちは、毛糸です。
先日の記事で、主要地域の株価リターンが正規分布に従わないことを確かめました。
>>日本株式、米国株式、欧州株式、全世界株式の日次リターンが正規分布ではなかった件
参考記事>>分散投資を批判した後の対案がそれ以上に酷い法則-梅屋敷商店街のランダム・ウォーカー(インデックス投資実践記)
今回はファイナンス理論の観点から、正規分布が成り立たない場合にも、既存のファイナンス理論は通用するのだということを説明します。
なお、本記事は以下の書籍の内容を参考にしているので、興味のある方はチェックしてみてください。
下記の記事で述べたとおり、主要地域の株価の日次リターンは、正規分布に従いません。
>>日本株式、米国株式、欧州株式、全世界株式の日次リターンが正規分布ではなかった件
投資期間が短い場合の株価リターンは正規分布に従わない、というのは学術的にも古くから指摘されており、また、投資期間が長い場合は正規性を棄却できないとする研究もあります。
ファイナンスの多くの理論研究は、資産収益が正規分布に従うことを仮定しており、正規分布と仮定しているからこそ見つかった性質というのも数多くあります。
しかし、ファイナンスの理論研究の多くは「モデル分析」、すなわち現実の問題の本質的な部分を切り取り抽象化して、他の部分は削ぎ落とした世界で成り立つ性質を調べる、というものです。
したがって、正規分布という仮定それ自体が、ある種の「捨象」であり、正規分布であることが本質的に重要でないことも多くあります。
仮に現実の株価リターンが正規分布でなくとも、ファイナンス理論の得た洞察が揺らぐものではありませんし、もし正規分布という過程によって揺らぐような理論を利用したいのであれば、自ら理論を修正すれば良いだけの話です。
>>理論・モデルの意義と、理論と現実の差異を知ったあとにとるべき行動
ファイナンスの標準的モデルが正規分布を使っているといっても、正規分布以外の分布の可能性を一切捨てているわけではなく、正規分布以外の分布で成り立つ命題を多くの研究者が探求しています。
投資理論においては、収益の平均(リターン)と分散(標準偏差、リスク)の情報を基に最適なポートフォリオを探求するという研究が、1950年台のマーコウィッツの研究以後、活発に調査されてきました。
このマーコウィッツの平均分散分析は、ノーベル経済学賞の受賞理由にもなり、昨今話題になっているロボアドバイザーの技術的根拠、さらには投資の王道「分散投資」の理論的裏付けにもなっています。
平均分散分析が成り立つためには、リターンが正規分布にしたがう、というのが十分条件になっています。
つまり、正規分布ならば平均分散分析が成り立つ、ということです。
現実には「正規分布ならば」が成り立っていませんので、平均分散分析が成り立つかはわかりません。
この点をもって「前提が破綻している!理論は不完全だ!」というのはあまりにも非論理的です。
正規分布でなくても、平均分散分析を成り立たせるような、別の十分条件があるかもしれないからです。
事実、その後の意欲的な研究により、リターンが正規分布でなくとも、楕円分布族というクラスに属していれば、平均分散分析(と同様の分析)が行えることがわかっています。
楕円分布族というのは、平たく言うとを横に輪切りにしたときの切り口が楕円(正規分布は正円です)になるような分布のことで、正規分布の他に、対称安定パレート分布、t分布、分散混合の混合正規分布などがあります。
株価リターンがこれら分布に従えば、ポートフォリオのリターンも楕円分布に従うことがわかっています。
このとき、ある投資家は資産リターンが正規分布だと思い、別の投資家は安定分布だと思っていたとしても、パラメタが同じなら平均分散分析は成り立つちます。
ややテクニカルな話になりましたが、平均分散分析や分散投資という理論は、リターンが正規分布に従うという仮定でなくとも、本質的な部分は変わることなく成り立つということです。
こんにちは、毛糸です。
先日の記事で、株価の日次リターンが正規分布に従わないことを確認しました。
>>日本株式、米国株式、欧州株式、全世界株式の日次リターンが正規分布ではなかった件
本ブログでたびたび登場する投資シミュレーションプログラムは、リターンが正規分布に従うと仮定した場合の将来予測ツールなので、正規分布に従わないことがわかった今、何らかの改善をしなくてはなりません。
>>「投資シミュレーションプログラム」サマリー
本記事では改善のための手法として考えている「ブートストラップ法」について解説し、ブートストラップ法を株価リターン分布の推定にどう利用できるかを説明します。
なお、本記事は下記サイトの内容を参考にしています。
>>Rで「ブーツ」(PDFリンク)
ブートストラップ法によれば、株価リターンのデータから、無作為にデータを抽出し、新たなデータとして扱うことになります。
これにより、リターンが正規分布に従うと仮定できなくても、実際の株価リターンデータを乱数のように用いて、統計的・確率論的な分析が可能になります。
実際に、日本株式のリターンを使って、分析を行ってみましょう。
まず、下記の記事を参考に、日本株式のリターンのデータを読み込みます。
>>ファーマ-フレンチの3ファクターモデルのデータを入手する方法
#csvデータの読み込み JP <- read.csv("Japan_3_Factors_Daily.csv", skip=5) #時系列データとして加工 JP_mkt<-ts(JP$Mkt.RF+JP$RF,start=JP$X[1])/100
日本株の日次リターンの統計量を求めてみます。
#平均 m=mean(JP_mkt) #標準偏差 s=sd(JP_mkt) library(moments) #歪度:正規分布が0 skewness(JP_mkt) skewness(rnorm(10000,m,s)) #尖度:正規分布が3 kurtosis(JP_mkt) kurtosis(rnorm(10000,m,s))
株価リターンと同じ平均、標準偏差をもつ正規分布より、尖度はかなり大きな値になっていることがわかります。
データが正規分布に従うかを調べるための、コルモゴロフ・スミルノフ検定も行っていますが、「正規分布に従う」という帰無仮説は棄却され、株価リターンは正規分布ではないと結論付けられます。
#コルモゴロフ・スミルノフ検定 ks.test(JP_mkt, "pnorm", mean=m, sd=s)
ヒストグラムを正規分布と比較してみます。実際の株価リターンデータと、同じ平均、標準偏差の正規分布の密度関数を描きます。実際のデータのほうが、左右の裾が厚い感じがします。
hist(JP_mkt,freq = FALSE,ylim=c(0,30)) curve(dnorm(x,m,s),add=TRUE,col="red")
株価リターンにブートストラップ法を適用してみます。株価リターンから、無作為に10000個のサンプルを抽出し、ヒストグラムを描きます。
#ブートストラップ法
bs<-sample(JP_mkt,10000,replace=T) hist(bs,freq = FALSE)
ブートストラップ法で得たサンプルを使って、損失確率を計算し、正規分布の場合と比較してみましょう。
#損失確率ブートストラップ法 length(bs[bs<0])/length(bs) #損失確率正規分布 pnorm(0,m,s)
ブートストラップ法で得たサンプルから計算した損失確率は49.2%、正規分布の場合は49.5%でしたので、実際のデータのほうがやや損失が出にくい(利益が出やすい)分布であることがわかりました。
損失確率を求めるくらいであれば、データをそのまま使えばよいので、ブートストラップ法を適用する必要もありませんが、より複雑な分析をするときには、ブートストラップ法は強力なツールになります。
ブートストラップ法の概要と、株価リターン分析への応用可能性について説明しました。
実際の株価リターンは、理論で前提とするような正規分布ではありませんが、だからといって理論の価値が損なわれるわけではありません。
正規分布との差異をきちんと把握し、必要ならば適切に対処できることが大事です。
>>理論・モデルの意義と、理論と現実の差異を知ったあとにとるべき行動
こんにちは、毛糸です。
2019年6月3日、金融庁金融審議会 市場ワーキング・グループが、『高齢社会における資産形成・管理』と題する報告書を公表しました。
参考>>金融審議会 「市場ワーキング・グループ」報告書 の公表について
この表によれば、退職後の高齢夫婦世帯の1ヶ月の収入(年金等)は支出を超えており、赤字額の月5万円ほどを資産の取り崩しで対応する必要があると述べています。
この表は総務省家計調査をもとに作成されています。
老後までに2,000万円の根拠がわかったところで、この金額は果たして現役時代の貯蓄でまかなえるものなのでしょうか?
65歳時点で2,000万円を確保するには、現役時代(20歳から60歳)の40年間に、年50万円ずつ確保する必要がありますが、果たして可能な水準なのでしょうか。
年収水準がもう少し高い層(356〜498万円)の人は、月々の黒字が8.2万円あります。
これをすべて貯蓄に回せられれば65歳時点で4,428万円になり、それなりに余裕が持てることになります。
仮にすべて日本株に投資すれば65歳時点の投資時価の中央値は1億を超え、2,000万を確保できない確率は5%以下と、かなり安心の将来設計です。
というわけで、結論としては、2,000万確保したければ年収上げろ、ということかと思います。
(出所:総務省家計調査2018)
資金の出入りを反映させるに伴い、まず期間を原則として月数とするようにし、投資月数をhorizonという変数に格納します。
#投資年数(自由入力) Year<-1 #1年あたりの月数(通常は12) Month_par_year<-12 #投資月数 horizon<-Year*Month_par_year#monthes
また、投資期間中の資金の出入りを、inv_schedule変数に格納します。たとえば、毎月1万円の積立投資を行う場合には、指定した数字を繰り返す関数rep()を用いて、以下のように記述します。
#投資スケジュールを入力(自由入力) inv_schedule<-rep(1,horizon)
投資のリスク・リターンも、月次ベースに直します。
#年率期待リターン(期待収益率μ、自由入力) mu<-7/100 mu_par_month<-mu/Month_par_year #年率リスク(標準偏差σ、自由入力) sigma<-12.88/100 sigma_par_month<-sigma/(Month_par_year)^0.5
シミュレーションを行う繰り返し計算の部分に、前述のinv_scheduleの各要素を足すように変更します。
#シミュレーション開始 for (s in 1:sample){ for ( t in 1:horizon){ #撤退していれば計算を飛ばす if(W[s]==1) break #今年の資産額=前年の資産額*(1+レバ比率*収益率) A[s,t+1]<-A[s,t]*(1+Lev*z[s,t])+inv_schedule[t] #もし資産額が撤退額を下回ったら撤退目印を立てる if(A[s,t+1]<Withdraw)W[s]<-1 } }
#投資年数(自由入力) Year<-1 #1年あたりの月数(通常は12) Month_par_year<-12 #投資月数 horizon<-Year*Month_par_year#monthes #シミュレーション回数(自由入力、多いほど正確だが時間がかかる) sample<-1000 #シミュレーション数値を格納する行列 A<-matrix(0,sample,horizon+1) #初期投資額を入力(自由入力) initial<-1000 #投資スケジュールを入力(自由入力) inv_schedule<-rep(1,horizon) #シミュレーション数値に初期投資額を入力 A[,1]<-initial #年率期待リターン(期待収益率μ、自由入力) mu<-7/100 mu_par_month<-mu/Month_par_year #年率リスク(標準偏差σ、自由入力) sigma<-12.88/100 sigma_par_month<-sigma/(Month_par_year)^0.5 #レバレッジ比率 Lev<-1 #撤退をカウントする目印 W<-rep(0,sample) #撤退額を設定 Withdraw<-0 #乱数を生成(ランダムな投資収益率) set.seed(1234) x<-rnorm(sample*horizon,mu_par_month,sigma_par_month) #乱数(ランダムな収益率)を行列形式に変換 z<-matrix(x,sample,horizon) #シミュレーション開始 for (s in 1:sample){ for ( t in 1:horizon){ #撤退していれば計算を飛ばす if(W[s]==1) break #今年の資産額=前年の資産額*(1+レバ比率*収益率) A[s,t+1]<-A[s,t]*(1+Lev*z[s,t])+inv_schedule[t] #もし資産額が撤退額を下回ったら撤退目印を立てる if(A[s,t+1]<Withdraw)W[s]<-1 } } #シミュレーション結果の期待値を表示 paste(Year,"年後の資産額の期待値は",mean(A[,horizon+1])) #シミュレーション結果の中央値を表示 paste(Year,"年後の資産額の中央値は",median(A[,horizon+1])) #損する確率を表示 paste("損失を被る確率は",length(A[,horizon+1][A[,horizon+1]<initial])/sample) #億り人になれる確率を表示 paste("億り人になれる確率は",length(A[,horizon+1][A[,horizon+1]>10000])/sample) #破産する確率を表示 paste("破産する確率は",sum(W)/sample) #将来の資産額の確率分布(ヒストグラム)を表示 hist(A[,Year+1])
こんにちは、毛糸です。
ドルコスト平均法は投資手法の一つであり、決まった期間ごと(たとえば一ヶ月ごと)に一定の金額を投資することを指します。
ドルコスト平均法は投資の平均買い付け価格を下げる効果があるとされています。
しかし、ドルコスト平均法が投資手法として優れているのかというのは、学術的には肯定的な意見も否定的な意見もあり、科学的に立証された方法ではありません。
資産運用の初心者におすすめの入門書『難しいことはわかりませんが、お金の増やし方を教えてください!』には、ドルコスト平均法について、
三流ファイナンシャルプランナーが書いたんじゃない?
早めに買ってお金に働いてもらう期間が長いほうが、現時点の判断としては正しい。
と書かれており、ドルコスト平均法に否定的です。
このように、専門家の間でもドルコスト平均法の有効性については判断が分かれています。
こういうケースにおいては、ドルコスト平均法によって、買い付け単価の平均は小さく抑えられます。
出典:三井住友DSアセットマネジメントhttps://www.daiwasbi.co.jp/fundcollege/investment/about/index4.html
したがって、特定期間のデータに依拠したドルコスト平均法の分析は説得力にかけるものがほとんどです。
データ期間に依存しない一般的なケースでの分析が難しいことが、ドルコスト平均法の分析を難しくする要因のひとつとなっています。
計算によって、この購入量もまた、対数正規分布に従うことがわかります。
数式で書くと、時点\( t\)において資産価格が\( S_t\)だったときに、一定額\( A\)を投資したときの購入量\(Q_t \)は、以下のように表すことができ、これは対数正規分布に従います。
ただし、\( \mu\)は資産の期待リターン、\( \sigma\)はリスク、\( W_t\)は正規分布に従う確率変数です。
こんにちは、毛糸です。
前回、Rライブラリ「crypto」を用いて、仮想通貨の価格が簡単に取得できることを説明しました。
>>仮想通貨の価格ヒストリカルデータを取得する方法|Rライブラリcryptoの使い方
今回は「crypto」を使って取得したBitcoin(BTC)の価格情報を分析します。
BTC価格の時系列データを分析することで、BTCの期待リターン、リスクが極めて高いことがわかりました。
また、ヒストグラムと「正規性の検定」により、BTCのリターンは正規分布に従わないこともわかりました。
cryptoパッケージのcrypto_history()関数を用いて、BTC価格のヒストリカルデータを取得します。
>>仮想通貨の価格ヒストリカルデータを取得する方法|Rライブラリcryptoの使い方
#crypto_history(coin = NULL, limit = NULL, start_date = NULL, #end_date = NULL, coin_list = NULL, sleep = NULL) #仮想通貨の価格等情報を取得 #dateはyyyymmdd形式で。NULLとすると最長期間 BTC<-crypto_history(coin = "BTC", start_date = NULL,end_date = NULL)
BTC_price<-ts(BTC$close,start=BTC$date[1]) plot(BTC_price,type="l")
#日次収益率 BTC_return_daily<-diff(BTC_price,lag=1)/lag(BTC_price,k=-1) plot(BTC_return_daily,type="l")
#日次収益率の平均(期待リターン)(%) mean(BTC_return_daily)*100 #[1] 0.2808807 #年率換算(%) mean(BTC_return_daily)*100*365 #[1] 102.5215
#標準偏差(%) sd(BTC_return_daily)*100 #[1] 4.333606 #年率換算(%) sd(BTC_return_daily)*100*365^0.5 #[1] 82.79343
install.packages("moments") library(moments)
分布の歪み具合を示すのが歪度です。正規分布のように左右対称な分布では、歪度は0になります。
BTC日次収益率の歪度は0.5です。歪度が正であるということは、分布のピークが左側にあり、右側の裾が広い分布であることを意味します。つまり、極端に高いリターンが出やすいと言えます。
#歪度:正規分布は0、正なら右裾が広い skewness(BTC_return_daily) #[1] 0.5234792
尖度は分布の尖り具合を示します。正規分布は尖度3(0とする定義もあり)であり、これより大きければ、分布は平均の周りで尖った、左右に裾野が広い分布になります。
BTC日次収益率の尖度は12であり、正規分布より極端に「尖った」、そして「裾野の広い」分布になります。つまり、極端に高い・低いリターンが出現しやすいことを意味します。
#尖度:正規分布が3 kurtosis(BTC_return_daily) #[1] 12.9556
リターンの実現値が、どの範囲でどのくらいの頻度で出現したかを見るグラフが、ヒストグラムです。
BTC日次収益率のヒストグラムを描いてみます。
正規分布のヒストグラムは左右対称のベルのような形をしていますが、BTC収益率のヒストグラムはやや右に裾野が厚く、かつ裾野が広がっている印象を受けます。
hist(BTC_return_daily,main="BTC算術日次リターンのヒストグラム",xlab="日次リターン",ylab="度数")
BTCの日次データをQ-Qプロットしてみると、以下のように曲線を描いており、正規分布に近いとは言えません。
qqnorm(BTC_return_daily,main="BTC算術日次リターンのQ-Qプロット")
> shapiro.test(BTC_return_daily) Shapiro-Wilk normality test data: BTC_return_daily W = 0.87881, p-value < 0.00000000000000022
> ks.test(BTC_return_daily, "pnorm", mean=mean(BTC_return_daily), sd=sqrt(var(BTC_return_daily))) One-sample Kolmogorov-Smirnov test data: BTC_return_daily D = 0.11752, p-value < 0.00000000000000022 alternative hypothesis: two-sided 警告メッセージ: ks.test(BTC_return_daily, "pnorm", mean = mean(BTC_return_daily), で: コルモゴロフ・スミノフ検定において、タイは現れるべきではありません
このように、確率分布が標準的なファイナンスの仮定と異なることにより、やや慎重な議論が必要になってきます。
投資においては、為替や株式等よりも変動性が大きく、また極端に高いもしくは低いリターンが出やすいという点に気をつける必要があります。
ビットコインを始めとする仮想通貨のデータを扱う際には、この分布の特性をよく踏まえる必要があります。
関連記事>>ビットコインはバブルである
最近のコメント