見出し画像

#46 大阪府の重量単価初期値における廃棄物発生量の推計と統計値との比較

#45(前回の投稿)では、H26年度の大阪府の物質フローを推計するにあたって、各産業の重量単価初期値を推計しました。

今回は、重量単価初期値における大阪府の製造業24分類の廃棄物発生量を推計し、統計値との相関をみてみます。

単一産業での、投入量・産出量・大気放出量・廃棄物発生量を推計

単一産業での、投入量(input)・産出量(output)・大気放出量(fuel)・廃棄物発生量(waste)を推計するコードは、以下のようになります。

# x産業を0111(穀類)に固定
x = 0
# 投入量を計算
input = 0 # 投入分
fuel = 0 # 燃料使用分
output = 0 # 産出分
df_index = df_price_per_ton.index
for i in range(len(df_iotable.index)):
   for k in range(len(df_index)):
       Ui = df_price_per_ton.iat[k, 0]
       input_amount = df_iotable.iat[i, x] * 10**6
       if Ui == 0:
           continue
       if df_index[k] == df_iotable.index[i]:
           if input_amount >= 0:
               input += input_amount // Ui
               if df_index[k] == '2121': # 石炭製品の燃料使用分
                   fuel += input_amount // Ui
               # 石油化学基礎製品への石油製品投入ではない場合
               if df_index[k] == '2111' and df_iotable.columns[x] != '2031':
                   fuel += input_amount // Ui # 石油製品の燃料使用分
           else:
               output += abs(input_amount) // Ui # ストーン方式への対応
           
# 産出量を計算
iyunyu = 0 # 移輸入
iyushutsu = 0 # 移輸出
consume = 0 # 消費
fixed_capital = 0 # 固定資本
stock = 0 # 在庫
Ux = df_price_per_ton.iat[x, 0]
if Ux == 0:
   output = 0
   consume = 0
   fixed_capital = 0
   stock = 0
   iyushutsu = 0
   iyunyu = 0
else:
   for i in range(len(df_iotable.index)):
       if i == x:
           continue
       else:
           if df_iotable.iat[x, i] >= 0:
               output += df_iotable.iat[x, i] * 10**6 // Ux
   

   ctuple = ('7111', '7211', '7212', '7311', '7321')
   for c in ctuple:
       consume += df_iotable.loc['0111', c] * 10**6 // Ux
   
   ftuple = ('7411', '7511')
   for f in ftuple:
       fixed_capital += df_iotable.loc['0111', f] * 10**6 // Ux
   
   stock = df_iotable.loc['0111', '7611'] * 10**6 // Ux
   
   iystuple = ('8100', '8211')
   for i in iystuple:
       iyushutsu += df_iotable.loc['0111', i] * 10**6 // Ux
       
   iyntuple = ('8800', '8911')
   for i in iyntuple:
       iyunyu += -(df_iotable.loc['0111', i]) * 10**6 // Ux

input = input + iyunyu
output = output + iyushutsu + consume + fixed_capital + stock
waste = input - output - fuel
print('投入分:' + str(int(input)) + '[t]') 
print('産出分:' + str(int(output)) + '[t]')
print('燃料使用分:' + str(int(fuel)) + '[t]')
print('廃棄物発生量:' + str(int(waste)) + '[t]')

和歌山県を推計する際との相違点は、

・移輸出が、輸出(8100)と移出(8211)とに分割されているので、移輸出量を算出する際には、それらを合算する必要がある
・同じく、移輸入も輸入(8800)と移入(8911)とに分割されているので、移輸入量を算出する際には、それらを合算する必要がある

という点です。以下に該当するコードを抜粋しています。

iystuple = ('8100', '8211')
   for i in iystuple:
       iyushutsu += df_iotable.loc['0111', i] * 10**6 // Ux
       
   iyntuple = ('8800', '8911')
   for i in iyntuple:
       iyunyu += -(df_iotable.loc['0111', i]) * 10**6 // Ux

大阪府の重量単価初期値における推計値と統計値の廃棄物発生量

大阪府の、重量単価初期値における投入量・産出量・大気放出量・廃棄物発生量推計値(Ey)・報告書(Sy)の推計結果は以下のようになります。

画像1

製造業24分類のうち、3業種で廃棄物発生量の推計値が負の値となり、木材、パルプ・紙、非鉄金属が統計値と大きくずれています。

大阪府の重量単価初期値における推計値と統計値の相関

推計値が負の値を取り除いたときの散布図は、以下のようになります。

画像2

次回は、以下の式の評価関数を用いて目的関数zが最小となるような重量単価の再設定を行う予定です。

画像3


サポート、本当にありがとうございます。サポートしていただいた金額は、知的サイドハッスルとして取り組んでいる、個人研究の費用に充てさせていただきますね♪