日历

2008 9.6 Sat
 123456
78910111213
14151617181920
21222324252627
282930    
«» 2008 - 9 «»

日志分类

文章搜索

日志文章

2008年05月14日 08:38:07

数据分析讲堂

数据分析讲堂

第七课 TM1应用实例(3)——市场和销售

第二讲 市场和销售的数据挖掘

1. 立方体维
销售和市场立方体有4个维,通过标准笛卡儿积关联:
l       时间

Lulu使用FCI的标准时间维,基于等级,从最低等级的日期开始,上卷到周、月、季度和年,此维覆盖了3年的日期。
l       地理

与以前的设计一致,LuluFCI维护的商店列表与FCI维护的基于国家的地理维的关联得到基于商店的地理维。
l       Foodcakes

目前,FCI销售的30foodcakes分成3类:美味、低热和素食的。
l       场景

FCI的标准报表包含3个场景(Scenario):计划的、实际的和变化的。
2. 立方体输入变量
在商店收集的将被传送到FCI的数据由下面描述的几部分输入变量组成。
1) 销售包的数量:Qty_Sols{pkg}
商店用包来跟踪销售。FCI生产两种不同类型的包:4个装和8个装。Lulu这时问,把4个装和8个装的差异作为变量的不同还是维的不同,哪种更有意义。你怎么认为?
维还是变量?
简短思考后,Thor说如果所有的foodcakes都是以4个装或8个装的包装销售的,并且只有一个销售数量变量,那么把包装类型作为变量的不同比作为Foodcakes维的不同更有效。这是由于如果在Foodcakes维上定义包类型,那叶子的数目在此维上就会加倍。从过程的角度看,他们将需要给foodcakes维添加一个新等级叫SKU或包,这里每个4个装和8个装的组合上卷到现在已经存在的等级,或者每个现在的叶子将必须编辑成4个装或8个装,并且同时并列添加另外一种类型的包。任何情况下,都至少添加60个新定义。
相反,Thor继续说道,用变量跟踪包类型的差异,可以通过在差异存在的地方创建两个销售数量变量来实现。然而,如果FCI用不同类型的包销售不同的foodcake,这种基于变量的策略就没法起作用。他们将要么不得不定义具有基于foodcake应用范围限制的额外变量,要么不得不在foodcake维的等级上体现包的不同。你同意Thor吗?
包维度
Package.all
Package.4pack
Package.8pack
                  7.1.1 包维
Lulu回答,我喜欢你的推理,Thor,我也同意添加两个新维比添加60个新叶子更好,但你遗漏了一个重要的,最终我认为最好的方案是:给立方体添加一个新的包类型维。这才是真正有效率的方法。添加两个新变量的问题是立方体的基变量的数目会增加,并且2个变量最终会变成20个或40个变量。相反,如果我们添加一个新的包类型维,它将不受我们所跟踪事情个数增长的影响。只有当FCI添加新的包类型时它才会增长,这是更少的情形。
Thor说,我猜测最重要的决定因素是了解未来变化的可能源头。对未来变化了解得越少,对制定当前建模最优的方法我们能说的也就越少。在这一点,我们只是在争论表达同一逻辑模式的不同物理实现方法。我对将不同包类型处理为不同维的方法没有什么异议,如图7.1.1,两个叶子等级实例:4个装和8个装连接到Package.all根实例。
重新建立市场和销售立方体后,LuluThor继续进行定义变量的过程。
2) 返回到Qty Sold{pkg}
Qty_Sold在时间、foodcake、包类型和地理的叶子等级输入,其单位定义为数值型包数量{pkg}。实际数据作为方案维的时间成员输入,计划数据在计划元素输入。
“Qty_Sold”{pkg},
      Geog.leaf.,
      Time.leaf.,
      Foodcake.leaf.,
      Package.leaf.,
      Scenario.actual << [ input from store tables summed to the day level ]
“Qty_Sold”{pkg},
      Geog.leaf.,
      Time.leaf.,
      Foodcake.leaf.,
      Package.leaf.,
      Scenario.plan << [ input from FCI planning date summed to the day level ]
实际和计划Qty_sold[pkg]在除了方案之外的所有维上汇总,从聚合中排除方案维的方式,因所使用的OLAP工具允许用户定义维函数的不同而不同。如果工具强迫用户给每个维定义一个所有成员,那么用户需要找到一种从任何聚合中排除方案维的方法。这可以用下面的简单公式来定义:
“Qty_Sold”{pkg},
      Geog.leaf.above,
      Time.leaf.above,
      Foodcake.leaf.,
      Package.leaf.above,
      Scenario.actual

      Sum Qty_Sold{pkg},Geog.leaf.,Time.leaf.,Foodcake.leaf.,Package.leaf.
换句话说,变量的应用范围被限制在方案维的实际成员上。可选择的一种方法是,如果OLAP环境允许维可以不定义所有成员,那么为了聚合目的,可以用如下公式忽略方案维:
“Qty_Sold”{pkg},
      Geog.leaf.above,
      Time.leaf.above,
      Foodcake.leaf.,
      Package.leaf.above.

      Sum Qty_Sold{pkg},Geog.leaf.,Time.leaf.,Foodcake.leaf.,Package.leaf.

类别: 无分类 |  评论(1) |  浏览(1401) |  收藏
发表评论