我有一些缺少值的数据,我知道这些数据是正面的。我尝试使用na.interp
包中的forecast
插入缺失值。但是,一些内插值结果为负值。
我已经从na.approx
包中尝试了zoo
,但是近似值与时间序列的季节性趋势不一致。
我无法在日志域中进行插值,因为我的一些观察结果是0
。在平方根域中插值会以某种方式产生太多的异常值。还有其他方法可以在保持积极性的同时插入时间序列吗?任何对其他R包的引用也将受到赞赏。
答案 0 :(得分:0)
有一个 imputeTS 软件包,它专门针对时间序列中的缺失值。 (看看这个Paper)
它是这样的:
na.kalman(yourTimeSeries)
就这样。
它提供了几种时间序列插补功能:
其中一些功能更高级,某些功能不那么高级。我将为此任务尝试软件包的na.kalman()函数。 可能是此功能的结果已经遵守约束。 否则,您需要在进行插补之前进行一些转换(如下所述)。
通常,如果您希望将插补限制在一定范围内,则此转换方法也可能会有所帮助:
library("imputeTS")
# Bounds
a <- 50
b <- 400
# Transform data
y <- log((myTimeSeries-a)/(b-myTimeSeries))
imputations <- na.kalman(y)
# Back-transform
imputationsBack <- (b-a)*exp(imputations)/(1+exp(imputations)) + a