• 検索結果がありません。

総合的な経済・エネルギー・環境分析に資する技術情報の整備のための研究

N/A
N/A
Protected

Academic year: 2021

シェア "総合的な経済・エネルギー・環境分析に資する技術情報の整備のための研究"

Copied!
27
0
0

読み込み中.... (全文を見る)

全文

(1)

8 エネルギー投入表の作成用ツールとファイル

8.1 計算用ツールの説明 本調査研究では、産業連関表、物量表、自家輸送マトリックス表、そしてエネルギーバラ ンス表、また産業連関表の場合名目表と実質表、さらに各種類の表に1995 年表や 2000 年表 など最大4 時点の表があるため、膨大なデータを扱うのが特徴となっている。また、データ の扱い方としては、単純な部門集約から簡単な四則演算まで、さらに行列を対称にした転置・ 逆行列など複雑な計算が求められている。さらに、エネルギー投入表の作成に当たっては、 データを判断しながら計算を実行する必要があり、すなわちプログラミングで対応すること が求められている。これらの作業内容を同時に実現できるツールとして Visual Economist を 利用した。 Visual Economist は主に、1)回帰分析・モデルシミュレーション、2)多次元表の作成表 示・計算、3)プログラミング、といった3 つの機能を有している。本調査研究では、主と して2)と3)の機能を利用した。 多次元表とは、独立した複数の表を串刺しすることで、軸数が2 以上の1つの表にまとめ たものである。例えば、1995 年の名目 SNAIO 表は通常の1つの表であり、2000 年表も同 様な1つの表である。さらに、2001 年と 2002 年の表も同じような構造を持った表である。 Visual Economist はこの構造上同様な4 表を 1 つの 3 次元表にすることができる。すなわち、 本来の供給×需要の産業連関表は、供給×需要×時間という3 軸の表にすることができる。 本調査研究では、この3 次元表を SNAIO87 と名づけている。そうすることで、この 4 年の 表を一括作業することが可能になるのである。例えば、係数を1000 倍縮小するには、Let SNAIO87 /=1000 とプログラミングすれば、この 4 表が一括して 1000 で割ることとなる。ま

た、Let SNAIO86 =GroupCol(SNAIO87,SNAIO87ToSNA86Col) のコマンドを実行すると、こ

の4 表を一括して 87 部門から 86 部門に集約されるのである。当然、集約情報を持つ SNAIO87ToSNA86Colは事前に定義する必要がある。

一方、プログラミング文法はBasic 風に準しているため、初心者でも分かるような文法と なっている。If…Then文、Loop…End Loop文、For…Next文などプログラミングに必要な 機能がそろっている。さらに、データファイルの入出力は煩雑なプログラミング作業を必要 とせず、SaveDataLoadDataなどのコマンドで極めて簡単に実現できることも1 つの特徴 として挙げられる。 他方、四則演算も同然なことながら、行列の演算もできる。例えば、B=(I-(I-M)**A)''で逆行 列を計算し、Induce=B**(I-M)**Yは生産誘発額を計算する式である。産業連関表に馴染んで いればこれらの式が自明であろう。 Visual Economist における本調査プロジェクトの実行イメージは図4 に示すとおりである。 Visual Economist はhttp://www.geocities.jp/webyear/ve/jindex.htmでダウンロードできる。 また、最新版の入手はvehome@163.comm までお問い合わせ。

(2)
(3)

8.2 作成用ファイルの一覧 下表は本調査研究において、購入またはダウンロードしたデータファイル、計算用プログ ラミングファイル及びファイル間関係を示している。 表4 ファイル一覧 番号 ファイル名 内容 実行中 呼び出す ファイル 実行中 他のファイル に呼ばれる 作成方法 または 作成ファイル 実行中呼び 出されるデータ ファイル 実行後 出力する データファイル 1 SNAIO.vep 2∼16番のファイルを管理するVE Projectファイル 手動作成

2 Get SNAIO87.rtf 87部門分類SNAIOをロードする 3 手動作成 17∼24

3 Set SNAIO86.rtf 87部門分類SNAIOを86部門に集約する 2、15 手動作成 28、29 4 Get VP86 95.rtf 95年物量表をロードし、86部門に集約する 15 7 手動作成 38 5 Get VP86 2000.rtf 2000年物量表をロードし、86部門に集約する 15 7 手動作成 39 6 Get MJika.rtf 自家輸送マトリックス表を86部門に集約する 15 7 手動作成 40 7 Get VP86 Jika.rtf 自家輸送マトリックス表で物量表を組み替え 4、5、6 8 手動作成 8 Get V86X17 Jika.rtf 熱量表も作成し、結果を出力 7 15 手動作成 33 9 Get V86X20 Jika 95-00-01-02.rtf 4年分のエネルギー投入表を作成 14 手動作成 16、25、33、28 34、35、36、37 10 Calc IO Basic.rtf 生産誘発額表を作成する 15 手動作成 29 30 11 Set SNAIO to 24 Sectors.rtf SNAIO表を86部門から24部門に集約する 14、15 手動作成 29 26 12 Set SNAIO Induce to 24 Sectors.rtf SNAIO生産誘発表 を86 部門から24部門に集約する 14、15 手動作成 30 27 13 Set EIO86 to 24 Sectors.rtf エネルギー投入表 を8 6部門から24 部門に集約する 14、15 手動作成 35 31、32 14 Common Group.rtf 共通の部門集約の方法 9、11、12、13 手動作成 15 Common ItemName.rtf 共通の行と列の名前の定義ファイル 2 ,4∼6,8, 11∼13 ,15 手動作成 16 IEEJEBFix.xls エネバラデータ 9 ダウンロード 17 1995naisei87-n.xls 87部門分類SNAIO( 名目) 2 ダウンロード 18 2000naisei87-n.xls 87部門分類SNAIO( 名目) 2 ダウンロード 19 2001naisei87-n.xls 87部門分類SNAIO( 名目) 2 ダウンロード 20 2002naisei87-n.xls 87部門分類SNAIO( 名目) 2 ダウンロード 21 1995naisei87r-n-modified.xls 87部門分類SNAIO( 実質) 2 ダウンロード 22 2000naisei87r-n-modified.xls 87部門分類SNAIO( 実質) 2 ダウンロード 23 2001naisei87r-n-modified.xls 87部門分類SNAIO( 実質) 2 ダウンロード 24 2002naisei87r-n-modified.xls 87部門分類SNAIO( 実質) 2 ダウンロード 25 EBToSNAIO86.xls エネバラ とSNA 86部 門の 対応表 9 手動作成 26 SNAIO24.xls 24分 類SNAIO 11 27 SNAIO24ProdInduce.xls 24分 類SNAIO生産誘発表 12 28 SNAIO86 95-00-01-02.xls 86部門分類SNAIO 9 3 29 SNAIOReal86.xls 86部門分類SNAIO(実質表 ) 10、 11 3 30 SNAIO86ProdInduce.xls 86分 類SNAIO生産誘発表 1 2 10 31 EIO24T 95-00-01-02.xls 24部門分類エネ 投入表( 転置) 13 32 EIO24T 95-00-01-02 UsingVP95.xls 24部門分類エネ投入表(95年物量表利用) 13 33 V86X17Jika.xls 86部門分類物量表 8 34 EIO86 95-00-01-02 UsingVP95.xls 86部門分類エネ投入表(95年表利用) 9 35 EIO86 95-00-01-02.xls 86部門分類エネ 投入表 9 36 EIO86T 95-00-01-02 UsingVP95.xls 86部門分類エ ネ 投入表( 転 置 )( 95年表利用 ) 9 37 EIO86T 95-00-01-02.xls 86部門分類エネ 投入表( 転置) 9 38 物量表9 5.xls 95年物量表 購入 4 39 物量表2000. xls 2000 年物量表 購入 5 40 自家輸送表. xls 自家輸送 マトリックス表 購入 6 41 一 次エネ 転換方法 .xls 最終消費から 一次エネルギーへ の求め方 2 4、27 、31 42 物量表利用不可の 誤差. xls 物量表利用不可の時に、誤差の大きさの検証 31、32、36、37 43 化学原料用比率20 .xls 非エネルギー消費比率の情報ファイル IEAのエ ネ バ ラ 44 EIO86詳 細1995年. xls エネルギー投入表及び各附帯表 、1995 年 29、30、37、43 44 EIO86詳 細1995年. xls エネルギー投入表及び各附帯表 、2000 年 29、30、37、43 44 EIO86詳 細1995年. xls エネルギー投入表及び各附帯表 、2001 年 29、30、37、43 44 EIO86詳 細1995年. xls エネルギー投入表及び各附帯表 、2002 年 29、30、37、43 これらのファイルは入力データから出力データまで、そして各種データを加工・計算し、 エネルギー投入表を作成する計算式ファイルをすべて含んでいる。エネルギー投入表を作成 する主要なプロセスは下図に示すとおりである。

(4)

8.3 作成ファイルの詳細 1)【SNAIO.vep】(すべてのファイルの管理ファイル) このファイルは Visual Economist のプロジェクトファイルであり、すなわち、データファ イルとプログラミングファイルを定義するファイルである。ファイルの詳細は次の通りであ る。 [Data File] IEEJEBFix.xls [Program File] Get SNAIO87.rtf Set SNAIO86.rtf Get VP86 95.rtf Get VP86 2000.rtf Get MJika.rtf Get VP86 Jika.rtf Get V86X17 Jika.rtf Get V86X20 Jika 95-00-01-02.rtf Calc IO Basic.rtf

Set SNAIO to 24 Sectors.rtf

Set SNAIO Induce to 24 Sectors.rtf Set EIO86 to 24 Sectors.rtf

Common ItemName.rtf Common Group.rtf

[Result File]

Visual Economist で【SNAIO.vep】を開くと、1 個のデータファイルと 14 個のプログラミ ングファイルをロードする。

(5)

2)【Get SNAIO87.rtf】(87 部門分類 SNAIO をロード)

!!内閣府経済社会綜合研究所のウェブサイト からダウンロードした各年産業連関表ファイルを読 み込む。

!!このプログラムファイル を実行するとSNAIO87という多次元表 が生成。その中身は各年の産業 連関表 。

//Data source: http://www.esri.cao.go.jp/jp/sna/snaio-b7/snaio-menu.html //Real and Nominal have different sectors in value-added sectors.

//Nominal has more sectors.

For y=1995 To 2002

If y==1995 Or y==2000 Or y==2001 Or y==2002 Then // 今回の研究プロジ

ェクト に必要な年次だけを読み込む。 !! 実質表 を読み込む場合、下記の 2行を有効にしてください。 // FileName=Str(y)+"naisei87r-n-modified.xls"; // TableInfo="Table#SNAIO87.Y" + Str(y)+"#Year.Row.Column#R3C2-R97C100;"; !! 名目表 を読み込む場合、場合下記の 2行を有効にしてください。 FileName=Str(y)+"naisei87-n.xls"; TableInfo="Table#SNAIO87.Y" + Str(y)+"#Year.Row.Column#R3C2-R97C100;"; LoadData FileName,1,5/1,TableInfo; // 読み込むコマンド /* 各年についてこの 行を展開すると、次のような内容となる 。 ( 1995年の名目表の場合) LoadData 解説:読むコマンド "1995naisei87-n.xls", 解説:エクセルファイル名 1, 解説: 1つ目のシートを読む 5/1, 解説: 5行1列目から読む "Table#SNAIO87.Y1995#Year.Row.Column#R3C2-R97C100"; 解説:多次元表SNAIO87の 1つの子表として読み込む。 よって、この1995年の表の名前はSNAIO87.Y1995となる(VEの ルール )。 Year.Row.Column はそれぞれ軸の名前を決める。 R3C2-R97C100 はこの 表のデータ 範囲をVEに知らせる 。 */ End If; Next y;

(6)

3)【Set SNAIO86.rtf】(87 部門分類 SNAIO を86 部門に集約)

!!このプログラムファイル を実行すると、87部門分類 のSNAIO表を 86部門に集約し、多次元表 SNAIO86を作成し、"SNAIO86 95-00-01-02.xls"に保存する。

LoadModel "Common Group.rtf"; //集約を定義したファイルをロードする

LoadModel "Get SNAIO87.rtf"; //プログラムファイルを読み込んで実行

Table3D SNAIO87; //SNAIO87はどこにも 使われていないため、宣

言しとく。

Table3D TempSNAIO, SNAIO86; //多次元表を宣言

Let TempSNAIO =GroupRow(SNAIO87,SNAIO87ToSNA86Row); //行の集約

Let SNAIO86 =GroupCol(TempSNAIO,SNAIO87ToSNA86Col); //列の集約。よって、

SNAIO86は 86部門の表となる。

Let SNAIO86 GroupRow 88 = 0; //(追加)家計外消費支出(行)

Let SNAIO86 GroupCol 88 = 0; //(追加)家計外消費支出(列)

Let SNAIO86 GroupCol 97 -= GroupCol 98; //国内総支出 =413最終需要計 -輸入

Let SNAIO86 /=1000; //値を 1000倍縮小

LoadModel "Common ItemName.rtf";//新しい部門の名前を定義したプログラムファイルを読み

込む

//RowItemName86と ColItemName86が認識される。

LetItemName[1] Of SNAIO86 = RowItemName86; //部門名の名前配列を代入(行)

LetItemName[0] Of SNAIO86 = ColItemName86; //部門名の名前配列を代入

(列)

Let AxisNameOf SNAIO86 = {"需要","供給","年","10億円"}; //3軸の名前を定義する。

!!SaveData SNAIO86, "SNAIO86 95-00-01-02.xls"; //データファイルをエクセルファイルとして

保存(名目の場合)

!!SaveData SNAIO86, "SNAIOReal86 95-00-01-02.xls"; //データファイルをエクセルファイ

(7)

4)【Get VP86 95.rtf】(95 年物量表をロードし、86 部門に集約)

!!このプログラムファイル を実行すると、1995年物量表 を86部門分類に集約し、VP861995多次 元表が得られる。

LoadModel "Common Group.rtf"; //集約を定義したファイルをロードする

FileName="物量表95.xls"; //予め用意した物量表

TableInfo="Table#V4171995#Row.Column#R2C2-R419C19;";//多次元表 V4171995と名づけ

LoadData FileName,1,4/1,TableInfo; //読み込む

Table2D VP861995,V4171995,V4171995Tmp; //多次元表を宣言

Let V4171995Tmp=GroupRow(V4171995,V417ToVP86Row); //行を集約

Let VP861995=GroupCol(V4171995Tmp,V417ToVP86Col); //列を集約

LoadModel "Common ItemName.rtf"; //新しい部門の名前

を定義したプログラムファイル を読み込む

Let ItemName[1] Of VP861995= ColItemNamePlus5Row; //部門名

Let ItemName[0] Of VP861995= VColItemName; //エネルギー 名前

Let VP861995 GroupRow 87 = 0; Let VP861995 GroupRow 89 = 0; Let VP861995 GroupRow 91 = 0; Let VP861995 GroupRow 92 = 0; Let VP861995 GroupRow 94 = 0; Let VP861995 GroupRow 95 = 0; Let VP861995 GroupRow 97 = 0; Let VP861995 GroupRow 99 = 0; Let VP861995 GroupRow 100 = 0; Let VP861995 GroupCol 17 = 0; //エネルギー 合計行 //内生部門計 For r=1 To 86

Let VP861995 GroupRow 87 += GroupRow r ; Next r;

For r= 88 To 96 //最終需要計

Let VP861995 GroupRow 97 += GroupRow r ; Next r;

Let VP861995 GroupRow 99 += GroupRow 97; //国内総支出

Let VP861995 GroupRow 99 += GroupRow 98 ;

Let VP861995 GroupRow 100 += GroupRow 87; //産出額

(8)

5)【Get VP86 2000.rtf】(2000 年物量表をロードし、86 部門に集約)

!!このプログラムファイル を実行すると、2000年の物量表を86部門分類 に集約し、VP861995多 次元表 が得られる 。

!!このプログラムの構造は 1995年表の処理と同様。 "Get VP86 95.rtf"を参照。

LoadModel "Common Group.rtf"; //集約を定義したファイルをロードする

FileName="物量表2000.xls";

TableInfo="Table#V4192000#Row.Column#R2C2-R426C18;"; LoadData FileName,1,4/1,TableInfo;

Table2D VP862000,V4192000;

Let VP862000=GroupRow(V4192000,V419ToVP86Row); LoadModel "Common ItemName.rtf";

Let ItemName[1] Of VP862000= ColItemNamePlus5Row; Let ItemName[0] Of VP862000= VColItemName;

Let VP862000 GroupRow 87 = 0; Let VP862000 GroupRow 89 = 0; Let VP862000 GroupRow 91 = 0; Let VP862000 GroupRow 92 = 0; Let VP862000 GroupRow 94 = 0; Let VP862000 GroupRow 95 = 0; Let VP862000 GroupRow 97 = 0; Let VP862000 GroupRow 99 = 0; Let VP862000 GroupRow 100 = 0;

Let VP862000 GroupCol 17 = 0; //energy total

For r=1 To 86 //内生部門計

Let VP862000 GroupRow 87 += GroupRow r ; Next r;

For r= 88 To 96 //最終需要計

Let VP862000 GroupRow 97 += GroupRow r ; Next r;

Let VP862000 GroupRow 99 += GroupRow 97; //国内総支出

Let VP862000 GroupRow 99 += GroupRow 98 ;

Let VP862000 GroupRow 100 += GroupRow 87; //産出額

(9)

6)【Get MJika.rtf】(自家輸送マトリックス表を86部門に集約)

!!このファイル は95年と 2000年の産業連関表自家輸送 マトリクス表をSNAIO86部門分類に集 約し、多次元表として MJika86が得られる。

LoadModel "Common Group.rtf"; //集約を定義したファイルをロードする

Table2D MJika1995,MJika2000; //多次元表を宣言 Table3D MJika86; FileName="自家輸送表 .xls";!!1995年表 2000年表 TableInfo="Table#MJika1995#サービス 享受者.サービス提供者 #R2C2-R403C3;"; LoadData FileName,1,4/1,TableInfo; //1つ目のシート には95年表 TableInfo="Table#MJika2000#サービス 享受者.サービス提供者 #R2C2-R405C3;"; LoadData FileName,2,4/1,TableInfo; //2つ目のシート には95年表 Table2D MJika861995,MJika862000;

Let MJika861995=GroupRow(MJika1995,MJika398To86Row_Y1995); Let MJika862000=GroupRow(MJika2000,MJika382To86Row_Y2000); Make MJika86=<MJika861995>(ItemName="Y1995") And

<MJika862000> (ItemName="Y2000"); LoadModel "Common ItemName.rtf";

Let ItemName[1] Of MJika86= InterItemName87;

Let AxisName Of MJika86= {"エネルギー ","サービス 享受者 ","年 "}; !!SaveData MJika86,"MJika86.xls";

(10)

7)【Get VP86 Jika.rtf】(86 部門分類の物量表の読み込み) !!このファイルは道路に集約した自家輸送のエネルギーを自家輸送マトリクスに基づいて元のサービス提供 者に還元。 !!これは SNAIO表上では自家輸送の概念がなく、事業所ベースの概念に対応するためである。 !!ただし、このプログラムが他のプログラムに呼ばれるので、結果ファイルを出力して保存する必要がない。 Table2D VP861995; LoadModel "Get VP86 95.rtf"; MVP1995=<VP861995>; //1995年の物量表(多次元表)をMatrixに変換 Table2D VP862000; LoadModel "Get VP86 2000.rtf"; MVP2000=<VP862000>; //2000年の物量表(多次元表)をMatrixに変換 Table3DMJika86; Table2DMJika861995,MJika862000;

LoadModel "Get MJika.rtf";

MJika861995Matrix=<MJika861995>; //1995年の自家輸送マトリックス表(多次元表)をMatrixに変換 MJika862000Matrix=<MJika862000>; //2000年の自家輸送マトリックス表(多次元表)をMatrixに変換 !!1995年 For i=1 To 2//エネルギーガソリン=1、軽油=2 TotalJikaEnergy=MJika861995Matrix[87,i]; RoadJikaEnergy=MVP1995[105,4+(i-1)*3]; For j=1 To 86 JikaEnergy=MJika861995Matrix[j,i];

Let VP861995[j,4+(i-1)*3] +=JikaEnergy/TotalJikaEnergy*RoadJikaEnergy; //比率で還元

Next j;

Let VP861995[62,4+(i-1)*3] -=RoadJikaEnergy;

Next i; !!2000年 For i=1 To 2//エネルギーガソリン=1、軽油=2 TotalJikaEnergy=MJika862000Matrix[87,i]; RoadJikaEnergy=MVP2000[105,4+(i-1)*3]; For j=1 To 86 JikaEnergy=MJika862000Matrix[j,i];

Let VP862000[j,4+(i-1)*3] +=JikaEnergy/TotalJikaEnergy*RoadJikaEnergy; //比率で還元

Next j;

Let VP862000[62,4+(i-1)*3] -=RoadJikaEnergy;

(11)

8)【Get V86X17 Jika.rtf】(自家輸送マトリックス表で物量表を組み替え)

!!このプログラムファイル を実行すると、1995年と 2000年の物量表(自家輸送処理済 )を熱量単位の 1式を作成し、これらのすべての 表で構成される4次元表V86X17

にを作成し、エクセルファイルV86X17Jika.xlsに保存する。

!!解説:昨年度 のプロジェクトでは熱量ベースの投入量とエネバラ のデータを比較する分析があった 。今年度では熱量値 が使われなかった 。

LoadModel "Get VP86 Jika.rtf"; //自家輸送セクターを処理するプログラムを読み込む

Table4D V86X17; //多次元表を宣言

Table3D VP86, VT86;

Table2D VP861995,VP862000;

Make VP86= <VP861995>(ItemName="y1995") And <VP862000>(ItemName="y2000"); //2次元表2表を3次元表にまとめる。

Let VP86 /=1000; //値を 1000縮小 Let VT86=VP86; //熱量値を計算するための受け皿を用意 //MCalへ換算 Let VT86 GroupCol 1 *= (6904+6354)/2; //原料炭と無煙炭 t Let VT86 GroupCol 2 *= 9126; //原油kl Let VT86 GroupCol 3 *= 9800; //NGkm3 Let VT86 GroupCol 4 *= 8266; //ガソリンkl Let VT86 GroupCol 5 *= 8767; //ジェットkl Let VT86 GroupCol 6 *= 8767; //灯油kl

(12)

Let VT86 GroupCol 7 *= 9126; //軽油kl Let VT86 GroupCol 8 *= 9341; //重油kl Let VT86 GroupCol 9 *= 9962; //9B重油・C重油kl Let VT86 GroupCol 10 *= 8146; //ナフサkl Let VT86 GroupCol 11 *= 11992; //液化石油ガスt Let VT86 GroupCol 12*= 7191; //コークスt Let VT86 GroupCol 13 *= 860; //事業用電力百万 kwh Let VT86 GroupCol 14 *= 860; //自家発電百万kwh Let VT86 GroupCol 15 *= 9818; //都市ガス千立方米 Let VT86 GroupCol 16 *= 238.9; //熱供給業ギガジュール

Let VT86 GroupCol 17 += GroupCol 13; //hydro and nuclear and thermal

Let VT86 GroupCol 17 += GroupCol 14; //hydro and nuclear and thermal

Let VT86 GroupCol 17 *= 0.39/0.4; //39% the share of hydro and nuclear

Let VT86 GroupCol 17 += GroupCol 1; //coal

Let VT86 GroupCol 17 += GroupCol 2; //oil

Let VT86 GroupCol 17 += GroupCol 3; //ng

Let VT86 /=10000; // to ktoe

Make V86X17 =VP86(ItemName="PUnit") And VT86 (ItemName="TUnit") ; //固有単位ベースの3次元表と熱量ベースの3次元表を4次元表で構成される4次元表を作成。

Let V86X17 GroupCol 13 *=1000; // to ktoe

Let V86X17 GroupCol 14 *=1000; // to ktoe

(13)

9)【Get V86X20 Jika 95-00-01-02.rtf】(エネルギー投入表を作成)

!!このプログラムファイル を実行すると、1995年、 2000年、 2001年、 2002年のエネルギー投入表が作成される 。表示の都合上、V86X20Fixとともに、それの転置 表V86X20FixTも作成される。それぞれエクセルファイルに出力する。

Table3D IEEJEB20Fixed; //IEEJエネバラ表。すでにデータファイルIEEJEB20Fixed.xlsが事前にロードされているため 、宣言しなくてもよい 。

Table2D IEEJEB20FIXED.Y1995,IEEJEB20FIXED.Y2000;

Table2D IEEJEB20FIXED.Y2001,IEEJEB20FIXED.Y2002; //各子表@ieejebfix.xls

LoadData "IEEJEBFix.xls"; //またはロードする。

Table2D V86ToEB7Info;

LoadData "EBToSNAIO86.xls";

!!EBToSNAIO86.xlsファイルにはSNA86部門とエネルギーバランス表の対応情報 がある。表名は 2DTable( 2次元表 )のV86ToEB7Infoである。

//LoadModel "Get VP86 Jika.rtf"; //またはプログラムファイル をロードする。

LoadData"V86X17Jika.xls"; //処理後の物量表データ(V86X17)をロードする。

Table4D V86X17;

Table3D V86X20QIO; //物量表を整理し、17から20へ拡張した投入表

//Table2D V86X20QIO.Y1995,V86X20QIO.Y2000; !!? //Table2D V86X20QIO.Y1995,

Table2D V86X20QIO.Y2000;

//Table2D V86X20QIO.Y2001,V86X20QIO.Y2002; !!?

Let V86X20QIO=V86X17["PUNIT"]; //比率は固有単位表から求める。 //Let V86X20QIO=V86X17[1]; //または Indexで

(14)

Let V86X20QIO RemoveGroupRow 101 Step 5 ; //5行削除

Let V86X20QIO InsertGroupCol 16 Step 2 ; //2列を挿入

Let V86X20QIO MoveGroupCol 16 Step 3 ; //熱

Let V86X20QIO GroupCol 18 =GroupCol 13; //電力

Let V86X20QIO GroupCol 18 +=GroupCol 14; //電力

Let V86X20QIO MoveGroupCol 15 Step 2 ; //都市ガス

Let V86X20QIO MoveGroupCol 11 Step 5 ; //LPG

Let V86X20QIO MoveGroupCol 3 Step 13 ; //天然ガス

Let V86X20QIO GroupCol 12 =0; //other petro

Let V86X20QIO GroupCol 11 =0; //潤滑油

Let V86X20QIO MoveGroupCol 10 Step -8 ; //コークス

Let V86X20QIO MoveGroupCol 10 Step -5 ; //ナフサ

Let V86X20QIO.Y2000[54,2]=0; //コークスをゼロに55 卸 売 Let V86X20QIO.Y2000[55,2]=0; //コークスをゼロに 56 小 売 Let V86X20QIO.Y2000[87,2] +=15.271; //中間需要計 はこの分だけ増やす Let V86X20QIO.Y2000[90,2]=0; //コークスをゼロに 家計 Let V86X20QIO Insert GroupCol 2 Step 1 ; //1列挿入

Let V86X20QIO GroupCol 3 =GroupCol 2; //石炭系ガスはコークスの比率を使う

Let V86X20QIO GroupCol 15=GroupCol 2; //oil coke

Let V86X20QIO GroupRow 90 +=GroupRow 88; //家計外消費を家計に計上。そうしないと、エネルギーがそれに 配分されるが、それに対応する GDP がない 。

Let V86X20QIO GroupRow 88 =0;//

(15)

Energy20ItemName={

"石 炭 計","コークス","石炭系 ガス","原 油","ガソリン","ナフサ ","ジェット 燃料油","灯油","軽油","A重油 ","B重油","潤滑油 ","その他石油製品 ","製油所ガス"," オイルコークス","LPG ","天然ガス ","都市ガス","電力計","熱 "}; //エネルギー 源の名前を用意する

LetItemName[0] Of V86X20QIO =Energy20ItemName; //そして代入

!!エネバラ のエネルギーの国内需要計(IEEJEB7.xlsにある、コピー・貼り付けの方が速そうに 見えたので、一々代入した。)。 Energy1995=|89894, 27637,18639, 243206, 42888, 35392, 4241, 26071, 41471, 26187, 41224, 2310, 5889, 9496, 4153, 23996, 58055, 20704,169800, 369 |; Energy2000=|99622, 27781, 20597, 230728, 48345, 39316, 4004, 26396, 38730, 26649, 35919, 2187, 5494, 9795, 4480, 23569, 71874, 25096, 184504, 531 |; Energy2001=|103453, 27269, 18710, 223873, 48560, 37799, 4362, 26291, 37641, 27912, 31466, 2057, 5377, 9428, 4554, 23104, 74228, 25926, 183384, 540|; Energy2002=|105165, 27940, 18983, 216776, 49267, 37798, 4116, 25843, 36325, 27952, 29529, 2070, 5084, 9311, 4159, 22989, 73574, 27343, 182647, 549|; Energy12=Energy1995,Energy2000,Energy2001,Energy2002; //4年の列ベクトルをマトリックス に代入

LoadModel "Common Group.rtf";

//LoadModel "Set SNAIO86.rtf";

Table3DSNAIO86; //SNA産業連関表

LoadData "SNAIO86 95-00-01-02.xls"; //をロードする Table3D SNA20Tmp,V86X20Fix,EB7Fix; Table2D SNA20Tmp.Y1995,SNA20Tmp.Y2000,SNA20Tmp.Y2001,SNA20Tmp.Y2002; Table2D V86X20Fix.Y1995,V86X20Fix.Y2000,V86X20Fix.Y2001,V86X20Fix.Y2002; Table2D IEEJEB7FIXED.Y1995,IEEJEB7FIXED.Y2000; Table2D IEEJEB7FIXED.Y2001,IEEJEB7FIXED.Y2002;

(16)

!!金額ベースの投入表

Let SNA20Tmp =GroupRow(SNAIO86,SNA86To6Row); //エネルギー 関係の業だけを抽出する

Let SNA20Tmp Remove GroupRow 6 ; //さらに実際使わないエネルギーを削除

Let SNA20Tmp Remove GroupRow 3 ;

Let SNA20Tmp InsertGroupRow 2 Step 15; //物量と同様に、形式を整える

For r=11 To 13

Let SNA20Tmp GroupRow r =GroupRow 18; //潤滑油、そのた石油製品 、製油所ガスは石油製品計の比率を使う。ただし、製油所ガスは最終消費

がゼロであるため、率と使っていないと同じ。

Next r;

Let SNA20Tmp Remove GroupRow 18 ; Let SNA20Tmp InsertGroupRow 18;

Let SNA20Tmp GroupRow 14=GroupRow 2; //オイルコークス に対応する金額がなく、石炭製品の比率を使う。

LetSNA20TmpCopy GroupRow 2 Step 1 ; //石炭系ガスは石炭計の比率を使う。ただし、使わない。

LetItemName[1] Of SNA20Tmp =Energy20ItemName;

Let V86X20Fix=SNA20Tmp; //エネルギー 投入表の受け皿を用意する

Let V86X20Fix=0;

MAgg=<V86ToEB7Info>;

IOIndex=1;//0, using SNA, 1, using QIO

(17)

Table2D theVPIO; !!使用する物量表; Loop Y YIndex=Val(Y); MEnergyFix.[Y]=<IEEJEB20Fixed.[Y]>; //エネバラ MSNAIO.[Y]=<SNA20Tmp.[Y]>';!!転置 //SNA産業連関表 If bUsingVP95==0 Then //

Let theVPIO=V86X20QIO.[Y]; //直近の物量表

Else

Let theVPIO=V86X20QIO.[Y1995]; //1995年の物量表 EndIf;

MVPIO=<theVPIO>; //マトリックス変換

Print;Print;

MSNAIO_QIO=MSNAIO.[Y],MVPIO;//左右並 ぶ

!!20種類のエネルギーの内、第1、 14、 19を SNAIO、それ以外は QIOの比率を使って順次計算 For EnergyNo=1 To 20

If EnergyNo==1 Or EnergyNo==12 Or EnergyNo==13 Or EnergyNo==14 Or EnergyNo==19 Then IOIndex=0;//SNA比率 Else IOIndex=1;//物量表比率 EndIf; EnergyTotal=Energy12[EnergyNo,YIndex]; MoneyTotal=0;

(18)

For r=87 To 92// 中間から政府個別消費までの合計を計算

MoneyTotal=MoneyTotal+MSNAIO_QIO[r,EnergyNo+IOIndex*20]; Next r;

For EBFixRowNo=1 To 42

If MoneyTotal>0 Then //it is possible that MoneyTotal will be used up, so do not give error messages repeatedly //but for 潤滑油、他石油製品、製油所ガス、計算のプロセス に入れる必要がある。

//実際、転換までのみ固定される。

EnergyFix=MEnergyFix.[Y][EBFixRowNo,EnergyNo];

If EnergyFix <0 Then

EnergyFix =-EnergyFix ; //not useful now EndIf;

If EnergyFix>0 Or (EnergyFix <0 And EBFixRowNo<=5) Then//エネルギー固定あり

For SearchRow=1 To 116 //MAggで集計情報 を検索

MoneySubTotal=0; AggEBNo=MAgg[SearchRow,1]; If AggEBNo==EBFixRowNo Then //固定される行と同じ行を見つけると i=0; //一行ずつしたを見る指針(複数SNAが集約されているため) While 1 AggSNANo=MAgg[SearchRow+i,3]; //3列目はSNAの行番号があり、複数あり MoneySubTotal=MoneySubTotal+MSNAIO_QIO[AggSNANo,EnergyNo+IOIndex*20];

(19)

ExitWhile; EndIf;

EndWhile;

If MoneySubTotal==0 Then

If i==1 Then //エネバラとIOが一対一であるため、MoneySubTotalがゼロでも配分できる

//エネルギーを代入。逆転していないため 、行列を交換する

AggSNANo=MAgg[SearchRow,3];//3列目はSNAの行番号があり、複数あり

Let V86X20Fix.[Y][EnergyNo,AggSNANo]+=EnergyFix;

Let SNA20Tmp.[Y][EnergyNo,AggSNANo]=0;//2行のうち、 1つしか実際に差し引く必要がある

Let theVPIO[AggSNANo,EnergyNo]=0;//2行のうち、 1つしか実際に差し引く必要がある

Print "Warn (direct assigned data in Sub-sectors).";Print;Print "The Year =",YIndex, "; Energy in EB =(",EBFixRowNo,",",EnergyNo,")=",EnergyFix,

"; The amount Of its Sub total money is ",MoneySubTotal; Print ;

Else

Print "Warn (can not assign data in Sub-sectors).";Print;Print "The Year =",YIndex, "; Energy in EB =(",EBFixRowNo,",",EnergyNo,")=",EnergyFix,

"; The amount Of its Sub total money is ",MoneySubTotal; Print ;

Let V86X20Fix.[Y][EnergyNo,46]+=EnergyFix;//46 is その他の製造品

Let SNA20Tmp.[Y][EnergyNo,46]=0;//2行のうち、 1つしか実際に差し引く必要がある

Let theVPIO[46,EnergyNo]=0;//2行のうち、1つしか実際に差し引く必要がある

EndIf;

Else

(20)

While 1 //金額合計 がわかったため 、固定されているエネルギーを配分する AggSNANo=MAgg[SearchRow+i,3];//3列目はSNAの行番号があり 、複数あり money=MSNAIO_QIO[AggSNANo,EnergyNo+IOIndex*20]; Energy=money/MoneySubTotal*EnergyFix; //エネルギー を代入。まだ逆転していないから 、行列を交換する Let V86X20Fix.[Y][EnergyNo,AggSNANo]+=Energy; Let SNA20Tmp.[Y][EnergyNo,AggSNANo]=0;//2行のうち、 1つしか実際に差し引く必要がある

Let theVPIO[AggSNANo,EnergyNo]=0;//2行のうち、 1つしか実際に差し引く必要がある

i++;

If MAgg[SearchRow+i,1] <> 0 Then//次の集約ブロック に入っているため 、Loopからでる

ExitWhile; EndIf; EndWhile; If EBFixRowNo>=7 Then//国内生産 など需要計 に入らないため、引かないこと。 MoneyTotal=MoneyTotal-MoneySubTotal; EndIf; EndIf; EndIf; Next SearchRow; If EBFixRowNo>=7 Then//国内生産 など需要計 に入らないため、引かないこと。 EnergyTotal=EnergyTotal-EnergyFix; EndIf;

If MoneyTotal<=0 And EnergyTotal>0 Then

(21)

Let V86X20Fix.[Y][EnergyNo,46]+=EnergyTotal;//46 is その他の製造品

EnergyTotal=0; ExitLoop; EndIf;

If EnergyTotal <0 Then

Print "Error, EnergyLeft <0:", EBFixRowNo,EnergyNo,EnergyTotal;Print; EndIf;

EndIf; EndIf;

Next EBFixRowNo;

If MoneyTotal>1 And EnergyTotal >0 Then !!/1.誤差を防ぐ 2.ガソリンと軽油は固定しないため、全数を比率で配分する。

MSNAIONew=<SNA20Tmp.[Y]>'; MQIONew=<theVPIO>; MSNAIO_QIONew=MSNAIONew,MQIONew;//左右並ぶ For r=1 To 92 //残りのエネルギーを配分する。 money=MSNAIO_QIONew[r,EnergyNo+IOIndex*20]; If money <>0 Then Let V86X20Fix.[Y][EnergyNo,r]+=money/MoneyTotal*EnergyTotal; End If; Next r;

ElseIf EnergyTotal>0 Then //2000年の場合、ナフサの比率は微小>0、<1.しかし、まだ 684未配分

Let V86X20Fix.[Y][EnergyNo,46]+=EnergyTotal; EnergyTotal=0;

(22)

End If; Next EnergyNo; End Loop;

Table3D V86X20FixT;

Make V86X20FixT= <V86X20Fix.Y1995>'(ItemName="Y1995") And <V86X20Fix.Y2000>'(ItemName="Y2000") And <V86X20Fix.Y2001>'(ItemName="Y2001") And <V86X20Fix.Y2002>'(ItemName="Y2002");

LoadModel "Common ItemName.rtf";

Let ItemName[0] Of V86X20FixT =Energy20ItemName; Let ItemName[1] Of V86X20FixT =ColItemName86; Let ItemName[1] Of V86X20Fix =Energy20ItemName; Let ItemName[0] Of V86X20Fix =ColItemName86;

Let AxisNameOfV86X20FixT = {"エネルギー","部門","年","ktoe"};

IfbUsingVP95==0 Then

SaveData V86X20Fix,"V86X20Jika 95-00-01-02.xls"; SaveData V86X20FixT,"V86X20TJika 95-00-01-02.xls"; Else

SaveData V86X20Fix,"V86X20Jika 95-00-01-02 UsingVP95.xls"; SaveData V86X20FixT,"V86X20TJika 95-00-01-02 UsingVP95.xls"; End If;

(23)

10)【Calc IO Basic.rtf】(生産誘発額表を作成)

LoadModel "Common ItemName.rtf";

//LoadData "V86X20Fix.xls";

//LoadData "SNAIO86.xls"; LoadData"SNAIOReal86.xls";

Table3D SNAIO86;

Let SNAIO86 InsertGroupCol 95;//国内需要計の列を追加

Let SNAIO86 GroupCol 96=GroupCol 98;

Let SNAIO86 GroupCol 96-=GroupCol 97;

Set YearSet=Y1995,Y2000,Y2001,Y2002; //時間の集合 Yを作成

Table2D SNAIO86.[Y1995]; Matrix Y8.P.INDUCE.[YearSet]; Loop YearSet

IO =<SNAIO86.[YearSet]>; //Data

N =86; //Number of Intermediate Sector

I = Ident[N]; //Unit Matrix

Xij = IO[1,1,N,N]; //Intermediate Sector

Xi = IO[1,N+1,N,N+1]; //Column of Intermediate Sector

y = IO[1,96,N,96]; //Domestic Final

Y8 = IO[1,88,N,95]; //Domestic Final, Excluding Sub-Total

E = IO[1,97,N,97]; //Export

//ERR = IO[1,62,N,62]; //Error,

MX = -IO[1,99,N,99]; //Impirt

X = IO[1,101,N,101]; //Domestic Production

A = (Xij'/X)'; //Input Coeffienct

M = (MX/ (Xi+y))~; //Import Coeffienct

B =(I-(I-M)**A)''; //Inversed Matrix

(24)

Y8.P.INDUCE.[YearSet] = B** (I-M)** Y8; //Induced Production of final demand

E.P.INDUCE.[YearSet] = B**E; //Induced Production of Export

//ERR.P.INDUCE = B** ERR; //Induced Production of error

誤差.生産誘発額 = SumCol(Y8.P.INDUCE.[YearSet]) + E.P.INDUCE.[YearSet] /*+ ERR.P.INDUCE*/ -X; //=0?, CHECK IT!

// Report 誤差.生産誘発額 ;

Y8.M.INDUCE.[YearSet] =(M**A**B**(I-M)+M)**Y8; //Induced Import of Final Demand

E.M.INDUCE.[YearSet] =M**A**B**E; //Induced Import of Export //ERR.M.INDUCE =M**A**B**ERR; //Induced Import of Error

誤差.輸入誘発額 = SumCol(Y8.M.INDUCE.[YearSet]) + E.M.INDUCE.[YearSet] /*+ ERR.M.INDUCE*/ -MX; //=0?, CHECK IT!

Let RowItemName Of B =InterItemName; //ItemName info

Let ColItemName Of B =InterItemName;

End Loop;

Table3D SNAIO86ProdInduce;

Make SNAIO86ProdInduce=(Y8.P.INDUCE.y1995,E.P.INDUCE.Y1995) (ItemName="Y1995") And (Y8.P.INDUCE.y2000,E.P.INDUCE.Y2000) (ItemName="Y2000") And (Y8.P.INDUCE.y2001,E.P.INDUCE.Y2001) (ItemName="Y2001") And (Y8.P.INDUCE.y2002,E.P.INDUCE.Y2002) (ItemName="Y2002");

Let ItemName [1] Of SNAIO86ProdInduce =InterItemName; Let ItemName [0] Of SNAIO86ProdInduce =FinalItemName; SaveData SNAIO86ProdInduce ,"SNAIO86ProdInduce.xls";

(25)

11)【Set SNAIO to 24 Sectors.rtf】(SNAIO 表を24 部門に集約)

LoadModel "Common Group.rtf"; LoadModel "Common ItemName.rtf";

LoadData "SNAIOReal86.xls"; Table3D SNAIO24, SNAIO86;

Let SNAIO24= GroupRow(SNAIO86,SNAIO86To24); Let ItemName[1] Of SNAIO24=RowItemName24;

//Let ItemName[2] Of SNAIO24={"Y1995","Y2000","Y2001","Y2002"};

(26)

12)【Set SNAIO Induce to 24 Sectors.rtf】で生産誘発表を24 部門に集約...

LoadModel "Common Group.rtf"; LoadModel "Common ItemName.rtf";

LoadData "SNAIO86ProdInduce.xls";

Table3D SNAIO86ProdInduce,SNAIO24ProdInduce;

Let SNAIO24ProdInduce= GroupRow(SNAIO86ProdInduce,SNAIO86To24); LetItemName[1] Of SNAIO24ProdInduce=RowItemName24;

(27)

13)【Set EIO86 to 24 Sectors.rtf】(投入表を24 部門に集約)

LoadModel "Common Group.rtf"; LoadModel "Common ItemName.rtf";

Table3D EIO24, EIO86;

LoadData "EIO86詳細 1995年 .xls",1,2/1, "Table#EIO86.1995年 #Book.Sheet.Row.Column#R3C2:R109C26";

LoadData "EIO86詳細 2000年 .xls",1,2/1, "Table#EIO86.2000年 #Book.Sheet.Row.Column#R3C2:R109C26";

LoadData "EIO86詳細 2001年 .xls",1,2/1, "Table#EIO86.2001年 #Book.Sheet.Row.Column#R3C2:R109C26";

LoadData "EIO86詳細 2002年 .xls",1,2/1, "Table#EIO86.2002年 #Book.Sheet.Row.Column#R3C2:R109C26";

Let EIO24= GroupRow(EIO86,SNAIO86To24Plus6);

//消費原単位 を原産

Let EIO24 GroupCol 25 =GroupCol 23; //まず let 25列=エネルギー消費量

Let EIO24 GroupCol 25 /=GroupCol 24; //そして、割る 24列の生産額

Let EIO24 GroupCol 25 *=1000; //最後に単位を1000倍縮小

Let ItemName[1] Of EIO24=RowItemName24Plus6;

Let ItemName[2] Of EIO24={"Y1995","Y2000","Y2001","Y2002"};

SaveData EIO24, "EIO24T 95-00-01-02.xls";

Table3D V86X20FixT;

LoadData "EIO86T 95-00-01-02 UsingVP95.xls";

Let EIO24= GroupRow(V86X20FixT,SNAIO86To24Plus6); Let ItemName[1] Of EIO24=RowItemName24Plus6; SaveData EIO24, "EIO24T 95-00-01-02 UsingVP95.xls";

図 5  Visual Economist のイメージ

参照

関連したドキュメント

このように資本主義経済における競争の作用を二つに分けたうえで, 『資本

SVF Migration Tool の動作を制御するための設定を設定ファイルに記述します。Windows 環境 の場合は「SVF Migration Tool の動作設定 (p. 20)」を、UNIX/Linux

ダウンロードしたファイルを 解凍して自動作成ツール (StartPro2018.exe) を起動します。.

経済学研究科は、経済学の高等教育機関として研究者を

廃棄物の再生利用の促進︑処理施設の整備等の総合的施策を推進することにより︑廃棄物としての要最終処分械の減少等を図るととも

2 省エネルギーの推進 東京工場のエネルギー総使用量を 2005 年までに 105kL(原油換 算:99 年比 99%)削減する。.

3R・適正処理の促進と「持続可能な資源利用」の推進 自然豊かで多様な生きものと 共生できる都市環境の継承 快適な大気環境、良質な土壌と 水循環の確保 環 境 施 策 の 横 断 的 ・ 総

経済学・経営学の専門的な知識を学ぶた めの基礎的な学力を備え、ダイナミック