多变量 - 时间序列数据模式更改

数据挖掘 r 时间序列
2021-09-16 07:47:45

R 新手。在我的示例中,我的客户限制了 Milk 的预算分配。我的商店里有超过 5 个品牌的牛奶。我的目标是我如何知道我的客户正在从一个品牌转移到另一个品牌?(示例:客户在我的时间序列数据中将品牌 1 替换为品牌 2)。我想每季度计算一次这种变化模式,并逐季度观察趋势。

样本季度数据:

Date    Milk-Brand1 Milk-Brand2 Milk-Brand3 Milk-Brand4 Milk-Brand5

1/1/2015    200 140 190 220 150
1/2/2015    204 138 195 226 144
1/3/2015    208 136 200 232 126
1/4/2015    212 134 205 238 108
2/2/2015    216 132 210 244 90
1/6/2015    220 130 215 250 72
1/7/2015    224 128 220 256 54
1/8/2015    228 126 225 262 36
1/9/2015    232 124 230 268 18
3/1/2015    236 122 235 274 0
3/2/2015    240 120 240 280 13
3/3/2015    244 118 245 286 33
3/4/2015    248 116 250 292 15
20/3/2015   252 114 255 298 33
20/3/2015   256 112 260 304 15

您是否建议计算每个“牛奶品牌”之间的相关性并将这些相关性从一个季度到另一个季度进行比较?还是互相关?还是其他人?我是开放的。

谢谢你的建议。

这是dput任何想要它的人的数据:

structure(list(Date = structure(c(1420070400, 1422748800, 1425168000, 
1427846400, 1422835200, 1433116800, 1435708800, 1438387200, 1441065600, 
1420243200, 1422921600, 1425340800, 1428019200, 1426809600, 1426809600
), tzone = "UTC", class = c("POSIXct", "POSIXt")), Milk.Brand1 = c(200L, 
204L, 208L, 212L, 216L, 220L, 224L, 228L, 232L, 236L, 240L, 244L, 
248L, 252L, 256L), Milk.Brand2 = c(140L, 138L, 136L, 134L, 132L, 
130L, 128L, 126L, 124L, 122L, 120L, 118L, 116L, 114L, 112L), 
    Milk.Brand3 = c(190L, 195L, 200L, 205L, 210L, 215L, 220L, 
    225L, 230L, 235L, 240L, 245L, 250L, 255L, 260L), Milk.Brand4 = c(220L, 
    226L, 232L, 238L, 244L, 250L, 256L, 262L, 268L, 274L, 280L, 
    286L, 292L, 298L, 304L), Milk.Brand5 = c(150L, 144L, 126L, 
    108L, 90L, 72L, 54L, 36L, 18L, 0L, 13L, 33L, 15L, 33L, 15L
    )), .Names = c("Date", "Milk.Brand1", "Milk.Brand2", "Milk.Brand3", 
"Milk.Brand4", "Milk.Brand5"), row.names = c(NA, -15L), class = "data.frame")
1个回答

如您所说,一种起始方法是进行互相关。相关性将无法捕捉到时移行为。但是你应该为你拥有的每一对牛奶/药物计算它。

R 中的ccf()函数为您完成。

如果您不成功,我建议您查看并排绘制的多个时间序列(如此),并检查您的客户行为中是否真的存在这种时移模式。