これまで3回にわたる筆者のブログ、『面白メディア学』「1×1=?」では、AADLにおける掛け算:要素積を紹介してきた。今回は、割り算:要素商を紹介しよう。要素商も、足し算、要素積と同様に同一の基底同士で演算を実行するように実装されている。
すなわち、y≠0のとき、
x
<
name1, unit1, time1, subject1> ÷
y < name1, unit1, time1, subject1>
= (x / y) <
name1, unit1, time1, subject1>
となって、4項基底がすべて同一である交換代数元同士で割り算を実行し、この計算の実行に形式上あるいは実装上制限はない。しかし、要素積のときと同様に、ユーザー(プログラマー)には、それが実行可能かどうか、すなわち実務上意味のある計算かどうかの判断が求められることになる。意味のある計算のときに限って、基底を事前に振替変換し、そして要素商を実行する、という実装手順も要素積と同様である。
次の交換代数型式のデータで、具体的に考えてみよう。
x
= 300<リンゴ,価格,Y2015M05D10>
y
= 200<ミカン,価格,Y2015M05D10>
両者の掛け算は、
<価格> × <価格> → <価格2>
となって、実務上の意味を一般には見出しにくい点は、以前紹介したとおりである(『面白メディア学』1×1=?参照)。それでは、割り算はどうであろうか。両者は、それぞれ、リンゴとミカンの単価に関するデータである。いま、リンゴの単価をミカンの価格で割り算した値は、両者の価格比(リンゴの価格はミカンの価格の何倍か)、あるいは、ミカンを基準とした(ミカンの価格で計った)リンゴの相対価格という、実務上の意味を持った結果になっている。
実際の計算手続きは、例えば次のように事前に基底を振替変換しておけば、要素商として計算できる。
x
= <リンゴ,価格,Y2015M05D10>
→ x
= 300<#,ミカン基準_リンゴ価格,Y2015M05D10>
y
= <ミカン,価格,Y2015M05D10>
→ y
= 200<#,ミカン基準_リンゴ価格,Y2015M05D10>
x
/ y =(3 / 2)
<#,ミカン基準_リンゴ価格,Y2015M05D10>
この基底変換では、単位基底(unit)に、このデータの特性である『ミカン基準のリンゴ価格』という意味を持たせ、名称基底(name)には品目名を特定しない表記とした。このように基底を具体的に特定しない場合、AADLでは、当該基底の場所に「#」が挿入される。もちろん、基底の表記は一通りではなく、ミカン基準ではあってもリンゴの(相対)価格であるので、名称基底に「リンゴ」の名を残す変換を行ってもよい。
x
= <リンゴ,価格,Y2015M05D10>
→ x
= 300<リンゴ,ミカン基準_リンゴ価格,Y2015M05D10>
y
= <ミカン,価格,Y2015M05D10>
→ y
= 200<リンゴ,ミカン基準_リンゴ価格,Y2015M05D10>
x÷y =(3 / 2)
<リンゴ,ミカン基準_リンゴ価格,Y2015M05D10>
要は、基底は、このデータを管理するユーザーが明確にデータの特性を認識できるようにルールを設定し、管理すればよいのである。
次に同じ品目同士の割り算の例を考えてみよう。
x
= 310<リンゴ,価格,Y2015M05D01>
+ 320<リンゴ,価格,Y2015M05D02>
+ 330<リンゴ,価格,Y2015M05D03>
+ 315<リンゴ,価格,Y2015M05D04>
+ 350<リンゴ,価格,Y2015M05D05>
y
= 300<リンゴ,平均価格,Y2014>
この場合も、先ほどと同様に掛け算x×yは、実務上の意味を一般には見出しにくい。しかし、割り算によって、リンゴ価格の時系列データxを2014年平均価格yで指数化したデータ系列を作成することが可能である。そこで、基準年の交換代数型式のデータyを次のように定義しなおしてみよう。
z
= 300<リンゴ,価格指数, Y2015M05D01_Y2014基準>
+ 300<リンゴ,価格指数, Y2015M05D02_Y2014基準>
+ 300<リンゴ,価格指数, Y2015M05D03_Y2014基準>
+ 300<リンゴ,価格指数, Y2015M05D04_Y2014基準>
+ 300<リンゴ,価格指数, Y2015M05D05_Y2014基準>
また、リンゴ価格の時系列データの基底を次のように振替変換すれば、要素商によって、AADLは同一基底同士間で自動的に割り算を実行する。ただし、下記時間基底中のDXXは、それぞれの日付:D01~D05を表している。
<リンゴ,価格,Y2015M05DXX> → <リンゴ, 価格指数,Y2015M05DXX_Y2014基準>
すなわち、
x / z *100
= (310/300*100)<リンゴ,価格指数, Y2015M05D01_Y2014基準>
+ (320/300*100)<リンゴ,価格指数, Y2015M05D02_Y2014基準>
+ (330/300*100)<リンゴ,価格指数, Y2015M05D03_Y2014基準>
+ (315/300*100)<リンゴ,価格指数, Y2015M05D04_Y2014基準>
+ (350/300*100)<リンゴ,価格指数, Y2015M05D05_Y2014基準>
= 103<リンゴ,価格指数, Y2015M05D01_Y2014基準>
+ 107<リンゴ,価格指数, Y2015M05D02_Y2014基準>
+ 110<リンゴ,価格指数, Y2015M05D03_Y2014基準>
+ 105<リンゴ,価格指数, Y2015M05D04_Y2014基準>
+ 117<リンゴ,価格指数, Y2015M05D05_Y2014基準>
のように計算できる。この計算式の中の『*100』はスカラー積を表し、すべての交換代数元に対して、その値の部分に100を掛ける演算である。なぜ100を掛けるかというと、指数は、一般に基準年を100とおいた系列で表すからである。
さて以上に見てきたように、割り算は、データ間の相対的な関係、ないし『比』を求めることに相当するので、実務上の解釈次第で、掛け算に比べて多くのデータ間で定義できそうである。次回はこのような相対的な関係から定義される、いくつかの「指標」を要素商で作成する例を紹介しよう。
(メディア学部 榊俊吾)