gpt4 book ai didi

r - 如何在 R 中进行分类时间序列预测?

转载 作者:行者123 更新时间:2023-12-02 09:13:30 25 4
gpt4 key购买 nike

我在 R 中使用 ARIMA 进行了一些时间序列预测,它在给定一系列连续值的情况下预测 future 时间点的值,但我不确定在处理分类值时如何处理时间序列预测.

鉴于 5 个人的晨礼服常规的这些简单训练序列,我如何为 person6 的最后两个条目生成预测?

person1 <- c("underwear", "socks", "pants", "shirt", "tie", "shoes", "jacket")
person2 <- c("underwear", "pants", "socks", "shirt", "tie", "jacket", "shoes")
person3 <- c("socks", "underwear", "pants", "shirt", "tie", "shoes", "jacket")
person4 <- c("underwear", "socks", "shirt", "pants", "tie", "shoes", "jacket")
person5 <- c("underwear", "socks", "shirt", "tie", "pants", "jacket", "shoes")
person6 <- c("underwear", "socks", "pants", "shirt") # Predict next events

提前致谢!

最佳答案

使用 markovchain 包,我们可以使用估计的转移矩阵在给定当前状态的情况下估计下一个状态。首先创建一个 n x 2 矩阵 m 的转换对(每行一个),然后执行估计给出 est。由此我们可以使用 predictplot 转换矩阵来形成我们的预测。

library(markovchain)

L <- list(person1, person2, person3, person4, person5)
m <- do.call("rbind", lapply(L, function(x) cbind(head(x, -1), tail(x, -1))))
mc <- markovchainFit(m)
est <- mc$estimate

est # show transition matrix
# ...snip...

# estimate next step after "shirt"
person6 <- c("underwear", "socks", "pants", "shirt")
prior_state <- tail(person6, 1)
predict(est, prior_state)
## [1] tie

plot(est)

(剧情后续)

screenshot

上述的一个变体是考虑以没有出现的状态再次出现为条件的分布。这里的allowed是那些没有出现在person6中的状态。在这种情况下,预测仍然是 “tie”,但如果来自上述原始马尔可夫链的预测是 person6 中发生的状态,则预测会有所不同。该预测不再具有马尔可夫属性,因为下一个状态的预测取决于迄今为止发生的所有状态。

allowed <- setdiff(states(est), person6)
names(which.max(conditionalDistribution(est, tail(person6, 1))[allowed]))
## [1] "tie"

关于r - 如何在 R 中进行分类时间序列预测?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49367498/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com