Mímisbrunnr知恵の泉

← 金融工学 一覧

🎓 レベル:基礎 | 重要度:A(必須)

📎 前提:時間価値と現在価値・割引 | 関連:リターンの測り方(対数リターン)・ブラウン運動(統計・連続時間モデルの土台)

要点(BLUF)

1. 単利と複利

利息のつき方には2通りあります。

FV単利=PV(1+rn)FV_{\text{単利}} = PV\,(1 + r n) FV複利=PV(1+r)nFV_{\text{複利}} = PV\,(1 + r)^n

単利は nn について1次関数(直線)、複利は指数関数です。最初は差がわずかでも、時間が経つほど複利が圧倒的に伸びます。年5%で40年間、両者を並べてみます。

import numpy as np
import matplotlib.pyplot as plt
import japanize_matplotlib

PV = 100
r = 0.05
years = np.arange(0, 41)

simple = PV * (1 + r * years)      # 単利:直線
compound = PV * (1 + r)**years     # 複利:指数

plt.figure(figsize=(7, 4))
plt.plot(years, simple, label="単利 100(1+rn)")
plt.plot(years, compound, label="複利 100(1+r)^n")
plt.xlabel("年数 n"); plt.ylabel("元利合計")
plt.title(f"単利 vs 複利(r = {r:.0%})")
plt.legend(); plt.grid(alpha=0.3); plt.tight_layout(); plt.show()

print(f"40年後 単利: {simple[-1]:.2f}")
print(f"40年後 複利: {compound[-1]:.2f}")

出力:

40年後 単利: 300.00
40年後 複利: 704.00

出力の意味:単利は40年でちょうど3倍(100→300)、利息は毎年5ずつ一定です。複利は同じ5%でも **7倍超(100→704)**まで伸びます。差を生むのは「利息にも利息がつく」一点だけ。これが「複利は人類最大の発明」と言われるゆえん——そして金融工学が原則すべて複利で考える理由です。

2. 名目年率と実効年率(EAR)

「年5%」と言っても、利息を年1回つけるのか、毎月つけるのかで実際の増え方は変わります。提示される金利(名目年率 rr)を、複利頻度 mm で年 mm 回つけるなら、1年後は

FV=PV(1+rm)mFV = PV\left(1 + \frac{r}{m}\right)^{m}

これを「実質的に年何%だったか」に直したのが**実効年率(EAR: Effective Annual Rate)**です。

EAR=(1+rm)m1\text{EAR} = \left(1 + \frac{r}{m}\right)^{m} - 1

名目年率12%を、複利頻度を変えて実効年率に直してみます。

import numpy as np

r_nominal = 0.12   # 名目年率 12%

for m, name in [(1, "年1回"), (2, "半年"), (4, "四半期"), (12, "毎月"), (365, "毎日")]:
    ear = (1 + r_nominal/m)**m - 1
    print(f"{name:>4}複利: 実効年率 EAR = {ear:.4%}")

ear_continuous = np.exp(r_nominal) - 1   # 連続複利の極限
print(f"連続複利: 実効年率 EAR = {ear_continuous:.4%}")

出力:

 年1回複利: 実効年率 EAR = 12.0000%
  半年複利: 実効年率 EAR = 12.3600%
 四半期複利: 実効年率 EAR = 12.5509%
  毎月複利: 実効年率 EAR = 12.6825%
  毎日複利: 実効年率 EAR = 12.7475%
連続複利: 実効年率 EAR = 12.7497%

出力の意味:同じ名目年率12%でも、複利頻度が上がるほど実効年率は増えます(12.00%→12.75%)。ただし増え方はすぐ頭打ちで、毎日複利(12.7475%)と連続複利の極限(12.7497%)はほぼ同じ。金利を比較するときは名目年率ではなく EAR で揃えるのが鉄則です。クレジットカードや住宅ローンの「実質年率」もこの考え方です。

3. 連続複利と力(force of interest)

複利頻度 mm を無限大にすると、ee の定義そのものから連続複利が現れます。

limm(1+rm)m=erFV=PVert\lim_{m\to\infty}\left(1+\frac{r}{m}\right)^{m} = e^{r} \qquad\Longrightarrow\qquad FV = PV\,e^{rt}

ここでの rr連続複利金利、あるいは力(force of interest) δ\delta と呼びます。実効年率 reffr_{\text{eff}} との関係は、1年後の倍率を等しいと置けば

1+reff=eδδ=ln(1+reff)1 + r_{\text{eff}} = e^{\delta} \qquad\Longrightarrow\qquad \delta = \ln(1 + r_{\text{eff}})

連続複利の何がうれしいかというと、対数をとると線形になることです。ln(FV/PV)=δt\ln(FV/PV) = \delta t なので、収益は時間に比例して足し算で扱えます。複数期間をまたぐ計算(リターンの測り方 の対数リターン)や、ランダムな価格変動(ブラウン運動(統計)に基づく幾何ブラウン運動、第3章)が、指数の肩の足し算だけで進むようになります。これが金融工学が連続複利を標準にする決定的な理由です。

補足:連続複利金利は加法的(足せる)、実効年率は乗法的(掛ける)。δ=ln(1+reff)\delta = \ln(1+r_{\text{eff}})reff=eδ1r_{\text{eff}} = e^{\delta}-1 で常に行き来できます。割引も同様に PV=FVeδtPV = FV\,e^{-\delta t} と書け、時間価値と現在価値・割引 の連続割引と表裏一体です。

4. 倍化年数と72の法則

「この金利でお金が2倍になるのは何年後か」は直感的に役立つ指標です。複利で (1+r)n=2(1+r)^n = 2 を解けば、正確な倍化年数

n=ln2ln(1+r)n = \frac{\ln 2}{\ln(1+r)}

ここで ln20.693\ln 2 \approx 0.693 で、rr が小さいとき ln(1+r)r\ln(1+r)\approx r なので n0.693/r=69.3/(100r)n \approx 0.693/r = 69.3/(100r)。実務では割り切れる数として72を使う「72の法則」が有名です(n72/(100r)n \approx 72/(100r))。正確な値とどれくらい合うか確かめます。

import numpy as np

print(f"{'金利r':>6} {'72の法則':>10} {'正確な倍化年数':>14}")
for r in [0.02, 0.04, 0.06, 0.08, 0.10]:
    approx = 72 / (r * 100)              # 72の法則
    exact = np.log(2) / np.log(1 + r)    # (1+r)^n = 2 の厳密解
    print(f"{r:>6.0%} {approx:>10.1f} {exact:>14.2f}")

出力:

   金利r      72の法則        正確な倍化年数
    2%       36.0          35.00
    4%       18.0          17.67
    6%       12.0          11.90
    8%        9.0           9.01
   10%        7.2           7.27

出力の意味:72の法則は、金利6〜8%あたりで正確な倍化年数とほぼ一致します(72の法則12.0年 vs 厳密11.90年)。理屈どおりなら「69.3の法則」のはずですが、72は2でも3でも4でも6でも割り切れて暗算しやすいため、近似精度を少し犠牲にしてこちらが使われます。「年7%なら約10年で2倍」——複利の効きを肌感覚でつかむのに便利です。

⚠️ よくある誤解

関連ノート