ラスパイレス指数、パーシェ指数およびフィッシャー指数のシミュレーション

財やサービスの価格が上がるほど購入される数量が減少する様な負の相関がある場合に、ラスパイレス指数には上方の、パーシェ指数には下方のバイアスが掛かる様子をシミュレーションで確認します。

消費者は、「価格が高くなった財の消費を減らし、相対的に安くなった別の財で代用する」という行動(代替効果)をとると仮定します。これが「数量と価格に負の相関がある」状態です。

この消費者の行動を無視して、特定の年の「購入量(数量)」を固定して計算するがゆえに生じる誤差は「代替バイアス(指数バイアス)」と呼ばれます。

ラスパイレス指数 (Laspeyres Index)

ラスパイレス指数 \(I_L\) は、基準年の購入数量 (\(q_{0i}\)) をウェイト(重み)として固定して計算する物価指数です。

\[ I_L = \dfrac{\displaystyle\sum_{i=1}^{n} p_{ti} q_{0i}}{\displaystyle\sum_{i=1}^{n} p_{0i} q_{0i}} \]

ここで、

  • \(n\) : 対象となる財・サービスの総数
  • \(i\) : 各財・サービス (\(i = 1, 2, \dots, n\))
  • \(p_{0i}\) : 基準年(時点0)における財\(i\)の価格
  • \(q_{0i}\) : 基準年(時点0)における財\(i\)の購入数量
  • \(p_{ti}\) : 比較年(時点\(t\))における財\(i\)の価格
  • \(q_{ti}\) : 比較年(時点\(t\))における財\(i\)の購入数量

【指数式の意味】

  • 分母 (\(\sum p_{0i} q_{0i}\)) :

    • 基準年の価格で、基準年の数量を買うのに必要な総額(当時の生活費)。
  • 分子 (\(\sum p_{ti} q_{0i}\)) :

    • 比較年の価格で、基準年の数量を買うのに必要な総額(昔と同じものを今買ったら、いくらかかるか)。

【性質】

  • 「昔と全く同じ買い物をし続けた場合」の生活費の変化を測ります。
  • 現在の数量データ (\(q_{ti}\)) が不要なため、毎月の調査において計算が早く、実務で広く採用されています。
  • 上方バイアス:消費者が「価格が上がったものを買い控え、安くなったもので代替する」という行動を無視して、高くなったものも昔と同じだけ買うと想定するため、実際の物価上昇実感よりも指数が高めに出る傾向があります。

パーシェ指数 (Paasche Index)

パーシェ指数 \(I_P\) は、比較年(現在)の購入数量 (\(q_{ti}\)) をウェイト(重み)として固定して計算する物価指数です。

\[ I_P = \dfrac{\displaystyle\sum_{i=1}^{n} p_{ti} q_{ti}}{\displaystyle\sum_{i=1}^{n} p_{0i} q_{ti}} \]

【指数式の意味】

  • 分子 (\(\sum p_{ti} q_{ti}\)) :

    • 比較年の価格で、比較年の数量を買うのに必要な総額(現在の生活費)。
  • 分母 (\(\sum p_{0i} q_{ti}\)) :

    • 基準年の価格で、比較年の数量を買うのに必要な総額(今の生活水準を昔に送っていたら、いくらかかったか)。

【性質】

  • 「今の生活習慣」を基準にして、昔と今の物価を比較します。
  • 計算するためには現在(比較年)の数量データ (\(q_{ti}\)) を集める必要があり、速報性に欠けます。
  • 下方バイアス:消費者はすでに高くなった財を避けて買い物をしていますが、パーシェ指数は「昔もその高くなったものを避けた買い方をしていた」と想定して昔の生活費を見積もります。昔の生活費を高く見積もりすぎる結果、過去から現在への物価上昇率が実態よりも低めに出る傾向があります。

フィッシャー指数 (Fisher Index)

フィッシャー指数 \(I_F\) は、ラスパイレス指数とパーシェ指数の幾何平均をとった物価指数です。

\[ I_F = \sqrt{I_L \cdot I_P} = \sqrt{ \left( \dfrac{\displaystyle\sum_{i=1}^{n} p_{ti} q_{0i}}{\displaystyle\sum_{i=1}^{n} p_{0i} q_{0i}} \right) \cdot \left( \dfrac{\displaystyle\sum_{i=1}^{n} p_{ti} q_{ti}}{\displaystyle\sum_{i=1}^{n} p_{0i} q_{ti}} \right) } \]

【指数式の意味・性質】

  • ラスパイレス指数が持つ「上方バイアス」と、パーシェ指数が持つ「下方バイアス」の両方のバイアスを相殺することを意図した数式です。
  • 指数理論において、物価変動の真値に最も近い「理想指数 (Ideal Index)」と呼ばれます。
  • ただし、計算には基準年・比較年両方の数量データ (\(q_{0i}, q_{ti}\)) が必要なため、データの収集コストが高く速報性に欠けます。

数式とバイアスの関係

「数量と価格に負の相関(価格が上がれば数量が減る)」がある場合、数式上では以下の不等式が成り立ちます。

\[ I_P \le I_F \le I_L \]

  • ラスパイレス (\(I_L\)):

    • 過去の数量 \(q_0\) に固定(高くなった財の重みが過大) \(\Rightarrow\) 上ブレ
  • パーシェ (\(I_P\)):

    • 現在の数量 \(q_t\) に固定(高くなった財の重みが過小) \(\Rightarrow\) 下ブレ
  • フィッシャー (\(I_F\)):

    • ラスパイレスとパーシェの中間(真の物価上昇に近い)

シミュレーションコード

# 必要なパッケージの読み込み
library(ggplot2)
library(tidyr)

# ==========================================
# 1. パラメータとデータの生成
# ==========================================
years <- 0:20 # 基準年(0)から20年後まで

# 2つの財(A, B)の価格を設定(基準年はともに100)
# 財A: 毎年5%価格が上昇する(価格が大きく上がる)
price_A <- 100 * (1.05)^years
# 財B: 毎年1%のみ価格が上昇する(価格があまり上がらない)
price_B <- 100 * (1.01)^years

# 消費者の行動をシミュレーション(代替効果:価格と数量の負の相関)
# 総予算を毎年 20,000円 とし、財Aと財Bに半々ずつ(10,000円ずつ)支出すると仮定
# (価格が上がると買える数量が減るため、自然に負の相関が生じます)
budget <- 20000
qty_A <- (budget / 2) / price_A
qty_B <- (budget / 2) / price_B

# ==========================================
# 2. 指数の計算
# ==========================================
# 基準年(t=0)の価格と数量
p0_A <- price_A[1]
p0_B <- price_B[1]
q0_A <- qty_A[1]
q0_B <- qty_B[1]

# ① ラスパイレス指数: 【基準年(過去)】の数量(q0)で重み付け
Laspeyres <- (price_A * q0_A + price_B * q0_B) / (p0_A * q0_A + p0_B * q0_B) * 100

# ② パーシェ指数: 【比較年(現在)】の数量(qt)で重み付け
Paasche <- (price_A * qty_A + price_B * qty_B) / (p0_A * qty_A + p0_B * qty_B) * 100

# ③ フィッシャー指数: ラスパイレスとパーシェの幾何平均
# (代替バイアスを相殺した「真の物価指数」に近いとされる)
Fisher <- sqrt(Laspeyres * Paasche)

# ==========================================
# 3. データの整理と可視化
# ==========================================
# データフレームにまとめる
df <- data.frame(Year = years, Laspeyres, Paasche, Fisher)

# ggplot2でプロットするために縦長(Long)形式に変換
df_long <- pivot_longer(df,
  cols = c("Laspeyres", "Paasche", "Fisher"),
  names_to = "Index_Type", values_to = "Value"
)

# グラフの描画
ggplot(df_long, aes(x = Year, y = Value, color = Index_Type, linetype = Index_Type)) +
  geom_line(linewidth = 0.5) +
  geom_point(size = 2) +
  labs(
    title = "ラスパイレス指数とパーシェ指数のバイアス",
    subtitle = "経年変化による指数バイアスの拡大シミュレーション",
    x = "経過年数",
    y = "物価指数 (基準年 = 100)"
  ) +
  theme_minimal() +
  scale_color_manual(values = c(
    "Laspeyres" = "#E41A1C",
    "Fisher" = "#4DAF4A",
    "Paasche" = "#377EB8"
  ))

# 確認用:10年目の「価格と数量の負の相関」を出力
cat("--- 10年目(t=10)の基準年からの変化率 ---\n")
cat(sprintf("財A -> 価格: %.2f倍, 数量: %.2f倍\n", price_A[11] / p0_A, qty_A[11] / q0_A))
cat(sprintf("財B -> 価格: %.2f倍, 数量: %.2f倍\n", price_B[11] / p0_B, qty_B[11] / q0_B))
--- 10年目(t=10)の基準年からの変化率 ---
財A -> 価格: 1.63倍, 数量: 0.61倍
財B -> 価格: 1.10倍, 数量: 0.91倍
Figure 1

Figure 1 から、緑色の線(フィッシャー指数=理想指数)に対して、赤い線(ラスパイレス指数)が上振れし、青い線(パーシェ指数)が下振れして、年が経つにつれてその差(バイアス)が広がっていく様子が確認できます。

ラスパイレス指数の「上方バイアス」(物価を過大評価)

ラスパイレス指数は、「昔(基準年)買った数量を、今もそのまま買い続けている」と仮定して現在の生活費を計算します。

しかし代替効果を仮定しますと、消費者は価格が急上昇した「財A」を買うのを減らして生活を防衛しています。

ラスパイレス指数はこの「生活の工夫(代替)」を無視し、高くなった財Aを昔と同じだけたくさん買っていると仮定してしまうため、物価の上がり幅を実態よりも大きく見積もってしまいます。

パーシェ指数の「下方バイアス」(物価を過小評価)

パーシェ指数は、「今(比較年)買っている数量を、昔からずっと買っていた」と仮定して過去の生活費を計算します。

現在、消費者は高くなった「財A」を避けて、相対的に安い「財B」を多く買っています。

パーシェ指数は「昔からこの賢い買い方をしていた」と仮定してしまうため、昔の生活費を実態より高く見積もってしまいます。(昔の生活費が高く計算されるということは、結果的に「昔から今への物価上昇率」が小さく計算されてしまうということです)。

「経年変化」と「相対価格の変化」

年数が経つ(経年変化する)ほど、財Aと財Bの価格差(相対価格の変化)が大きくなります。

価格の差が開けば開くほど、消費者の数量シフト(負の相関)も極端になるため、Figure 1 上で赤い線と青い線がかけ離れていく様子(バイアスの拡大)を確認できます。

以上です。