🎓 レベル:基礎 | 重要度:A(必須)
📎 前提:時間価値と現在価値・割引 | 関連:リターンの測り方(対数リターン)・ブラウン運動(統計・連続時間モデルの土台)
要点(BLUF)
- 単利は元本だけに利息がつき、複利は利息にも利息がつく(利息の再投資)。期間が長くなるほど両者の差は指数的に開きます。
- 同じ「名目年率」でも、年に何回利息を計算するか(複利頻度)で実際の増え方が変わります。これを1年あたりの実質利回りに直したのが実効年率(EAR) 。
- 複利頻度を無限大にした極限が連続複利 。金融工学はこれを標準形に使います。対数をとると線形になり、確率過程・ブラック–ショールズの計算がきれいに進むからです。
1. 単利と複利
利息のつき方には2通りあります。
- 単利(simple interest):利息は最初の元本にだけつく。 年後の元利合計は
- 複利(compound interest):ついた利息も元本に組み入れ、その合計にまた利息がつく(利息の再投資)。
単利は について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回つけるのか、毎月つけるのかで実際の増え方は変わります。提示される金利(名目年率 )を、複利頻度 で年 回つけるなら、1年後は
これを「実質的に年何%だったか」に直したのが**実効年率(EAR: Effective Annual Rate)**です。
名目年率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)
複利頻度 を無限大にすると、 の定義そのものから連続複利が現れます。
ここでの を連続複利金利、あるいは力(force of interest) と呼びます。実効年率 との関係は、1年後の倍率を等しいと置けば
連続複利の何がうれしいかというと、対数をとると線形になることです。 なので、収益は時間に比例して足し算で扱えます。複数期間をまたぐ計算(リターンの測り方 の対数リターン)や、ランダムな価格変動(ブラウン運動(統計)に基づく幾何ブラウン運動、第3章)が、指数の肩の足し算だけで進むようになります。これが金融工学が連続複利を標準にする決定的な理由です。
補足:連続複利金利は加法的(足せる)、実効年率は乗法的(掛ける)。 と で常に行き来できます。割引も同様に と書け、時間価値と現在価値・割引 の連続割引と表裏一体です。
4. 倍化年数と72の法則
「この金利でお金が2倍になるのは何年後か」は直感的に役立つ指標です。複利で を解けば、正確な倍化年数は
ここで で、 が小さいとき なので 。実務では割り切れる数として72を使う「72の法則」が有名です()。正確な値とどれくらい合うか確かめます。
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倍」——複利の効きを肌感覚でつかむのに便利です。
⚠️ よくある誤解
- 「単利と複利は誤差程度の違い」ではない:短期では差はわずかですが、期間が延びるほど指数的に開きます(40年で3倍 vs 7倍)。長期の積立・年金・債券では、複利で考えないと評価を大きく誤ります。
- 名目年率だけで金利を比べない:複利頻度が違えば実質利回りは変わります。比較は必ず EAR(実効年率)で。「月利1%」は名目年率12%でも、EAR は約12.68%です。
- 連続複利金利と実効年率を混同しない:連続複利金利 は足し算で使える指数の肩、実効年率 は「1年で何倍か」。(例: なら )。金融工学の数式に出てくる「金利」はたいてい連続複利金利のほうです。
関連ノート
- 第1章 金融数学の基礎 目次
- 時間価値と現在価値・割引 — 前提:割引と連続割引
- リターンの測り方 — 次のトピック:連続複利と地続きの対数リターン
- ブラウン運動(統計)— 連続時間で価格をモデル化する土台(第3章で接続)
- 金融工学テキスト 全体目次