如何使用R中的线性模型方法对单变量季节性时间序列进行插补?它应该考虑季节性,最好是趋势性。我曾使用tslm函数进行预测,但不知道类似的插补函数。
您正在搜索的可能是imputeTS包。(免责声明:我是软件包的维护者)
它是一个专门用于(单变量)时间序列插补的软件包。这意味着它还具有处理季节性和趋势性的功能。
实际上,包中有几个功能可能会引起您的兴趣:
- na_seadec-利用黄土分解和插值
- na_kalman-使用卡尔曼平滑&结构时间序列模型
- na_seasplit-分别为每个季节估算
还包括其他算法,但这三种算法似乎最适合您的需求。我建议阅读手册以了解具体的算法细节。
举个简单的例子:
library(imputeTS)
# tsAirgap is a example univariate time series with NAs provided by imputeTS
x <- tsAirgap
x <- na_kalman(x)
基本上就是这样。对于其他算法,它的工作原理是一样的:
library(imputeTS)
# tsAirgap is a example univariate time series with NAs provided by imputeTS
x <- tsAirgap
x <- na_seadec(x, algorithm = "interpolation")
这个问题本质上似乎更具统计性,因此可能应该迁移到交叉验证中,以便获得更好的答案。。。但一个快速的答案是
- 插补是一个不同于线性建模的过程,通常是提前进行的,所以有点不清楚你在这里问什么
- 如果我理解正确的话,最简单的方法可能是在拟合tslm模型之前,使用相邻点的合理窗口的平均值
- 你可能想看看Caret包中提供的预处理选项,尽管我自己还没有将它们用于时间序列数据,也不确定是否可能
和往常一样,提供数据和可复制的示例将在这里有所帮助。