#179 Pythonを用いて2014年(平成26年)大阪府産業連関表の最終需要部門を推計(その2)
投稿#178から、Pythonを用いて2014年(平成26年)大阪府産業連関表における最終需要部門の推計に取り掛かっています。
今回の投稿も、投稿#178に引き続き、最終需要部門の推計についてです。
最終需要部門の推計
(6)生産者在庫純増および(7)半製品・仕掛品在庫純増の推計
推計方法の確認
(6)生産者在庫純増
製造業部門については、工業統計を利用した。その他の部門は、全国延長表の生産者在庫純増額を、生産者の対全国比で按分した。
(7)半製品・仕掛品在庫純増の推計
製造業部門については、工業統計を利用した。その他の部門は、全国延長表の半製品・仕掛品在庫純増額を、生産者の対全国比で按分した。
大阪府総務部統計課「平成25年(2013年)大阪府産業連関表(延長表)報告書」より引用
在庫純増額推計シートの活用
投稿#142において、製造業部門の生産者在庫純増および半製品・仕掛品在庫純増の推計に使えるシートを作成したので、今回もそのシートを活用します。
実際の推計
製造業部門は、大阪府総務部統計課「大阪の工業」の平成26年調査の産業別統計表のデータを利用しました。
上記の表は、産業細分類別に
- 製造品年初在庫額
- 製造品年末在庫額
- 半製品仕掛品年初在庫額
- 半製品仕掛品年末在庫額
のデータ(単位:万円)が掲載されています。なので、下式により生産者製品在庫純増額、半製品・仕掛品在庫純増額を推計しました。
$$
生産者製品在庫純増額 = (製造品年初在庫額−製造品年末在庫額)/100
$$
$$
半製品・仕掛品在庫純増額 = (半製品仕掛品年初在庫額−半製品仕掛品年末在庫額)/100
$$
コード179-1
# 生産者製品在庫純増および半製品・仕掛品在庫純増額の推計
# 製造業部門の生産者製品在庫純増および半製品・仕掛品在庫順増額をDataFrameに格納
import numpy as np
h26_manu_stocks_df = pd.read_csv("h26製品在庫純増.csv")
h26_manu_stocks_df = to_str_in_code(h26_manu_stocks_df, 3)
# 生産者製品在庫純増額の推計
for i in range(len(h26_manu_stocks_df.index)):
# 製造業部門なら、読み込んだDataFrameの値を転記
if np.isnan(h26_manu_stocks_df.iat[i, 0]) == False:
h26_fd_df.iat[i, 7] = h26_manu_stocks_df.iat[i, 0]
# 製造業部門でないかつ全国延長表の在庫純増額が0なら、大阪府の値に0w入力
elif h26_japan_enl_fd_df.iat[i, -1] == 0:
h26_fd_df.iat[i, 7] = 0
# 製造業部門でないかつ全国延長表の在庫純増額が0でないなら、生産額の対全国比で按分
else:
ratio = h26_pro_df.T.iat[i, 0] / h26_japan_enl_fd_df.iat[i, -1]
h26_fd_df.iat[i, 7] = ratio * h26_japan_enl_fd_df.iat[i, 9]
# 半製品・仕掛品在庫純増額の推計
for i in range(len(h26_manu_stocks_df.index)):
# 製造業部門なら、読み込んだDataFrameの値を転記
if np.isnan(h26_manu_stocks_df.iat[i, 1]) == False:
h26_fd_df.iat[i, 8] = h26_manu_stocks_df.iat[i, 1]
# 製造業部門でないかつ全国延長表の在庫純増額が0なら、大阪府の値に0w入力
elif h26_japan_enl_fd_df.iat[i, -1] == 0:
h26_fd_df.iat[i, 8] = 0
# 製造業部門でないかつ全国延長表の在庫純増額が0でないなら、生産額の対全国比で按分
else:
ratio = h26_pro_df.T.iat[i, 0] / h26_japan_enl_fd_df.iat[i, -1]
h26_fd_df.iat[i, 8] = ratio * h26_japan_enl_fd_df.iat[i, 10]
(8)流通在庫純増
推計方法の確認
全国延長表の流通在庫純増を、域内需要額から在庫純増を除いた額の対全国比で按分した。
大阪府総務部統計課「平成25年(2013年)大阪府産業連関表(延長表)報告書」より引用
実際の推計
最初、「域内需要額」という用語が理解できませんでした。
おそらく、全国延長表で言うところの「7900 国内需要合計」、または、大阪府延長表で言うところの「7900 府内需要合計」のことを意味していると解釈しました。
その理解でいくと、「域内需要額から在庫純増を除いた額」というのは、以下の式で表される額と等しいのではないかと考えました。
$$
中間需要(内生部門)合計 + 家計外消費支出(列)+ 家計消費支出 + 一般政府消費支出 + 一般政府消費支出(社会資本減耗分)+ 総固定資本形成(公的、民間)
$$
流通在庫純増額を推計し、転記するPythonのコードは、以下のようになります。
コード179-2
# 流通在庫純増の推計
for idx in h26_manu_stocks_df.index:
# 全国延長表の流通在庫純増をdsg_japnaに代入
dsg_japan = h26_japan_enl_fd_df.loc[idx, "761103"]
# 全国延長表における域内需要額から在庫純増を覗いた額を推計し、obj_japanに代入
obj_japan = h26_japan_enl_all_integrated_df.loc[idx, :"6911"].sum() + h26_japan_enl_fd_df.loc[idx, "711100":"751100"].sum()
# obj_japanが0ならば、H26大阪府流通在庫純増額は0
if obj_japan == 0:
h26_fd_df.loc[idx, "761103"] = 0
continue
# obj_japanが0でないなら、対全国比で按分
else:
obj_osaka = h26_adjusted_mid_df.loc[idx, :].sum() + h26_fd_df.loc[idx, "711100":"751100"].sum()
h26_fd_df.loc[idx, "761103"] = dsg_japan * obj_osaka / obj_japan
(9)原材料在庫純増
推計方法の確認
全国延長表の原材料在庫純増額を、域内中間需要額の対全国比で按分した。
大阪府総務部統計課「平成25年(2013年)大阪府産業連関表(延長表)報告書」より引用
実際の推計
「域内中間需要額」とは、「域内中間投入額」と等しい、つまり、「内生部門計」の額の対全国比で按分すれば良いと判断しました。
よって、推計を行うPythonのコードは、以下のようになります。
コード179-3
# 流通在庫純増の推計
for idx in h26_manu_stocks_df.index:
# 全国延長表の原材料純増をsrms_japnaに代入
srms_japan = h26_japan_enl_fd_df.loc[idx, "761104"]
# 全国延長表の国内中間需要額合計をtis_japanに代入
tis_japan = h26_japan_enl_all_integrated_df.loc[idx, :"6911"].sum()
# tis_japanが0ならば、H26大阪府原材料在庫純増額は0
if obj_japan == 0:
h26_fd_df.loc[idx, "761104"] = 0
continue
# tis_japanが0でないなら、域内中間需要額の対全国比で按分
else:
tis_osaka = h26_adjusted_mid_df.loc[idx, :"6911"].sum()
h26_fd_df.loc[idx, "761104"] = srms_japan * tis_osaka / tis_japan