【发布时间】:2017-10-12 21:33:31
【问题描述】:
我有大约 70 家公司,我想使用 SAS 根据三个时间序列变量将它们聚集成更小的组。
数据是标准化和堆叠的。它看起来像这样:
Day Company Var1 Var2 Var3
1 A 0.01 0.015 0.14
2 A ...
3 A ...
...
99 Z ...
100 Z ...
以下是我的想法:
- 我通过计算三个变量的欧几里得距离 Var4 将三个变量合并为一个变量
然后我将数据拆开,得到一个新的数据集,如下所示:
Day Var4_A Var4_B ... Var4_Z
1 0.141 0.1 ... 0.23
2
...
99
100
- 我将新数据集发送到 proc 相似度以获得某种相似度 矩阵
- 我将相似度矩阵发送到 proc cluster 并获取公司组
我的问题是:
第 1 步是组合三个变量的明智方法吗?我在网上找到了一些使用第 2 步和第 3 步对时间序列数据进行聚类的示例,但它们似乎只使用了 1 个变量。
【问题讨论】:
-
您是否考虑过使用任何内置的聚类分析程序,例如
proc fastclus或proc modeclus? -
@user667489 据我了解,fastclus 是对观察结果进行聚类,而不是对您的公司进行聚类,对吗?我不希望同一家公司的不同观察结果落入不同的群体。这可以通过 fastclus 实现吗?
-
我会考虑对每一天运行单独的聚类分析,或者将相邻的天组合在一起并在使用按组处理运行每个时间段的分析之前取 var1-varn 的平均值。
-
@user667489 这很有意义——在每天运行集群之后,我如何得出一个最终结果以供将来使用?
-
有许多可能的方法 - 选择适合您的方法是一个问题。例如。您可以查看在所有单独分析中将成对的公司放在同一个集群中的频率,如果这个数字超过某个阈值,则将它们放在同一个最终集群中。
标签: sas statistics time-series cluster-analysis