#80 「経済センサス」の元データを小分類のおける産業名の項目欄のみとした表に作り替える
前回の投稿(#79)では、三好(2020)の「1.はじめに」を紐解いてみました。
三好ゆう(2020)『ノン・サーベイ法による市町村産業連関表の作成と課題―京都府内全26市町村の「市内生産額」の推計から―』福知山公立大学研究紀要2020,4巻 1号 ,pp.185 - 208
今回は、三好(2020)の「2.市町村産業連関表の作成手順と『市内生産額』の推計方法」を紐解いていこうと思います。
2.1 ノン・サーベイ法による作成手順の概要
本研究に置き換えて考える
本研究では、都道府県産業連関表を作成していきます。なので、上述の引用箇所を本研究に置き換えて読むとなると、
「都道府県」を「全国」に
「市町村」を「都道府県」に
というように、置き換えて考えていく必要があります。
「すべての項目」で「全国の額」を按分する必要はないと思う
本研究では、「すべての項目で全国の額を各都道府県に按分する作業を行う」必要はないのではと考えます。
例えば、農業など、都道府県単位での生産額が記載されている統計データが存在するのであれば、その都道府県単位の生産額のデータを採用すればいいのではないでしょうか?
また、按分する値は、必ずしも「全国の額」でなくてもいいとも考えます。例えば、「東北経済産業局」といったように、都道府県単位での生産額を得られない場合でも、経済産業局や地方エリア単位での生産額が記載されている場合もあると思います。
そんな場合は、それらの額を各都道府県に按分するのもありではないでしょうか?
2.2 「市内生産額」の基本的な推計方法
従業者数の全国と都道府県の按分比から、県内生産額を推計
本研究に置き換えれば、
都道府県産業連関表における「県内生産額」については、基本的には総務省「経済センサス」から得られる産業別従業者数を用いて、全国と都道府県の按分比を求め、それを「県内生産額」に乗じて算出する。
$$
産業別 県内生産額 = 産業別 全国生産額 × \frac{ 産業別 県の従業者数 }{ 産業別 全国の従業者数 }
$$
となります。
「経済センサス」の小分類のデータを使用することに
本研究では、結合小分類(部門数約190)の都道府県産業連関表を作成するので、「経済センサス」の小分類のデータを使用することになると考えられます。
「経済センサス」の産業分類を「産業連関表」の対応する部門に振り分ける作業が抜けていた!
しまった!
本研究では、「経済センサス」の産業分類を「産業連関表」の部門分類に振り分ける作業を行っていませんでした…
生産額の推計の前に、この作業を行う必要があることが判明したわけです。
作業上の留意点(その1)
ということで、留意点(その1)を考慮に入れて、「経済センサス」の元データを、小分類における産業名の項目欄のみとした表に作り替える作業から着手する必要がありますね。
作業上の留意点(その1)に基づき、作業開始
「格付不能」を除いた中分類での従業者数を算出
「平成24年経済センサス‐活動調査 事業所に関する集計 産業横断的集計 表番号4-2 表題産業(小分類)別従業上の地位(6区分),男女別従業者数及び出向・派遣従業者数-全国」から、全国の小分類での従業者数のデータをダウンロードします。
ダウンロードしたデータにおいて、上記の留意点その1である「格付不能」を除いた、全国における中分類での従業者数を算出するVBAのコードは、以下のようになります。
Sub 格付不能を除いた中分類での従業者数を産出()
Dim ws As Worksheet
Dim i As Integer
Dim j As Integer
Dim tmp As Variant
Dim employee_z As Long
Dim sum As Long
Dim ZString As String
Set ws = Workbooks("H24経済センサス_民営_従業者数_全国_小分類.ods").Worksheets("sheet1")
' 産業分類名がアルファベット又は「@」で始まる産業を含む行を削除
For i = 700 To 2 Step -1
If ws.Cells(i, 2).Value Like "[A-Z]*" Or ws.Cells(i, 2).Value Like "@*" Then
ws.Cells(i, 2).EntireRow.Delete
EndIf
Next
' 「格付不能」を除いた中分類での従業者数を算出
For i = 2 To 700
If ws.Cells(i, 2).Value Like "##" & "Z*" Then
tmp = Split(ws.Cells(i, 2).Value, "Z")
ZString = tmp(0)
employee_z = ws.Cells(i, 3).Value
For j = 2 To 700
If ws.Cells(j, 2).Value Like ZString & "[!0-9,!Z]*" Then
sum = ws.Cells(j, 3).Value
ws.Cells(j, 3).Value = sum - employee_z
End If
Next
End If
Next
' 「格付不能」を含む行を削除
For i = 700 To 2 Step -1
If ws.Cells(i, 2).Value Like "##" & "Z*" Then
ws.Cells(i, 2).EntireRow.Delete
EndIf
Next
End Sub
同じ作業を、岩手県のデータでも行います。
「管理、補助的経済活動を行う事業所」の従業者数をそれ以外の産業に割り振る
上記を実行するVBAのコードは、以下のようになります。
Sub 管理補助的経済活動を行う事業所への対処()
Dim ws As Worksheet
Dim num As Long
Dim S_num As String
Dim k_String As String
Dim k_employee As Long
Dim m_employee As Double
Dim s_employee As Double
Dim ratio As Double
Dim i As Integer
Dim j As Integer
Dim k As Integer
Set ws = Workbooks("H24経済センサス_民営_従業者数_全国_小分類.ods").Worksheets("sheet1")
For i = 2 To 614
If ws.Cells(i, 2).Value Like "##" & "[!0-9]*" Then
num = Val(ws.Cells(i, 2).Value)
If num < 10 Then
S_num = "0" & CStr(num)
Else
S_num = CStr(num)
End If
m_employee = ws.Cells(i, 3).Value
For j = 2 To 614
If ws.Cells(j, 2).Value Like S_num & "0*" Then
k_employee = ws.Cells(j, 3).Value
For k = 2 To 614
If ws.Cells(k, 2).Value Like S_num & "[1-9]*" Then
s_employee = ws.Cells(k, 3).Value
ratio = s_employee / m_employee
ws.Cells(k, 3).Value = s_employee + k_employee * ratio
End If
Next
End If
Next
End If
Next
' 「管理、補助的経済活動を行う事業所」を含む行をすべて削除
For i = 615 To 2 Step -1
If ws.Cells(i, 2).Value Like "##" & "0*" Then
ws.Cells(i, 2).EntireRow.Delete
EndIf
Next
' 中分類をすべて削除
For i = 615 To 2 Step -1
If Not(ws.Cells(i, 2).Value Like "###*") Then
ws.Cells(i, 2).EntireRow.Delete
EndIf
Next
End Sub
コードを実行すると、ワークシートは以下のように、小分類の項目のみとなりました。
作業上の留意点(その1)に基づいた作業を、岩手県でも同様に行います。
サポート、本当にありがとうございます。サポートしていただいた金額は、知的サイドハッスルとして取り組んでいる、個人研究の費用に充てさせていただきますね♪