#196 兵庫県の生産活動における2000年のマテリアルフローの推計
投稿#195において、2000年の兵庫県物量表の推計を行いました。
今回の投稿では、物量表をもとに兵庫県の生産活動における2000年のマテリアルフローを推計していきます。
資源と製品を区分する表を作成
以下の表にある産業が、「資源」に該当する統合小分類と考えられます。
また、表にない産業のうち、第二次産業に含まれる産業が、「製品」と区分されます。
表196-1 統合小分類における資源と製品の区分
作成した表をcsvファイル形式で保存した後、データフレーム形式で読み込みます。
「第一次、第二次産業」と「第三次産業」の区分
サービス(第三次)産業への産出とは, 第一次,二次産業からサービス産業へ投入される製品とする。
(中略)
また,サービス産業への産出は,各項目から内生部門のサービス産業への産出量の値である。
統合小分類における「第一次、第二次産業」と「第三次産業」を区分する表を作成しました。
作成した表をcsvファイル形式で保存した後、データフレーム形式で読み込みます。
小数点第3位で四捨五入する関数を定義
数値を入力すれば小数点第3位で四捨五入した値を返す関数を定義します。
関数を定義したPythonのコードは、以下のようになります。
コード196-1 小数点第3位で四捨五入する関数を定義
# 小数点第3位で四捨五入する関数を定義
from decimal import Decimal, ROUND_HALF_UP # 数値を丸めるためにdecimalモジュールをインポート
def rounding3(value):
return Decimal(value).quantize(Decimal('0.01'), rounding=ROUND_HALF_UP)
移輸入量、移輸出量の推計
移輸入(資源)と移輸出(資源)は,物流表の各項目における移輸入(天然資源)と移輸出(天然資源)の値である。
(中略)
移輸入(製品)と移輸出(製品)は,物量表の各項目における移輸入(製品生産)と移輸出(製品生産) の値である。
橘ら(2012)より引用。
先ほど作成した2000年(平成12年)兵庫県物量表において、資源に該当する産業項目ごとに列9450(移輸入計)の値を積み上げていけば移輸入(天然資源)量が、列9230(移出)及び列9220(輸出計)の値を積み上げていけば移輸出(天然資源)量が算出できます。
製品生産の移輸入量および移輸出量も同様にすれば推計できます。
推計に用いたPythonのコードは、以下のようになります。
コード196-2 移輸入、移輸出の推計
# 移輸入量、移輸出量の推計
# 資源表作成
df_h12_resources = df_h12_reorgo.loc[df_h12_reorgo["term"] == "資源"]
# 製品表作成
df_h12_goods = df_h12_reorgo.loc[df_h12_reorgo["term"] == "製品"]
import_re = 0 # 移輸入(資源)量
export_re = 0 # 移輸出(資源)量
import_go = 0 # 移輸入(製品)量
export_go = 0 # 移輸出(製品)量
import_code = "9450" # 移輸入の産業コード
export_tuple = ("9220", "9230",) # 移輸出の産業コードをタプルに格納
for icode in df_h12_per_cap_mt.index:
if icode in df_h12_resources.index:
import_re += -(df_h12_per_cap_mt.loc[icode][import_code])
for ecode in export_tuple:
export_re += df_h12_per_cap_mt.loc[icode][ecode]
elif icode in df_h12_goods.index:
import_go += -(df_h12_per_cap_mt.loc[icode][import_code])
for ecode in export_tuple:
export_go += df_h12_per_cap_mt.loc[icode][ecode]
print("移輸入(資源): " + str(rounding3(import_re)) + "t/人/年")
print("移輸入(製品): " + str(rounding3(import_go)) + "t/人/年")
print("移輸出(資源): " + str(rounding3(export_re)) + "t/人/年")
print("移輸出(製品): " + str(rounding3(export_go)) + "t/人/年")
結果は、以下のようになります。
- 移輸入(資源): 8.83t/人/年
- 移輸入(製品): 11.01t/人/年
- 移輸出(資源): 5.50t/人/年
- 移輸出(製品): 9.71t/人/年
一般消費
一般消費とは,それ以上の加工をされずに,最終商品とし て家庭や政府,企業に売られる製品とする。
(中略)
蓄積,在庫純増,固定資本,一般消費は,それぞれ物量表の各項目における蓄積,在庫純 増,固定資本形成,家計消費・民間消費・政府支出への産出量の値である。
橘ら(2012)より引用
一般消費の値を算出するPythonのコードは、以下のようになります。
コード196-3 一般消費の推計
# 一般消費量の推計
consum = 0 # 一般消費量
consum_tuple = ("9110", "9121", "9122", "9131", "9132",) # 一般消費に該当する最終需要部門コード
for icode in df_h12_mt.index:
for cons_code in consum_tuple:
consum += df_h12_per_cap_mt.loc[icode][cons_code]
print("一般消費:" + str(rounding3(consum)) + "t/人/年")
第三次産業
サービス(第三次)産業への産出とは, 第一次,二次産業からサービス産業へ投入される製品とする。
(中略)
また,サービス産業への産出は,各項目から内生部門のサービス産業への産出量の値である。
橘ら(2012)より引用
第三次産業を推計するPythonのコードは、以下のようになります。
コード196-4 第三次産業の推計
# 第三次産業表作成
df_h12_third = df_h12_onedigit.loc[df_h12_onedigit["classification"] == "第三次産業"]
service = 0 # 第三次(サービス)産業量
for icode in df_h12_mt.index:
for tcode in df_h12_third.index:
service += df_h12_per_cap_mt.loc[icode][tcode]
print("第三次産業:" + str(rounding3(service)) + "t/人/年")
在庫純増、固定資本
固定資本形成とは,耐用年数が1年以上で単価が10万円 以上のいわゆる資本財とする。ただし,例外として, 機械に組み込まれて新たな機械を構成するもの(機 械組込),建設部門がその建設活動の中間材として 購入したもの(建設迂回),土木工事の工事費の内訳として扱われる財(土木迂回),鋼船に組み込ま れた機械(造船迂回)や自衛隊が購入した武器なども含まれる。
(中略)
在庫純増とは,対象年次に生産された製 品のうち,どの部門にも販売されず,かつ,自家消 費もされなかった製品とする。また,購入されたのに使用されなかった製品や原料,半製品および仕掛け品の状態で余ってしまっている製品も含む。
橘ら(2012)より引用
在庫純増および固定資本を推計するPythonのコードは、以下のようになります。
コード196-5 在庫純増及び固定資本の推計
# 在庫純増、固定資本の推計
stock = 0 # 在庫純増
fixcap = 0 # 固定資本
stockcode = "9150" # 在庫純増のコード
fixcap_tuple = ("9141", "9142",) # 固定資本に該当する最終需要部門コード
for icode in df_h12_mt.index:
stock += df_h12_per_cap_mt.loc[icode][stockcode]
for fcode in fixcap_tuple:
fixcap += df_h12_per_cap_mt.loc[icode][fcode]
print("在庫純増:" + str(rounding3(stock)) + "t/人/年")
print("固定資本:" + str(rounding3(fixcap)) + "t/人/年")
ここで、#195のときと同様にして、2000年(平成12年)兵庫県の生産活動における総投入、総生産、廃棄物等の量を推計します。
上図より、総投入、総生産を推計する式は以下のようになります。
$$
総投入 = 移輸入(資源) + 移輸入(製品) + 第一次、第二次産業 + 県内生産(資源)
$$
$$
総生産 = 移輸出(資源)+ 移輸出(製品) + 一般消費 + 第三次産業 + 在庫 + 固定資本 + 第一次、第二次産業 + 県内生産(資源)
$$
$$
廃棄物等 = 総投入 - 総生産
$$
上記の式に値を代入したところ、廃棄物等の値が負の値となってしまいました。
ここで、廃棄物等を推計する式を、以下のように変形することにしました。
$$
廃棄物等 = 移輸入(資源) + 移輸入(製品) - 移輸出(資源)- 移輸出(製品) - 一般消費 - 第三次産業 - 在庫 - 固定資本
$$
廃棄物等が、内生部門の第一次、第二次産業における投入と産出の差ではなく、第三次産業と最終需要部門の項目によって推計されるのには、違和感を感じています。この違和感に関しては、まだ言語化できていない部分もあるので、今後も検討を要するところです。
投入量、産出量、燃料投入、廃棄物量の推計
橘ら(2012)では、廃棄物量を推計する式を以下のように設定しています。
本研究においては,下に示す式を用いて産業連関表から生産量・廃棄物量を推算した。
産出量 = 算出金額 ÷ 重量単価 (1)
廃棄物量 = Σ(他産業からの当該産業への産出金額 ÷ 重量単価)+Σ(当該産業からの他産業への産出金額 ÷ 重量単価)-当該産業への燃料投入量 (2)石油製品,石炭製品から石油基礎化学製品への投入以外については,製品の材料としては使用されず,燃料として消費されると仮定し,廃棄物の計算から除外した。
(中略)
県内生産量とは,神奈川県産業連関表における物量表の県内総生産量の値である。ただし,石油製品と石炭製品については,それぞれ原油・天然ガスと石炭を原料として製造されていることから,二重 計上を防ぐためにここでは計上しなかった。
橘ら(2012)より引用。
上述の式(1), (2)はおそらく、以下の式が正しいと思われます。
$$
産出量 = 算出金額 × 重量単価 (1)
廃棄物量 = Σ(他産業からの当該産業への産出金額 × 重量単価)+ Σ(当該産業からの他産業への産出金額 × 重量単価)-当該産業への燃料投入量 (2)
$$
ここで、上述の式(2)に基づいて、投入量、産出量、燃料投入量、廃棄物量を推計します。
項目ごとの投入量、産出量、燃料投入量、廃棄物量をそれぞれ積算したものを推計するPythonのコードは、以下のようになります。
コード196-6 投入量・産出量・燃料投入量・廃棄物量の推計
# すべての産業での廃棄物の積算量を推計
input = 0 # 投入量(積算値)
fuel = 0 # 燃料投入量(積算値)
output = 0 # 産出量(積算値)
waste = 0 # 廃棄物量(積算値)
fuel_tuple = ("2111", "2121",) # 石油製品、石炭製品のコードをタプルに格納
for xcode in df_h12_per_cap_mt.index:
for icode in df_h12_per_cap_mt.index:
input += df_h12_per_cap_mt.loc[icode][xcode]
if icode in fuel_tuple and xcode != "2031":
fuel += df_h12_per_cap_mt.loc[icode][xcode]
for xcode in df_h12_per_cap_mt.index:
for jcode in df_h12_reorgo.index:
if xcode in fuel_tuple:
continue
else:
output += df_h12_per_cap_mt.loc[xcode][jcode]
waste = input - output - fuel
print("投入量(積算値) : " + str(rounding3(input)) + "t/人/年")
print("生産量(積算値) : " + str(rounding3(output)) + "t/人/年")
print("燃料投入量(積算値) : " + str(rounding3(fuel)) + "t/人/年")
print("廃棄物量(積算値) : " + str(rounding3(waste)) + "t/人/年")
結果は、以下のようになりました。
- 投入量(積算値) : 32.89t/人/年
- 生産量(積算値) : 28.32t/人/年
- 燃料投入量(積算値) : 1.97t/人/年
- 廃棄物量(積算値) : 2.60t/人/年
廃棄物量(積算値)は正の値を得ることができました。
県内生産(資源)、総投入量、総生産量、廃棄物等の推計
県内生産(資源)とは,県内で採掘された天然資源 とする。
(中略)
第一次,第二次産業への産出は,各項目から内生部門の第一次・二次産業への生産量とした。
橘ら(2012)より引用。
ここで、県内生産(資源)は、投入側からのみ推計が可能であるものと仮定します。
すなわち、兵庫県の生産活動におけるマテリアルフローを以下のように整理してみます。
すると、県内生産(資源)、総投入量、総生産量、廃棄物等を算出する式は、以下のようになります。
$$
県内生産(資源) = |(移輸入(資源) + 移輸入(製品) - 移輸出(資源) + 移輸出(製品) - 一般消費 - 第三次産業 - 在庫 - 固定資本)|
$$
$$
総投入量 = 移輸入(資源) + 移輸入(製品) + 投入量(積算値) + 県内生産(資源)
$$
$$
総生産量 = 生産量(積算値) + 移輸出(資源) + 移輸出(製品) + 一般消費 + 第三次産業 + 在庫 + 固定資本
$$
$$
廃棄物等 = 総投入量 - 総生産量
$$
県内生産(資源)、総投入量、総生産量、廃棄物等を算出するPythonのコードは、以下のようになります。
コード196-7 県内生産(資源)、総投入量、総生産量、廃棄物等の算出
# 県内生産(資源)、総投入量、総生産量、廃棄物等の推計
# 県内生産(資源)の算出
dome_re = abs(import_re + import_go - export_re - export_go - consum - service - stock - fixcap)
# 総投入量の算出
total_input = import_re + import_go + input + dome_re
# 総生産量の算出
total_pro = output + export_re + export_go + consum + service + stock + fixcap
# 廃棄物等の算出
total_waste = total_input - total_pro
print("県内生産(資源) : " + str(rounding3(dome_re)) + "t/人/年")
print("総投入量 : " + str(rounding3(total_input)) + "t/人/年")
print("総生産量 : " + str(rounding3(total_pro)) + "t/人/年")
print("廃棄物等: " + str(rounding3(total_waste)) + "t/人/年")
算出結果は、以下のようになります。
- 県内生産(資源) : 3.92t/人/年
- 総投入量 : 56.64t/人/年
- 総生産量 : 52.08t/人/年
- 廃棄物等: 4.56t/人/年
前述の仮定した兵庫県の生産活動におけるマテリアルフロー図に値を代入すると、以下の図のようになります。
“#196 兵庫県の生産活動における2000年のマテリアルフローの推計” に対して1件のコメントがあります。