1-10 ラスパイレス指数の計算式 〜 フルーツ価格指数を計算
今回の統計トピック
フルーツの価格指数をラスパイレス式、パーシェ式、フィッシャー式で計算します。
フルーツの物価や消費量の推移がセキララに!?
公式問題集の準備
「公式問題集」の問題を利用します。お手元に公式問題集をご用意ください。
公式問題集が無い場合もご安心ください!
「知る」「実践する」の章で、のんびり統計をお楽しみください!
問題を解く
📘公式問題集のカテゴリ
1変数記述統計の分野
問10 ラスパイレス指数の計算式
(梨・ぶどうの1世帯当たりの年間購入数量・平均価格)
試験実施年月
統計検定2級 2018年11月 問4(回答番号7)
問題
公式問題集をご参照ください。
解き方
ラスパイレス指数は価格指数(物価指数)に用いられます。
価格 × 数量の計算において、ラスパイレス指数の計算式の特徴を端的に書きます。
$$
\cfrac{比較年の価格 \times \boldsymbol{基準年の数量}}{基準年の価格 \times \boldsymbol{基準年の数量}} \times 100
$$
「基準年の数量」(特定の年の数量)を固定して、価格面で比較年と基準年の比を計算しています。
ラスパイレス指数は「基準年の数量」で測定することがキーポイントです。
複数の品目を扱う場合は品目を分母・分子に足します。
次は2品目の例です。
そして次の計算式に注目してみましょう。
左側の分数は、全品目における「基準年の品目1の金額割合」です。
右側の分数「品目1の比較年と基準年の価格比」を掛けると「比較年の品目1の金額割合」を計算できます。
左側の分数は「基準年のデータ」なので、基準年に1度作ってしまえば、その後の計算に継続利用できます。
つまり、「将来に比較年の価格データを取得するだけで、比較年の価格指数を計算できる」のです!
この点がラスパイレス指数のよいところ、と言われています。
問題に戻ります。
複数品目のラスパイレス指数の計算式で、品目1を梨、品目2をぶどうに置き換えます。
基準年は2016年、比較年は2017年です。
梨・ぶどうの購入数量と平均単価の具体的な値を上の式に入れてみます。
この式に該当する選択肢は②です。
なお、この式の計算結果は$${104.864 \cdots}$$です。
梨+ぶどうの物価は「1年間で 5% 近く上昇した」模様です。
梨・ぶどうの需要が旺盛なのでしょうか。
シャインマスカット等の高級品種の需要増によって、全体的な販売価格の上昇を後押ししたのでしょうか。
解答
②です。
難易度 やさしい
・知識:ラスパイレス指数
・計算力:計算式組み立て(低)
・時間目安:1分
知る
おしながき
公式問題集の問題に接近してみましょう!
ここでは、2020年と2021年の梨とぶどうの「1世帯当たり年間の購入数量及び平均価格データ」(全国、二人以上の世帯)を利用します。
【出典記載】
出典:「家計調査」(総務省統計局)
【コンテンツ編集・加工の記載】
記事の記載にあたっては、「家計調査」(総務省統計局)を加工して作成しています。
今回はラスパイレス指数等の価格指数に取り組みます。
代表的な価格指数
📕公式テキスト:1.7.5 指数の作成と利用(46ページ~)
ラスパイレス指数、パーシェ指数、フィッシャー指数を取り扱います。
総務省統計局ホームページの「消費者物価指数に関するQ&A(回答)」でラスパイレス式、パーシェ式、フィッシャー式を取り扱っているページを見つけましたので紹介いたします。
このページの上位ページにあたる「消費者物価指数(CPI)」には、消費者物価指数関連のさまざまな情報が集まっていました。
政府が公表する物価指数にご興味のある方は、ぜひご覧ください。
それでは、「梨とぶどうの価格指数」の計算を開始しましょう!
ラスパイレス指数
基準年の数量を固定して価格の変動をみる指数です。
次の式で2品目の価格指数を計算できます。
品目1=梨、品目2=ぶどう、基準年=2020年、比較年=2021年とし、梨とぶどうのデータを当てはめてみましょう。
$$
\begin{align*}
&\cfrac{梨の2021年の平均価格 \times 2020年の購入数量 + ぶどうの2021年の平均価格 \times 2020年の購入数量} {梨の2020年の平均価格 \times 2020年の購入数量 + ぶどうの2020年の平均価格 \times 2020年の購入数量} \times 100\\
&=\cfrac{66.26 \times 2497 + 149.62 \times 2262}{64.00 \times 2497 + 137.40 \times 2262} \times 100\\
&=107.07 \cdots
\end{align*}
$$
ラスパイレス指数は 107.1 です。
■数式表現
まず、上の2品目の数式表現です。
品目1,2を$${i=1,2}$$、基準年を$${T=0}$$、比較年を$${T=t}$$とし、価格を$${p_{iT}}$$($${価格_{品目i番目,年}}$$)、数量を$${q_{iT}}$$($${数量_{品目i番目,年}}$$)で表現します。
品目が3つ以上の場合に備えて、Σで数式表現します。
n個の品目1,2,・・・nを$${i=1,2,\cdots , n}$$とします。
基準年の価格は$${p_{i0}}$$、基準年の数量は$${q_{i0}}$$、比較年の価格は$${p_{it}}$$、比較年の数量は$${q_{it}}$$です。
また、分母と分子は別々に集計計算するので、分母のn個の品目1,2,・・・nを$${j=i,2,\cdots, n}$$にします。
また、公式テキストでは次の式を用いて、ラスパイレス指数を「基準年の構成比$${\boldsymbol{s_{i0}}}$$をウェイトにする加重算術平均」と説明しています。
パーシェ指数
比較年の数量を固定して価格の変動をみる指数です。
次の式で2品目の価格指数を計算できます。
品目1=梨、品目2=ぶどう、基準年=2020年、比較年=2021年とし、梨とぶどうのデータを当てはめてみましょう。
$$
\begin{align*}
&\cfrac{梨の2021年の平均価格 \times 2021年の購入数量 + ぶどうの2021年の平均価格 \times 2021年の購入数量} {梨の2020年の平均価格 \times 2021年の購入数量 + ぶどうの2020年の平均価格 \times 2021年の購入数量} \times 100\\
&=\cfrac{66.26 \times 2617 + 149.62 \times 2127}{64.00 \times 2617 + 137.40 \times 2127}\times 100\\
&=106.94 \cdots
\end{align*}
$$
パーシェ指数は 106.9 です。
■数式表現
まず、上の2品目の数式表現です。
品目1,2を$${i=1,2}$$、基準年を$${T=0}$$、比較年を$${T=t}$$とし、価格を$${p_{iT}}$$($${価格_{品目i番目,年}}$$)、数量を$${q_{iT}}$$($${数量_{品目i番目,年}}$$)で表現します。
品目が3つ以上の場合に備えて、Σで数式表現します。
n個の品目1,2,・・・nを$${i=1,2,\cdots , n}$$とします。
基準年の価格は$${p_{i0}}$$、基準年の数量は$${q_{i0}}$$、比較年の価格は$${p_{it}}$$、比較年の数量は$${q_{it}}$$です。
また、分母と分子は別々に集計計算するので、分母のn個の品目1,2,・・・nを$${j=i,2,\cdots, n}$$にします。
また、公式テキストでは次の式を用いて、パーシェ指数を「比較年の構成比$${\boldsymbol{s_{it}}}$$をウェイトにする加重調和平均」と説明しています。
フィッシャー指数
フィッシャー指数はラスパイレス指数とパーシェ指数の幾何平均です。
計算します。
$$
\sqrt{107.07 \cdots \times 106.94 \cdots}=107.00 \cdots
$$
フィッシャー指数は 107.0 です。
幾何平均は 記事「1-6 平均変化率の計算式」で取り組んでいます。
よかったら、こちらの記事もお読みくださいね。
実践する
価格指数を計算してみよう
「1世帯当たり年間の購入数量及び平均価格データ」は政府統計の総合窓口「e-Stat」で公開されています。
総務省統計局の「家計調査」に含まれる統計データです。
次のリンクのページでEXCELファイルをダウンロードできます。
家計調査 / 家計収支編 二人以上の世帯 年報
梨・ぶどうを含む「野菜・海藻(乾物・海藻)・果物」の「1世帯当たり年間の品目別支出金額,購入数量及び平均価格(二人以上の世帯)」データです。
2000年から2021年までの推移などの情報を含んでいます。
CSVファイルのダウンロード
こちらのリンクから整形後のCSVファイルをダウンロードできます。
2000年から2021年までの果物品目の支出金額・購入数量・平均金額データです。
Pythonサンプルファイルを利用する方は、このCSVファイルをダウンロードしてください。
電卓・手作業で作成してみよう!
「知る」の内容を手作業で実践して、計算しましょう!
一番記憶に残る方法ですし、試験本番の電卓作業のトレーニングにもなります。
EXCELで作成してみよう!
データ数が多い場合、やはり手作業では非効率になります。
パソコンを利用して、手早く作表できるようになれば、実務活用がしやすくなるでしょう。
価格指数の計算
EXCELには価格指数を求める専用の関数がなさそうです。
トピックとしては、フィッシャー指数の幾何平均計算に用いる「幾何平均GEOMEAN関数」でしょう。
「1-6 平均変化率の計算式」で紹介しています。
さまざまな年・フルーツの価格指数の計算
EXCELサンプルファイルには価格指数シミュレータを搭載しました!
といっても簡易な方法です。
このような素データを参照して・・・。
シミュレータ画面で価格指数を計算します。
りんご、みかんの物価は、2020年から2021年にかけて下落しているようです。
赤枠の「年」「品目」を変えると価格指数も変わります。
たとえば「2010」年と「2021」年、「すいか」と「メロン」の組み合わせに変更してみます。
11 年間で 30% 近く、すいか・メロンの物価が上昇した模様です。
素データに含む年とフルーツのさまざまな組み合わせに変更して、価格指数の変動を体感してみましょう。
フルーツの物価の傾向がみえてくるかもしれません。
みなさんの手で確かめてみてくださいね!
サンプルファイルには「平均価格の推移グラフ」が付いています。
EXCELサンプルファイルのダウンロード
こちらのリンクからEXCELサンプルファイルをダウンロードできます。
Pythonで作成してみよう!
プログラムコードを読んで、データを流したりデータを変えてみたりして、データを追いかけることで、作表ロジックを把握する方法も効果的でしょう。
サンプルコードを揃えておけば、類似する作表作業を自動化して素早く結果を得ることができます。
今回はフルーツ全体の価格指数の計算に取り組んでみましょう。
また、時系列データが揃っているので、時系列グラフをプロットしてみましょう。
①ライブラリのインポート
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.family'] = 'MS Gothic'
%matplotlib inline
②CSVファイルの読み込み
まず、上述のダウンロードリンクより、CSVファイルをダウンロードします。
その後、次のコードを実行して、CSVファイルをpandasのデータフレームに読み込みます。
datafile = './sample_data.csv' # CSVファイルの格納フォルダとファイル名を設定
df = pd.read_csv(datafile)
print(df.shape)
display(df.head())
③価格指数の計算
価格指数を算出する専用の関数等を見つけられませんでした。
そこで、価格指数の計算式に近くなるように独自関数を定義します。
■データを取り扱いやすくするための関数の定義
価格指数の計算式で使用する変数等を設定します。
# 計算要素の取得関数
# データフレームから次の計算要素を取得する。
# n : 品目数
# p_0 : 基準年の平均価格
# q_0 : 基準年の購入数量
# p_t : 比較年の平均価格
# q_t : 比較年の購入数量
def get_values(base_year, comp_year, df_data):
item_list = get_item_list(df_data)
n = len(item_list)
p_0 = df_data[df_data['年']==base_year]['平均価格'].reset_index(drop=True)
q_0 = df_data[df_data['年']==base_year]['購入数量'].reset_index(drop=True)
p_t = df_data[df_data['年']==comp_year]['平均価格'].reset_index(drop=True)
q_t = df_data[df_data['年']==comp_year]['購入数量'].reset_index(drop=True)
return n, p_0, q_0, p_t, q_t
# 品目リストの取得関数
def get_item_list(df_data):
return df_data['品目名'].value_counts(sort=False).index.to_list()
■3つの価格指数関数の定義
・ラスパイレス指数:laspeyres_index
・パーシェ指数:paasche_index
・フィッシャー指数:fisher_index
引数は、基準年、比較年、データフレームdfです。
コードが長くなってしまうので、計算式の分母(denom)を切り出しました。
分母の計算と各指数の計算のコードを合わせると、計算式に似てきます。
# ラスパイレス指数関数
def laspeyres_index(base_year, comp_year, df_data):
# 計算要素の取得
n, p_0, q_0, p_t, q_t = get_values(base_year, comp_year, df_data)
# 分母の計算
denom = sum([p_0[j] * q_0[j] for j in range(n)])
# ラスパイレス指数の計算
index_val = sum([p_t[i] * q_0[i] / denom for i in range(n)]) * 100
return index_val
# パーシェ指数関数
def paasche_index(base_year, comp_year, df_data):
# 計算要素の取得
n, p_0, q_0, p_t, q_t = get_values(base_year, comp_year, df_data)
# 分母の計算
denom = sum([p_0[j] * q_t[j] for j in range(n)])
# パーシェ指数の計算
index_val = sum([p_t[i] * q_t[i] / denom for i in range(n)]) * 100
return index_val
# フィッシャー指数関数
def fisher_index(base_year, comp_year, df_data):
# ラスパイレス指数の計算
l = laspeyres_index(base_year, comp_year, df_data)
# パーシェ指数の計算
p = paasche_index(base_year, comp_year, df_data)
# フィッシャー指数の計算
return np.sqrt(l * p)
■3つの価格指数の計算と表示
基準年base_yearと比較年comp_yearを設定します。
さまざまな年を設定して、指数の計算結果を確認してみてくださいね。
# 設定 基準年と比較年を指定する
base_year = 2020 # 基準年
comp_year = 2021 # 比較年
# 指数の計算
laspeyres = laspeyres_index(base_year, comp_year, df)
paasche = paasche_index(base_year, comp_year, df)
fisher = fisher_index(base_year, comp_year, df)
# 各指数の表示
print(f'品目:\n{get_item_list(df)}')
print('-'*31)
print(f'基準年: {base_year}年 - 比較年: {comp_year}年')
print('-'*31)
print(f'ラスパイレス指数: {laspeyres:.2f}')
print(f'パーシェ指数 : {paasche:.2f}')
print(f'フィッシャー指数: {fisher:.2f}')
計算できました!
2020年から2021年のフルーツの物価は微増です。
その他の年の物価変動をぜひご確認ください!
④時系列推移グラフの表示
2000年から2021年までのフルーツの平均価格・購入数量・支出金額について、時系列推移グラフを作成します。
■共通処理
# 折れ線グラフの線の色数を増やす
plt.rcParams['axes.prop_cycle'] = plt.cycler(
'color', plt.get_cmap('tab20').colors)
# その他の共通処理
x = np.linspace(2000, 2021, 22)
item_list = get_item_list(df)
■平均価格
plt.figure(figsize=(7, 5))
# グラフのプロット
for item in item_list:
y = df[df['品目名']==item]['平均価格']
plt.plot(x, y, label=item, linewidth=1)
# 修飾
plt.grid(axis='x', color='gray', linewidth=0.5, linestyle=':')
plt.title('果物の平均価格推移(単位:円/100g)')
plt.xlabel('年')
plt.ylabel('平均価格(円/100g)')
plt.legend(fontsize=10, bbox_to_anchor=(1.05, 1.0), loc='upper left')
plt.tight_layout()
plt.savefig('./plot_ave_price.png') # グラフ画像ファイルの保存
plt.show()
■購入数量
plt.figure(figsize=(7, 5))
# グラフのプロット
for item in item_list:
y = df[df['品目名']==item]['購入数量']
plt.plot(x, y, label=item, linewidth=1)
# 修飾
plt.grid(axis='x', color='gray', linewidth=0.5, linestyle=':')
plt.title('1世帯当たり果物の年間購入数量推移(単位:g)')
plt.xlabel('年')
plt.ylabel('年間購入数量(g)')
plt.legend(fontsize=10, bbox_to_anchor=(1.05, 1.0), loc='upper left')
plt.tight_layout()
plt.savefig('./plot_purchase_quantities.png') # グラフ画像ファイルの保存
plt.show()
■支出金額
plt.figure(figsize=(7, 5))
# グラフのプロット
for item in item_list:
y = df[df['品目名']==item]['支出金額']
plt.plot(x, y, label=item, linewidth=1)
# 修飾
plt.grid(axis='x', color='gray', linewidth=0.5, linestyle=':')
plt.title('1世帯当たり果物の年間支出金額推移(単位:円)')
plt.xlabel('年')
plt.ylabel('年間支出金額(円)')
plt.legend(fontsize=10, bbox_to_anchor=(1.05, 1.0), loc='upper left')
plt.tight_layout()
plt.savefig('./plot_expenditure.png') # グラフ画像ファイルの保存
plt.show()
■グラフを読んでみて
平均価格の推移では、ぶどうの平均価格が急上昇していることが可視化されました。
シャインマスカットなどの高級種が影響しているのでしょうか?
また、いちごの平均価格は高いのですね。
今まで気がつきませんでした。
購入数量の推移では、バナナが安定トップです。
ぱっと見、家庭のフルーツ消費量に減少の傾向が見られるように感じます。なお、2000年1位のみかん、3位のりんごは年々減っているようです。
こたつを囲んで食べる印象のあるフルーツ品目。
ライフスタイルの変化(家族団らんの減少等)の影響なのでしょうか。
金額ベースでは家庭のフルーツ支出金額は横ばい(若干下がり気味?)のように見えます。
データは、比較をすることによって活き活きする、こんなことを想いました。
Pythonサンプルファイルのダウンロード
こちらのリンクからJupyter Notebook形式のサンプルファイルをダウンロードできます。
おわりに
今回の記事は1番目のカテゴリ「1変数記述統計の分野」の最終章です。
お疲れ様でした。
次回は「2変数記述統計の分野」に進みます。
データ$${X}$$と$${Y}$$の2つの変数の実現値を扱います。
図表では「散布図」が主役になります。
統計量では「共分散」「相関係数」がポイントになりそうです。
引き続きよろしくお願いいたします。
最後までお読みいただきまして、ありがとうございました。
のんびり統計シリーズの記事
次の記事
前の記事
目次