#146 2013年(平成25年)大阪府産業連関表作成におけるバランス調整
投稿#145までで、2013年(平成25年)大阪府産業連関表の最終需要部門の推計が完了しました。
ここまでは、個々に推計した結果を集めた段階であるので、必ずしもタテ列(投入)とヨコ行(産出)のバランスが成立していません。
そこで、今回の投稿では、投入と産出のバランスを調整していきます。
チェックポイント
輸出や移出がその産業部門の生産額を超えていないか、プラス値になっているかどうか、輸入や移入が域内需要を超えていないか、マイナス値になっているかどうか、などがチェックポイントです。
土井英二・浅利一郎・中野親徳[編著]『はじめよう地域産業連関分析 Excelで初歩から実践まで[改訂版]』p.175より
上記のチェックを行うVBAのコードは、以下のようになります。
Sub チェックポイント()
Dim OrgWs As Worksheet
Dim DesWs As Worksheet
Dim i As Integer 'カウンタ変数
Dim j As Integer 'カウンタ変数
Dim row As Integer 'カウンタ変数
Dim code As String 'code
Dim industry As String '産業部門名
Dim pro As Long '生産額
Dim exp As Long '輸出
Dim emi As Long '移出
Dim demand As Long '府内需要合計額
Dim yunyu As Long '輸入額
Dim imi As Long '移入額
Const FirstRow = 3 '開始行番号
Const LastRow = 192 '終了行番号
Const CodeColumn = 1 'code列番号
Const IndColumn = 2 '産業部門名列番号
Const ProRow = 204 '府内生産額行番号
Const ExpColumn = 207 '輸出列番号
Const EmiColumn = 208 '移出列番号
Const DemandColumn = 204 '府内需要合計列番号
Const YunyuColumn = 215 '輸入計列番号
Const ImiColumn = 216 '移入列番号
Set OrgWs = Workbooks("バランス調整_平成25年大阪府産業連関表.ods").Worksheets("バランス調整前")
Set DesWs = Workbooks("バランス調整_平成25年大阪府産業連関表.ods").Worksheets("チェックポイント")
row = 2
For i = FirstRow To LastRow
code = OrgWs.Cells(i, CodeColumn)
industry = OrgWs.Cells(i, IndColumn)
pro = OrgWs.Cells(ProRow, i)
exp = OrgWs.Cells(i, ExpColumn)
emi = OrgWs.Cells(i, EmiColumn)
demand = OrgWs.Cells(i, DemandColumn)
yunyu = OrgWs.Cells(i, YunyuColumn)
imi = OrgWs.Cells(i, ImiColumn)
If exp > pro Then
DesWs.Cells(row, 1) = code
DesWs.Cells(row, 2) = industry
DesWs.Cells(row, 3) = "○"
row = row + 1
End If
If emi > pro Then
DesWs.Cells(row, 1) = code
DesWs.Cells(row, 2) = industry
DesWs.Cells(row, 4) = "○"
row = row + 1
End If
If exp < 0 Then
DesWs.Cells(row, 1)= code
DesWs.Cells(row, 2)= industry
DesWs.Cells(row, 5) = "○"
row = row + 1
End If
If emi < 0 Then
DesWs.Cells(row, 1) = code
DesWs.Cells(row, 2) = industry
DesWs.Cells(row, 6) = "○"
row = row + 1
End If
If abs(yunyu) > demand Then
DesWs.Cells(row, 1) = code
DesWs.Cells(row, 2) = industry
DesWs.Cells(row, 7) = "○"
row = row + 1
End If
If abs(imi) > demand Then
DesWs.Cells(row, 1) = code
DesWs.Cells(row, 2) = industry
DesWs.Cells(row, 8) = "○"
row = row + 1
End If
If yunyu > 0 Then
DesWs.Cells(row, 1) = code
DesWs.Cells(row, 2) = industry
DesWs.Cells(row, 9) = "○"
row = row + 1
End If
If imi > 0 Then
DesWs.Cells(row, 1) = code
DesWs.Cells(row, 2) = industry
DesWs.Cells(row, 10) = "○"
row = row + 1
End If
Next
End Sub
実行結果は、以下のようになります。
人的バランス調整
人的バランス調整方法の確認
投入側(中間投入、粗付加価値部門)の府内生産額を基本とし、主に産出側の最終需要部門(移出入、輸出入、府内最終需要部門)で、手作業でバランス調整を行った。
大阪府総務部統計課「平成25年(2013年)大阪府産業連関表(延長表)報告書」より引用
人的バランス調整の実行
1141 「たばこ」と3522 「二輪自動車」
両産業部門とも、府内生産額が0であるので、輸出額、移出額ともに0となるはずです。そこで、両産業部門の
- 8011 輸出
- 8012 輸出(直接購入)
- 8211 移出
を0としました。
3421 「電子計算機・同附属装置」
投稿#143の(11)輸出(普通貿易)の推計において、平成25年大阪府延長表での輸出率(輸出(普通貿易)額/生産額)が1を超えていました。
平成23年大阪府基本表の輸出率は0.851で、平成25年全国延長表の輸出率0.648より高くなっています。
また、平成23年全国基本表の輸出率(0.495)から平成25年全国延長表への輸出率の増減率が1.067となっています。
今回は、平成25年大阪府延長表での輸出率は、平成23年大阪府基本表のそれと等しいと仮定することにして、人的バランス調整を行うことにしました。
3592 「航空機・同修理」・5743 「港湾運送」
投稿#143の(12)輸出(特殊貿易)の推計において、推計結果が生産額を超える、または、推計結果と輸出(普通貿易)との和が生産額を超えていました。
したがって、今回は、平成25年全国延長表の国内生産額に対する輸出(特殊貿易)額の比率を求め、平成25年大阪延長表の生産額に乗じることで、輸出(特殊貿易)額の人的バランス調整を行いました。
5741 「外洋輸送」
投稿#143の(12)輸出(特殊貿易)の推計において、推計結果が生産額を超えていました。
また、(11)輸出(普通貿易)の推計において、平成25年全国延長表では値が0になっているにもかかわらず、輸出(普通貿易)額が0になっていませんでした。
したがって、輸出(普通貿易)額を0にした上で、輸出(特殊貿易)額は、平成25年全国延長表の国内生産額に対する輸出(特殊貿易)額の比率を求め、平成25年大阪延長表の生産額に乗じることで、人的バランス調整を行うことにしました。
1512 「織物」
投稿#143の(14)移出の推計において、推計結果が生産額を超えていました。
したがって、今回は、以下の方法で人的バランス調整を行いました。
最初に、産出側の最終需要部門を足し合わせた府内生産額と、投入側(中間投入、粗付加価値部門)の生産額との差を取ります。
そして、その差を移入額に足し合わせます。
1631 「パルプ」
投稿#143の(15)輸入(普通貿易)及び(20)移入の推計結果の値が正の値をとっていました。
したがって、今回は、以下の方法で人的バランス調整を行いました。
まず、平成25年大阪府延長表における府内需要合計が、平成23年大阪府基本表のそれと変化しないものと仮定します。
そして、上記の仮定が成立するように、投稿#143の(10)で推計した調整項の値を調整します。
また、平成25年大阪府延長表の府内需要合計が変化したので、府内需要合計から推計を行った(15)輸入(普通貿易)及び(20)移入を再計算します。
田畑(2005)のバランス調整
バランス調整方法の確認
1)輸移入額が0でない業種
各業種について最終需要部門を足し合わせて算出した県内生産額と、項目1で推計した各業種の県内生産額との差をとる。次に各業種について輸入額と移入額の比率を算出し、県内生産額の差を掛け合わせる。これを先に推計した輸入額と移入額に足し合わせる。
2)輸移入額が0である業種
各業種について最終需要部門を足し合わせて算出した県内生産額と、項目1で推計した各業種の県内生産額との差をとる。次に各業種について消費支出額(家計、一般政府)、固定資本形成額 (民間、公的)の比率を算出し、県内生産額の差を掛け合わせる。これを先に推計した消費支出額(家計、一般政府)、固定資本形成額(民間、公的)に足し合わせる。
田畑(2005)「循環型地域社会形成支援のためのマテリアルバランス表の開発及びその適用に関する研究」より引用。
上記の引用文において、「項目1で推計した各業種の県内生産額」とは、本研究では、「投入側(中間投入、粗付加価値部門)の各業種の府内生産額」に相当します。
田畑(2005)のバランス調整の実際
田畑(2005)のバランス調整を行うVBAのコードは、以下のようになります。
Sub 田畑バランス調整()
Dim OrgWs As Worksheet '転記元ワークシート
Dim DesWs As Worksheet '転記先ワークシート
Dim i As Integer 'カウンタ変数
Dim j As Integer 'カウンタ変数
Dim colpro As Long '投入側の府内生産額
Dim rowpro As Long '産出側の府内生産額
Dim diff As Long '投入側の府内生産額と産出側の府内生産額との差
Dim yunyu As Long '輸入額
Dim imi As Long '移入額
Dim yratio As Double '輸入額の比率
Dim imiratio As Double '移入額の比率
Dim conexp As Long '家計消費支出額
Dim colexp As Long '一般政府消費支出額
Dim fixpub As Long '府内総固定資本形成(公的)額
Dim fixpri As Long '府内総固定資本形成(民間)額
Dim sum As Long '家計外消費支出、一般政府消費支出、府内総固定資本形成(公的、民間)の合計額
Dim conexpratio As Double '家計消費支出額の比率
Dim colexpratio As Double '一般政府消費支出額の比率
Dim fixpubratio As Double '府内総固定資本形成(公的)額の比率
Dim fixpriratio As Double '府内総固定資本形成(民間)額の比率
Const ProRow = 204 '投入側の府内生産額行番号
Const ProColumn = 218 '産出側の府内生産額列番号
Const YunyuColumn = 211 '輸入額列番号
Const ImiColumn = 216 '移入額列番号
Const ConExpColumn = 195 '家計消費支出額列番号
Const ColExpColumn = 197 '一般政府消費支出額列番号
Const FixPubColumn = 199 '府内総固定資本形成(公的)額列番号
Const FixPriColumn = 200 '府内総固定資本形成(民間)額列番号
Const FirstColumn = 3 '転記開始列番号
Const LastColumn = 192 '転記終了列番号
Set OrgWs = Workbooks("バランス調整_平成25年大阪府産業連関表.ods").Worksheets("人的バランス調整")
Set DesWs = Workbooks("バランス調整_平成25年大阪府産業連関表.ods").Worksheets("田畑バランス調整")
For i = FirstColumn To LastColumn
colpro = OrgWs.Cells(ProRow, i)
rowpro = OrgWs.Cells(i, ProColumn)
diff = colpro - rowpro
yunyu = OrgWs.Cells(i, YunyuColumn)
imi = OrgWs.Cells(i, ImiColumn)
conexp = OrgWs.Cells(i, ConExpColumn)
colexp = OrgWs.Cells(i, ColExpColumn)
fixpub = OrgWs.Cells(i, FixPubColumn)
fixpri = OrgWs.Cells(i, FixPriColumn)
If yunyu <> 0 And imi <> 0 Then
yratio = abs(yunyu) / abs(yunyu + imi)
imiratio = abs(imi) / abs(yunyu + imi)
yunyu = yunyu + diff * yratio
imi = imi + diff * imiratio
Else
sum = conexp + colexp + fixpub + fixpri
If sum = 0 Then
conexp = conexp + 0
colexp = colexp + 0
fixpub = fixpub + 0
fixpri = fixpri + 0
Else
conexpratio = conexp / sum
colexpratio = colexp / sum
fixpubratio = fixpub / sum
fixpriratio = fixpri / sum
conexp = conexp + diff * conexpratio
colexp = colexp + diff * colexpratio
fixpub = fixpub + diff * fixpubratio
fixpri = fixpri + diff * fixpriratio
End If
End If
DesWs.Cells(i, YunyuColumn) = yunyu
DesWs.Cells(i, ImiColumn) = imi
DesWs.Cells(i, ConExpColumn) = conexp
DesWs.Cells(i, ColExpColumn) = colexp
DesWs.Cells(i, FixPubColumn) = fixpub
DesWs.Cells(i, FixPriColumn) = fixpri
Next
End Sub
再度、バランスをチェック
上述のチェックポイントを踏まえて、再度バランスをチェックしてみました。
VBAのコードは同じになるので再掲は割愛します。
チェック結果は以下のようになります。
人的バランス調整(2回目)
2回目の人的バランス調整を行います。
0621 「石炭・原油・天然ガス」及び2612 「鉄屑」
輸入額の絶対値が府内需要額合計を1上回っていました。さらに、ヨコ行(産出側)の府内生産額が-1になっていました。
両業種ともに、タテ列(投入側)の府内生産額は0です。
したがって、今回は8511 (控除)輸入を1増やすことで人的バランス調整を行いました。
1512 「織物」
移出額が府内生産額を上回るとともに、移入額が府内需要合計額を上回っていました。
そこで以下のような方法で人的バランス調整を行いました。
まず、移出額と府内生産額との差を求めます。その差を調整項に足し合わせるとともに、移出額から差し引きました。
4711 「水道」
輸入額、移入額がともにプラス値になっていました。
そこで、以下のような方法で人的バランス調整を行いました。
平成25年大阪府延長表の輸入額及び移入額は、投稿#144において推計しました。
それらの推計値と一致するように、輸入額及び移入額を差し引き、差し引いた合計値を調整項に加えました。
6721 「飲食サービス」及び6799 「その他の対個人サービス」
移入額がプラスとなっていたので、人的調整を行います。
平成25年大阪府延長表の移入額は、投稿#144において推計が完了しています。
推計値と一致するように、プラス値となっている移入額を差し引きをし、その差し引いた値を調整項に加えました。