インデックス投資で市場平均を狙うことが、どうして有効か?

インデックス投資とは、市場全体を代表する株価指数に連動する投資信託やETFに投資すること。インデックス投資には多くのメリットがあるが、特に市場平均を獲得できることが大きな意味を持つ。投資家の成績分布を加味すれば、市場平均の獲得は他の多数の投資家に対する高い勝率を意味する。

インデックス投資とそのメリット

インデックス投資とは、市場全体を代表する株価指数に連動する投資信託やETFに投資すること。インデックス投資には以下のメリットがある。

  • 手数料が安い:一般的に、インデックスファンドやETFの運用費用は比較的低く、個別株式投資よりもコストが抑えられる。
  • 分散投資が簡単:インデックス投資を行うことで、市場全体を代表する企業や銘柄に投資できるため、分散投資を行うことが容易になる。また、(市場の長期的成長を信じる限り)長期保有することができるため、保守の手間がかからない。
  • 市場全体の成長に合わせたリターン:インデックス投資を行うことで、市場全体の成長に合わせたリターンを得ることができる。

特に市場平均に連動することを目的としたインデックスファンドへ投資すれば、投資家は概ね市場平均リターンを得ることができる。

市場平均を狙う意味

インデックス投資のメリットのうち、特に市場平均リターンの獲得が大きな意味を持つ。平均値と聞けば地味な印象を持つかも知れないが、もし投資家の平均値リターンを得ることができれば、他の投資家に対しての勝率は高くなる。

というのも市場の投資家は、平均値に大勝ちするごく一部の投資家と、平均値に勝つ小数の投資家と、平均値に負ける多数の投資家で構成される。大勝ちした投資家が、増やした元手で更に加速度的にリターンを増やすことで平均値を引っ張り上げるため、このようなことになる。

具体的な乱数シミュレーションを下に載せる。時間が1進めば各投資家は、平均リターン1%、リスク10%のガウス分布に従い資産を増減させる設定になっている。運良く資産を何倍にもする投資家が現れて平均値を引き上げていく一方で、そうでない投資家が平均値を下回る成績で資産を運用することになる。下図のヘッダーに平均値の勝率を載せたが、平均値(すなわちインデックス投資家)の勝率は時間とともに上がる様子が見て取れる。

このようにして、多くのアクティブファンドの成績はインデックスファンドに敗れ、多くの投資家の成績はインデックスファンドに劣ることになる。

なお、今回投資家の実力を皆同じ設定(リターン1%、リスク10%)にして運だけで議論したが、実力や資金力に少々差異があったとしても、長期的には一部の投資家が大儲けする一方で多くの投資家が平均値を下回る状況になるのは変わらない。

最後にgifファイルを生成したpythonコード全文を下記に載せる。

import matplotlib.animation as animation
import matplotlib.pyplot as plt
import numpy as np
import random
import statistics

# 日本語フォント用
from matplotlib import rcParams
rcParams['font.sans-serif'] = ['Noto Sans CJK JP']

fig = plt.figure(figsize=(10, 6))
v = [1 for j in range(1000)]

def update(i):
    global v
    plt.cla()

    g = [random.gauss(1.01, 0.1) for j in range(1000)]
    v = [x * y for (x, y) in zip(v, g)]
    m = statistics.mean(v)
    c = len(list(filter(lambda x: x < m, v)))/len(v) * 100
    
    plt.xlim(0, 8)
    plt.grid()
    plt.axvline(x=m, color='red', linestyle='--')
    plt.text(m,200, "平均値", color='red')
    plt.hist(v,range=(0, 8), bins=80)
    plt.xlabel("投資リターン(倍)")
    plt.ylabel("投資家数")    
    plt.title(f"時間:{i}  平均値の勝率: {c:.1f}%")

ani = animation.FuncAnimation(fig, update, interval=200, frames=100)
ani.save("平均値の勝率推移.gif", writer='pillow')

コメント

タイトルとURLをコピーしました