統計

ラスパイレス指数・パーシェ指数・フィッシャー指数を計算してみた

物価の変化を表す指数に、ラスパイレス指数・パーシェ指数・フィッシャー指数がある。これらの定義式と計算例については、以下のサイトを参照のこと。
https://bellcurve.jp/statistics/course/18454.html

ラスパイレス指数は消費者物価指数や企業物価指数に、パーシェ指数はGDPデフレータに、それぞれ使われることが多い。

今回は、ラスパイレス指数・パーシェ指数・フィッシャー指数を計算してみたので、そのサンプルプログラムを共有する。

前提条件

下記記事のAnacondaをインストールしJupyter Notebookを利用できること

Python開発用のAnacondaをインストールしJupyter Notebookを利用してみた今回は、Pythonを勉強してみたいと思い、Python開発環境を構築してみたので、その手順を共有する。 Python開発用として...

また、以下のA,B,Cのデータを用いて、各指数の計算を行うものとする。

前提条件
出所:統計WEB_さまざまな指数

ラスパイレス指数・パーシェ指数・フィッシャー指数の計算

ラスパイレス指数・パーシェ指数・フィッシャー指数の定義式を用いて、それぞれの指数を計算した結果は、以下の通り。

import pandas as pd
import numpy as np

# A,B,Cのデータを作成
# base_price:基準年_購入価格、base_count:基準年_購入数量、
# comp_price:比較年_購入価格、comp_count:比較年_購入数量
list_data = [[100,50,120,60], [200,20,190,10], [400,100,500,150]]
idx_name = ["A", "B", "C"]
cols_name = ["base_price", "base_count", "comp_price", "comp_count"]
df = pd.DataFrame(data=list_data, index=idx_name, columns=cols_name)

# 作成したデータを表示
print("*** 作成したデータA,B,C ***")
print(df)
print()

print("*** base_price × base_countの合計 ***")
sum_base = sum(df["base_price"] * df["base_count"])
print("100×50+200×20+400×100=" + f"{sum_base:,}")
print()

print("*** 各指数の計算 ***")

# ラスパイレス指数の計算
sum_top_la = sum(df["comp_price"] * df["base_count"])
sum_bottom_la = sum(df["base_price"] * df["base_count"])
laspeyres = sum_top_la / sum_bottom_la * 100.0
print("ラスパイレス指数 : " + str(laspeyres))

# パーシェ指数の計算
sum_top_pa = sum(df["comp_price"] * df["comp_count"])
sum_bottom_pa = sum(df["base_price"] * df["comp_count"])
paasche = sum_top_pa / sum_bottom_pa * 100.0
print("パーシェ指数 : " + str(paasche))

# フィッシャー指数の計算
fisher = np.sqrt(laspeyres * paasche)
print("フィッシャー指数:" + str(fisher))
各指数の計算

要点まとめ

  • 物価の変化を表す指数に、ラスパイレス指数・パーシェ指数・フィッシャー指数があり、ラスパイレス指数は消費者物価指数や企業物価指数に、パーシェ指数はGDPデフレータに、それぞれ使われることが多い。