#176 Pythonを用いて2014年(平成26年)大阪府産業連関表の粗付加価値部門を推計
投稿#148より、2014年(平成26年)大阪府産業連関表の作成に取り掛かっています。
投稿の順番は前後しますが、投稿#148から#175及び#130から#137において、各産業の府内生産額の推計方法を説明してきました。
上述の推計方法に基づいて推計を行った結果、全産業(190部門)の生産額の推計が完了しました。
よって、本投稿から、下記の順で2014年(平成26年)大阪府産業連関表を完成させていきます。
- 粗付加価値額の推計
- 投入額の推計
- 最終需要部門の推計
- バランス調整
2013年(平成25年)大阪府産業連関表の推計ではExcel VBAを使用
本ブログでは、投稿#139から#146において、上記の順に従って2013年(平成25年)大阪府産業連関表を完成させていきました。
その際、主にExcel VBAを用いて推計作業を行いました。
今回、2014年(平成26年)大阪府産業連関表を推計するにあたり、新たな試みとして、Excel VBAではなく、Pythonを用いた推計を行ってみようと思います。
2014年(平成26年)大阪府産業連関表の祖付加価値額の推計
祖付加価値額推計用DataFrameの準備
まず最初に、2011年(平成23年)大阪府産業連関表(190部門)を加工して、下記のような、行(ヨコ)が粗付加価値部門のみから成る表を作成します。
上記の表をCSVファイル形式で保存したものをpandasのread_csvメソッドで読み込みます。
コード176-1
# 粗付加価値部門の推計用のDataFrameを作成
import pandas as pd
gross_added_values_for_2011_df = pd.read_csv("祖付加価値額総額推計シート_平成26年大阪府産業連関表.csv", index_col=0)
gross_added_values_for_2011_df.head()
インデックスのcodeを文字列に変換する関数を定義
DataFrame中のindex及びcolumnは、分類コードとなります。特に、indexは、粗付加価値部門の分類コードです。
また、値は2011年(平成23年)大阪府産業連関表(190部門)の粗付加価値部門の各項目の内訳額になります。
ここで、CSVファイルにおいて、インデックスの分類コードは4桁の数字列、つまり文字列となっていましたが、read_csvメソッドで読み込むと、indexの分類コードのデータ型は数字に変化しました。
なので、DataFrameのindexである分類コードのデータ型を文字列に変換する関数を定義し、これ以降適宜使用することにします。
関数は以下のコードになります。
コード176-2
# インデックスのcodeを文字列に変換する関数を定義
def to_str_in_code(df, scale):
df = df.rename(columns={"Unnamed: 0": "code"})
df["code"] = df["code"].astype("str")
for idx in df.index:
if len(df.loc[idx, "code"]) == scale:
df.loc[idx, "code"] = "0" + str(df.loc[idx, "code"])
df = df.set_index("code")
return df
1 粗付加価値部門の各項目の総額推計
推計方法
(1)粗付加価値部門の各項目の総額推計
家計外消費支出の総額は、(2)で推計する内訳額を合計した。
家計外消費支出以外の各項目の総額は、下式により求め固定した。
$$
平成23年大阪府基本表の粗付加価値部門の各項目行和額 × \frac{平成26年府民経済計算の各項目額}{平成23年府民経済計算の各項目額 }
$$
(2)粗付加価値部門の各項目の内訳額推計
平成 23 年大阪府基本表の投入係数に、平成 25 年大阪府延長表の生産額を乗じた。
(3)差額調整
家計外消費支出以外の項目では、(1)で推計した総額と(2)で推計した内訳額の行和が異なるため、差額を内訳額の行和に占める各内訳額の構成比により按分し、各内訳額に加えて調整した。
大阪府総務部統計課「平成25年(2013年)大阪府産業連関表(延長表)報告書」より
「家計外消費支出以外の各項目」というのは、粗付加価値部門の以下の項目を指します。
- 9111 賃金・俸給
- 9112 社会保険料(雇用主負担)
- 9113 その他の給与及び手当
- 9211 営業余剰
- 9311 資本減耗引当
- 9321 資本減耗引当(社会資本等減耗分)
- 9411 間接税(関税・輸入品商品税を除く。)
- 9511 (控除)経常補助金
(1)粗付加価値部門の各項目の総額推計
府民経済計算の伸び率の算出
粗付加価値部門の各項目の平成23年及び25年府民経済計算の算出をおこないます。
9111 賃金・俸給
まず、大阪府府民経済計算(平成18年度から平成30年度)のExcelファイル「08SNA 平成23暦年基準」をダウンロードします。
ダウンロードしたファイルにおいて、「2-(1)-a 府民所得及び府民可処分所得の分配 (名目:実額)」(sheet名:分配_実額)中の「1. 府民雇用者報酬 (1) 賃金・俸給」の値から算出します。
なお、府民経済計算は、会計年度ベースで記載されているので、暦年ベースに変換します。
例えば、平成23年の値を算出する場合、変換式は以下のようになります。
$$
平成23年の値=平成22年度の値×\frac{3}{12} +平成23年度の値×\frac{9}{12}
$$
9112 社会保険料(雇用主負担)
先述のダウンロードした2-(1)-a 府民所得及び府民可処分所得の分配 (名目:実額)」(sheet名:分配_実額)中の「1. 府民雇用者報酬 (2) 雇主の社会負担」の値から算出します。
9113 その他の給与及び手当
以下の算出式を用いて、「9113 その他の給与及び手当」を算出します。
$$
その他の給与及び手当 = 府内雇用者報酬−賃金・俸給−社会保険料(雇用主負担)
$$
なお、上述の式中の府内雇用者報酬は、大阪府総務部統計課情報企画グループ「大阪府民経済計算(平成30年度 確報)」のIII 基本勘定 1 統合勘定(1) 府内総生産勘定(生産側と支出側)における、「1.1 雇用者報酬(府内活動による) (2.4) 」の値を直接使用しました。
9211 営業余剰
大阪府総務部統計課情報企画グループ「大阪府民経済計算(平成30年度 確報)」のIII 基本勘定 1 統合勘定(1) 府内総生産勘定(生産側と支出側)における、「営業余剰・混合所得」の値を用いました。
9311 資本減耗引当、9321 資本減耗引当(社会資本等減耗分)
どちらも、上述の基本勘定における「固定資本減耗」の値を用いて算出しました。
9411 間接税(関税・輸入品商品税を除く。)
大阪府総務部統計課情報企画グループ「大阪府民経済計算(平成30年度 確報)」のIII 基本勘定 1 統合勘定(1) 府内総生産勘定(生産側と支出側)における「生産・輸入品に課される税 」から、4経済活動別府内総生産及び要素所得における「輸入品に課される税・関税」を引くことで算出しました。
算出式は、以下のようになります。
$$
関節税(関税・輸入品商品税を除く。)= 生産・輸入品に課される税 − 輸入品に課される税・関税
$$
9511 (控除)経常補助金
大阪府総務部統計課情報企画グループ「大阪府民経済計算(平成30年度 確報)」のIII 基本勘定 1 統合勘定(1) 府内総生産勘定(生産側と支出側)における「(控除)補助金」の値を用いて算出しました。
粗付加価値部門の各項目の総額推計
下記の推計式より、家計外消費支出以外の各項目の総額を求め固定します。
$$
平成23年大阪府基本表の粗付加価値部門の各項目行和額 × \frac{平成26年府民経済計算の各項目額}{平成23年府民経済計算の各項目額 }
$$
下記の表は、2011年(平成23年)及び2014年(平成26年)における府民経済計算の各項目額をまとめたものになります。
Table 176-2.のCSVファイルにして、read_csvメソッドで読み込み、家計外消費支出意外の各項目の総額を推計します。
コード176-3
# 家計外消費支出以外の各項目の総額を算出
# 平成23年及び平成26年府民経済計算の各項目額の表を読み込む
gross_added_values_total_df = pd.read_csv("粗付加価値額総額シート_平成26年大阪府産業連関表.csv",
index_col=0)
# 列total(各項目の総額)を算出
gross_added_values_total_df["total"] = gross_added_values_total_df["sumrow"] * gross_added_values_total_df["Year 2014"] / gross_added_values_total_df["Year 2011"]
gross_added_values_total_df
(2)粗付加価値部門の各項目の内訳額推計
推計方法
平成 23 年大阪府基本表の投入係数に、推計が完了した平成26年大阪府産業連関表の生産額を乗じて推計を行います。
コード176-4
# 粗付加価値部門の各項目の内訳額推計
# 平成23年大阪府産業連関表の投入係数を読み込む
h23_input_eff_df = pd.read_csv("H23粗付加価値部門投入係数表.csv")
# インデックスのcodeを文字列に変換
h23_input_eff_df = to_str_in_code(h23_input_eff_df, 3)
# 平成26年大阪府産業連関表の生産額を読み込む
h26_pro_df = pd.read_csv("平成26年大阪府府内生産額一覧シート.csv")
h26_pro_df = to_str_in_code(h26_pro_df, 3)
# 粗付加価値部門の各項目の内訳額を格納するDataFrameを準備
h26_gav_df = h23_input_eff_df.copy()
# 不要な最終列"7000"を削除
h26_gav_df = h26_gav_df.drop(columns="7000")
for col in h26_gav_df.columns:
h26_gav_df[col] = 0
# 平成26年大阪府産業連関表粗付加価値部門の各項目の内訳額を算出
for i in range(len(h26_gav_df.columns)):
pro = h26_pro_df.loc["production"][h26_pro_df.columns[i]]
for j in range(len(h26_gav_df.index)):
h26_gav_df.iat[j,i] = h23_input_eff_df.iat[j, i] * pro
h26_gav_df
(3)差額調整
家計外消費支出以外の項目では、(1)で推計した総額と(2)で推計した内訳額の行和が異なるため、差額を内訳額の行和に占める各内訳額の構成比により按分し、各内訳額に加えて調整します。
コード176-5
# 粗付加価値部門の差額調整
# 差額調整後の値を格納するDataFrameを作成
h26_adjusted_gav_df = h26_gav_df.copy()
for i in range(len(h26_adjusted_gav_df.index)):
if i == 0:
continue
else:
h26_adjusted_gav_df.iloc[i, :] = 0
# 総額と内訳額の行和との差額を内訳額の行和に占める内訳額の構成比により按分し、各内訳額に加えて調整
for i in range(len(h26_adjusted_gav_df.index)):
if i == 0:
continue
else:
total = gross_added_values_total_df.iat[i, 3] # 総額をtotalに格納
sumrow = h26_gav_df.iloc[i, :].sum() # 内訳額の行和をsumrowに格納
diff = total - sumrow # 差額をdiffに格納
for j in range(len(h26_adjusted_gav_df.columns)):
tmp = h26_gav_df.iat[i, j] # 各内訳額をtmpに格納
ratio = tmp / sumrow # 内訳額の行和に占める各内訳額の構成比をratioに格納
result = tmp + diff * ratio # 差額を構成比により按分し、各内訳額にくわえたものをresultに格納
h26_adjusted_gav_df.iat[i, j] = result
h26_adjusted_gav_df.to_csv("h26_adjusted_gaf.csv")
h26_adjusted_gav_df.round(1)