我的数据由日期值组成,例如
Date Value
2024-02-12 7
2024-02-13 8
2024-02-14 9
我已经为该数据拟合了一个模型,现在可以计算未来日期的预测值:
dat <- read.table(textConnection("
Date Value
2024-02-12 7
2024-02-13 8
2024-02-14 9
2024-04-20 NA
"), header = TRUE, colClasses = c("Date", "integer"))
model <- glm(Value ~ Date, data = dat)
prediction <- predict(model, dat)
通过这种方式,我可以找到一个特定日期的预测值。
但是如果我想找到预测特定值的日期怎么办?
我的解决方案是计算未来很长一段时间的预测值,然后搜索预测值找到对应的日期。这种方法通常需要长序列和大数据集以及长计算时间。
例如,对于上面的示例数据,我很难确定该值是 75 的确切日期。因此,我会计算接下来几个月的所有值,然后筛选预测值以找到与值 75 对应的日期。
是否有更有效的方法可以直接找到该日期,而无需计算一系列值?
对于上面的示例,模型预测 2024 年 2 月 20 日的值为 75。如果我不知道这一点并且想要查找模型预测值 75 的日期而不计算接下来几个月的所有值怎么办?
您可以重新排列模型方程来计算:
# Extract the coefficient of the model you've built
coef <- coef(model)
# Calculate the date for your specific value (in this case 75)
result <- (75 - coef[1]) / coef[2]
您可能需要将数字答案转换为日期。例如
as.Date(result , origin = "1970-01-01")