物価の変化を表す指数に、ラスパイレス指数・パーシェ指数・フィッシャー指数がある。これらの定義式と計算例については、以下のサイトを参照のこと。
https://bellcurve.jp/statistics/course/18454.html
ラスパイレス指数は消費者物価指数や企業物価指数に、パーシェ指数はGDPデフレータに、それぞれ使われることが多い。
今回は、ラスパイレス指数・パーシェ指数・フィッシャー指数を計算してみたので、そのサンプルプログラムを共有する。
前提条件
下記記事のAnacondaをインストールしJupyter Notebookを利用できること
Python開発用のAnacondaをインストールしJupyter Notebookを利用してみた今回は、Pythonを勉強してみたいと思い、Python開発環境を構築してみたので、その手順を共有する。 Python開発用として...
また、以下のA,B,Cのデータを用いて、各指数の計算を行うものとする。
ラスパイレス指数・パーシェ指数・フィッシャー指数の計算
ラスパイレス指数・パーシェ指数・フィッシャー指数の定義式を用いて、それぞれの指数を計算した結果は、以下の通り。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | 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デフレータに、それぞれ使われることが多い。