|
数据分析讲堂
第五课 TM1应用实例
第六讲 采购和货币交换(五)
有两个公式需要范化。首先,在地理维的所有等级上计算相对价格的公式要范化为在叶子等级以上的任何等级的计算,如下所示: “Relative price”{D}, Foodsource.fish.leaf., Time. = Sum ( ( “Relative price”{D},Grog.leaf. ) ×
( “Quantity purchased”{Kg}, Geog.leaf. ) ) +
“Quantity purchased”{Kg} 然后,查找具有最大相对价格波动的鱼的公式需要用同样的方法范化。最终的结果,如下所示,将列出任何市场层次上地理区域的具有最大价格波动的鱼。查询结果显示在图5.6.1中。
 “Fish”{N}, Grog.leaf.above., ( ( Relative price,Time.year.this ).max -
( Relative price,Time.year.this ).min ).Drank. ( 1 to 5 ) 虽然Lulu和Thor意识到,他们需要分析汇率立方体才能完整地回答他们的开支波动问题,但是还存在一些采购立方体特定的派生,其结果有助于他们的分析。 FCI知道稳定其输入开支结构的一个奥秘是使他们的输入源多样化。要达到此目的的第一步是了解当前多样化和集中的状态。下面的项目(虽然绝不是完备的)展示了为使FCI的经理们充分地理解多样化和集中当前状态所需的各种计算: l 整个一年内FCI在哪个国家购买的鱼的种类最多 l FCI在哪个国家购买的某一种特定水产品(如小虾)的数量最多 l 采购国家最多的鱼是哪种 我们要搜索多少个国家,Thor问。想一想,Lulu回答。这些查询的目的是让FCI采购经理能更好地控制食物源的不稳定性,我们不知道FCI是在一个还是50个国家采购各种不同的鱼。解决此问题的一个办法是生成一张包含所有国家的在每个国家采购不同鱼种的个数图,通过直观的观察,选择具有或接近最大数字的国家。另一种办法是从某一处开始,比如前5个国家,查看它们,然后根据排在第一和第五之间的质量降低情况来限制、扩大或直接保留这一选择。 由于我手头没有绘图模块,让我们采用第二种方法,Thor讲道。你所要做的就是计算每个国家采购的数量不为0的鱼的种类的个数,然后根据不同鱼种类的多少选择前5个(见下面的公式)。作为开始,我们考察不同国家在2000年的情况,结果显示在图5.6.2中。顺便提一句,Thor继续道,我要用两个独立的公式——一个在每个国家购买的不同鱼的数目,另一个根据鱼的数目排序。为方便记录,我本应该将其写在一个表达式内,但那样难以理解和重用。
 “Distinct_number_of_fish_bought”{integer I }, Time.year.2000, Foodsource.all, Geog.country, = Cnt ( “Foodsource.leaf”{N}, ( Quantity purchased {Kg} > 0 ) ) “Drank”, “Country”{N}, “Distinct_number_of_fish_bought”{I}, Distinct_number_of_fish_bought.Drank. ( 1 to 5 ), Time.year.2000 哎,等一下,Lulu说。在你第一个表达式的等号左边,你把食物源维德应用范围设置为所有成员,但接着在右边你又设置为与所有叶子相等。这是怎么回事?问得好,Thor回答。如果你仔细地看一下,你就会发现在等号的左边,食物源类型被当作定位器或维,并且确实食物源维德应用范围是所有成员。毕竟(没双关语的意思)每个国家每年采购的不同种鱼的数目只能有一个值。然而,在等号的右边,相同的食物源类型是作为变量或内容的。换句话说,我们不是要将其设定一个值来限制其他变量,相反,我们是要计算它的值,或更恰当的是一个依赖于其他限制条件的一个函数值——在这里是指采购两超过0。由于我们把在等号右边的食物源作为内容,我们需要像使用所有作为变量的类型一样将其用双引号标识,并包含单位,这里是简单的{名字}。多谢,Lulu说。现在我将写第二个公式,结果显示在图5.6.3中。
 “Country”{N}, Time.all, ( “Quantity purchased”{Kg}, Geog.country.,Foodsource.shrimp ).max 从里面解析此表达式,它表示的是在每个国家采购的虾的数量: ( “Quantity purchased”{Kg}, Geog.country., Foodsource.shrimp ) 获得采购的最大数量: ( “Quantity purchased”{Kg}, Geog.country.,Foodsource.shrimp ).max 然后获得与最大数相关联的国家: “Country”{N}, Time.all, ( “Quantity purchased”{Kg}, Geog.country, Foodsource.shrimp ).max Thor坚持写下第三个公式,他以下面的公式开始: “Distinct_number_of_countries_from_which_fish_is_bought”{I}, Foodsource.fish.leaf., Geog.all., Time.year.atabove. = Cnt ( “Geog.country”{N}, ( “Quantity purchased”{Kg} > 0 ) ) Thor补充道,在我们能列出从具有最多种类国家采购的鱼之前,我们需要能够计算从多少个国家采购了鱼。因此这也是我所做的。Lulu皱起了眉头,问道,你的公式与前面列出的第三项并不一致——原始项并未引用时间,你为什么要用年来定义应用范围呢?你难道不应该在所有时间等级上定义公式吗?你怎么想? 以我的经验来看,Thor回答,最终用户并不总是完整确切地指定他们需要计算的内容。典型地,最终用户需要几个回合的修正之后才能得到最终满足他们需求的公式。我考虑过在所有时间等级上用此公式计算不同的国家个数,但我认为如果是FCI经理提交了查询要求,并且我们有机会发表意见的话,FCI经理几乎一定会赞成在年等级上比在所有时间等级上进行计算更有意义。不要忘了,我并不只是在年层次上应用公式,而是在年和它之上的等级上应用公式,因此,我的公式会返回一个原始请求内容的超集。 Thor继续讲解道。基于如下的查询,以不同采购源国家个数排序的前5种鱼和国家的个数按年和时间等级显示在图5.6.4内: “Foodsource.Fish.leaf”{N}, Distinct_number_of_countries_from_which_fish_is_bought.Drank. ( 1 to 5 ), Time.year, 这时,Jane突然走了进来。你们都知道什么了,她问。我们已经发现如果用当地货币价格的变化来定义的话,一些FCI进行生产严重依赖的鱼有相当高的价格不稳定性。而且,有些大量使用的鱼只在很少的国家内采购。有意思,Jane说。我很满意项目以这样的方式进展到现在,相信当它完成时,我们能得到很多基于经验的建议来使FCI能降低其成本结构的不稳定性。

|
一共有 0 条评论