前回記事 リスクの影響考えて年利10%で月5万円の積み立てを30年間継続して得られる資産をシミュレートしてみた に引き続き、今度はリスク込みの運用で年利10%、毎月5万円積立で1億円達成に何年かかるのかをシミュレートしてみました。
運用シミュレーション
前回と同じく、利回りは正規分布に従う乱数(正規乱数)とし、1億円を達成するのに何年かかるのかをシミュレートしました。
今回はグラフ描画もRで行いました。(前回のようにExcelで描画してIllustratorで加工した方がきれいに描けますが)
結果を下に示します。
横軸はかかった年数、縦軸はその年数で1億円を達成する確率です。
それぞれのグラフの色は リスク2%:黒色 10%:青色 18%:緑色 30%:黄色 40%:赤色です。
リスクの大きさ | 1億円達成年数の平均 | 30年以内に達成 | 40年以内に達成 | 50年以内に達成 |
2% | 29.7年 | 85.0% | 100% | 100% |
10% | 30.7年 | 51.6% | 98.4% | 99.9% |
18% | 32.8年 | 44.3% | 84.5% | 96.8% |
30% | 38.7年 | 37.6% | 64.1% | 80.3% |
40% | 45.8年 | 33.2% | 52.1% | 65.9% |
リスクが大きければ大きいほど、1億円達成年数の平均は長くなります。
30年以内に1億円を達成する確率はリスク2%(国内債券並のリスク)であれば85%と高いですが、リスク10%で半分程度に、それ以上のリスクだと半分以下の確率にまで下がってしまいます。
特に株式フルインベストメントのリスク18%を超える30%、40%といった高リスクでは、40年、50年かけても達成できない確率が20%以上あり無視できません。
Rのコード
下のコードをコピペすればシミュレーション実行、グラフ描画まで行われます。
(10万回のシミュレーション実行を行いますので結構時間がかかります。短時間ですませたい場合はsampleNum を小さく設定してください)
# 毎月一定額investPerMonthを積み立てて、 # 平均利回りmeanInterestRate # 利回りの標準偏差(リスク)stdInterestRateで投資したときに # 1億円を達成するまでの年数を計算する関数 # 各年の利回りは正規分布に従う乱数により計算される # yearMax年たっても達成できなければyearMaxを返す yearsAchieve1oku <- function(investPerMonth, meanInterestRate, stdInterestRate, yearMax){ total <- 0 for(i in 1:yearMax){ rate <- rnorm(1,mean=meanInterestRate, sd=stdInterestRate) total <- ((investPerMonth*12) + total) * (1+rate) if(total < 0) { total <- 0 } if(total >= 100000000) { return(i) } } return(yearMax) } # 算出したヒストグラムから、x以下の値となる # 確率を算出する関数 calcPercentLessX <- function(h, x){ i <- 1; total <- 0; while(h$mids[i] < x){ total <- total + h$counts[i] i <- i + 1 } total <- total / sum(h$counts) } # シミュレーション条件 yearMax <- 100 # 上限100年でシミュレート sampleNum <- 100000 # 試行の回数10万回 years1Oku <- 1:sampleNum # サイズsampleNumの配列を用意 # 平均年利回り10%、年利回りの標準偏差(=リスク)が2%の場合 for(i in 1:sampleNum){ # 投資シミュレートをsampleNum回繰り返す # 1億円達成までの年数をシミュレート years1Oku[i] <- (yearsAchieve1oku(50000, 0.1, 0.02,yearMax)) } # 1年刻みででヒストグラムを作成して表示する h2 <- hist(years1Oku, breaks=0:yearMax, xlim=c(0,yearMax)) mean(years1Oku) # かかった年数の平均 (calcPercentLessX(h2, 30)) # 30年で達成できる確率 (calcPercentLessX(h2, 40)) # 40年で達成できる確率 (calcPercentLessX(h2, 50)) # 50年で達成できる確率 # リスクが10%の場合 for(i in 1:sampleNum){ # 投資シミュレートをsampleNum回繰り返す # 1億円達成までの年数をシミュレート years1Oku[i] <- (yearsAchieve1oku(50000, 0.1, 0.10, yearMax)) } # 1年刻みででヒストグラムを作成して表示する h10 <- hist(years1Oku, breaks=0:yearMax, xlim=c(0,yearMax)) mean(years1Oku) # かかった年数の平均 (calcPercentLessX(h10, 30)) # 30年で達成できる確率 (calcPercentLessX(h10, 40)) # 40年で達成できる確率 (calcPercentLessX(h10, 50)) # 50年で達成できる確率 # リスクが18%の場合 for(i in 1:sampleNum){ # 投資シミュレートをsampleNum回繰り返す # 1億円達成までの年数をシミュレート years1Oku[i] <- (yearsAchieve1oku(50000, 0.1, 0.18, yearMax)) } # 1年刻みででヒストグラムを作成して表示する h18 <- hist(years1Oku, breaks=0:yearMax, xlim=c(0,yearMax)) mean(years1Oku) # かかった年数の平均 (calcPercentLessX(h18, 30)) # 30年で達成できる確率 (calcPercentLessX(h18, 40)) # 40年で達成できる確率 (calcPercentLessX(h18, 50)) # 50年で達成できる確率 # リスクが30%の場合 for(i in 1:sampleNum){ # 投資シミュレートをsampleNum回繰り返す # 1億円達成までの年数をシミュレート years1Oku[i] <- (yearsAchieve1oku(50000, 0.1, 0.30, yearMax)) } # 1年刻みででヒストグラムを作成して表示する h30 <- hist(years1Oku, breaks=0:yearMax, xlim=c(0,yearMax)) mean(years1Oku) # かかった年数の平均 (calcPercentLessX(h30, 30)) # 30年で達成できる確率 (calcPercentLessX(h30, 40)) # 40年で達成できる確率 (calcPercentLessX(h30, 50)) # 50年で達成できる確率 # リスクが40%の場合 for(i in 1:sampleNum){ # 投資シミュレートをsampleNum回繰り返す # 1億円達成までの年数をシミュレート years1Oku[i] <- (yearsAchieve1oku(50000, 0.1, 0.40, yearMax)) } # 1年刻みででヒストグラムを作成して表示する h40 <- hist(years1Oku, breaks=0:yearMax, xlim=c(0,yearMax)) mean(years1Oku) # かかった年数の平均 (calcPercentLessX(h40, 30)) # 30年で達成できる確率 (calcPercentLessX(h40, 40)) # 40年で達成できる確率 (calcPercentLessX(h40, 50)) # 50年で達成できる確率 # 各リスクでの年数分布を重ねて表示する yrange <- c(0, 0.12) # 縦軸は0-12%で描画 plot( h2$intensities,type="b", ylim=yrange, col="black") # リスク2% 黒色 par(new=T) # 前の図に次の図を重ねて描画 plot(h10$intensities,type="b", ylim=yrange, col="blue") # リスク10%青色 par(new=T) plot(h18$intensities,type="b", ylim=yrange, col="green") # リスク18%緑色 par(new=T) plot(h30$intensities,type="b", ylim=yrange, col="yellow3")# リスク30%黄色 par(new=T) plot(h40$intensities,type="b", ylim=yrange, col="red") # リスク40%赤色

- 作者: Paul Teetor,大橋真也,木下哲也
- 出版社/メーカー: オライリージャパン
- 発売日: 2011/12/22
- メディア: 大型本
- 購入: 9人 クリック: 61回
- この商品を含むブログ (12件) を見る