統計検定のクセであるラスパイレス指数・パーシェ指数を言語化して明瞭化しよう


「普通に」統計の学習をしてたときには聞いたことも触れたこともなかった
「ラスパイレス指数」と「パーシェ指数」ですが、
統計検定では過去数回この両方とも出ちゃっています。

そして、ラスパイレス指数・パーシェ指数のどちらも定義式を知らないと解けない仕様となっていたので、
とりあえず公式だけ覚えたよ!という方も少なくないはずです

ここでは、もちろん定義式の確認から、「結局どういう意味?」部分も自分なりの言葉で書いていきます
(多少の厳密性を書く可能性もあるため、定義式を覚えておくことを優先しましょう)

ラスパイレス指数

パーシェ指数もそうですが、そもそも経済学に用いられることがほとんどで、
商品などの取引量を考慮した、物価の変化をみたいときに使います。

定義式

$$P_L = \frac{\sum_{i=1}^{n}p_{ti} q_{0i}}{\sum_{i=1}^{n}p_{0i} q_{0i}} *100$$

$p_{ti}$: 比較年の価格 (price)
$p_{0i}$: 基準年の価格
$q_{0i}$: 基準年の数量 (quantitive)

この式からわかるように、
ラスパイレス指数は主に「価格」に関心があり、比較したい年の数量はどうでも良いんです。

噛み砕くと?

分母は基準年の総取引量(単位は「価格(¥とか$とか)」)が入ります。
分子は「今年の価格で基準年と同じだけの数量を買うとした場合」の総取引量が入ります。
つまり、この比率を使っているわけなので、
基準年の数量を基準として、基準年に比べてどのくらい比較年は価格が推移したのか?を考えることができます

もう少し噛み砕くと、
基準年くらいの数量を今買いたいとしたら、当時の何倍のお金が必要になる?って感じかと。

比較年は例えば現在の年数などをターゲットとする場合、うまくデータを集められてないケースなどもあるため、このラスパイレス指数などは役立つことになります。

パーシェ指数

では、クセの二つ目パーシェ指数へ。

式もほとんど変わらず、基準年を軸とするか比較年を軸とするか?くらいです。
サクサクいきましょう!

定義式

$$P_L = \frac{\sum_{i=1}^{n}p_{ti} q_{ti}}{\sum_{i=1}^{n}p_{0i} q_{ti}} *100$$

$p_{ti}$: 比較年の価格 (price)
$p_{0i}$: 基準年の価格
$q_{ti}$: 比較年の数量 (quantitive)

今度は「基準年の数量」には関心のない数式となっています。

噛み砕くと?

分母は「比較年の数量分」を基準年の価格で購入するとした時の総取引量
分子は比較年の総取引量となります。

つまりは、
比較年の数量を基準として、基準年に比べてどのくらい比較年は価格が推移したのか?
であり、もっと噛み砕けば、
今の数量を基準年の価格で買うとしたら、何倍のお金が必要なのか? となります

やや似たようなニュアンスになるのは式からも当然の流れだとは思いますが、
- 「昔の数量だけ買いたい」ならラスパイレス指数
- 「今と同等の数量だけ買いたい」ならパーシェ指数
をみると便利です。

ちょこっとコーディング

式自体は純粋にsum関数とかのレベルのため、調べた感じpythonでライブラリや関数が用意されている感じはなさそうでした
なので、dataframeを自分で作り、自分でラスパイレス指数とパーシェ指数を計算してみるという自作自演を行います

コードの説明等は省略します

import numpy as np
import pandas as pd


rng = np.random.default_rng()

# 基準年の価格
p0 = rng.integers(100, 1000, size=100)
# 比較年の価格
pt = rng.integers(110, 1200, size=100)

# 基準年の数量
q0 = rng.integers(10, 45, size=100)
# 比較年の数量
qt = rng.integers(11, 50, size=100)

data = pd.DataFrame({'p0': p0, 'q0': q0, 'pt': pt, 'qt': qt})
display(data.head())

# 基準年の数量 * 基準年の価格
sum00 = sum(data['p0'] * data['q0'])
# 基準年の数量 * 比較年の価格
sum0t= sum(data['p0'] * data['qt'])

# 比較年の数量 * 比較年の価格
sumtt = sum(data['pt'] * data['qt'])
# 比較年の数量 * 基準年の価格
sumt0= sum(data['pt'] * data['q0'])

print('ラスパイレス指数は', np.round(sum0t/sum00, 3)*100, '%')
print('パーシェ指数は', np.round(sumtt/sumt0, 3)*100, '%')

ってな感じです〜
ま、これくらいなら自作でどうにかなりますな。

今回参考にさせていただいた記事

毎度たくさんの記事に助けられております
32-5. さまざまな指数
パーシェ指数とラスパイレス指数の違いについてわかりやすく解説