Интересно было бы узнать, какие серии вы имеете в виду.na.Struct()
может быть не лучшим выбором для очень коротких серий.
Существует множество других методов вменения (некоторые легче понять).Например, zoo
также предлагает na.approx
, na.spline
, na.StructTS
, na.locf
Также существует пакет imputeTS
, которыйисключительно о вменении временных рядов.(и также должен быть совместим с временными рядами zoo
, так что вы можете использовать его только в сериях зоопарков)
В пакете imputeTS у вас есть: na.interpolation()
, na.locf()
, na.ma()
, na.kalman()
, na.seadec()
, na.seasplit()
и даже больше функций .
Если вы хотите остаться с фильтром Калмана, возможно, посмотрите на na.kalman()
функцию
na.kalman (x, model = "StructTS", smooth = TRUE, nit = -1, ...)
У него есть несколько дополнительных опций, поэтому вы можете использовать модель ARIMA вместоодин из StructTS или вы можете выбрать, хотите ли вы использовать KalmanRun или KalmanSmoothing.
na.kalman(x, model = "StructTS", smooth = TRUE)
будет наиболее похоже на na.StructTS.Но все же разные реализации - поэтому они не дадут одинаковых результатов.Поэтому, если вы настаиваете на KalmanSmoothing на моделях состояний пространства, вы можете использовать эту функцию из imputeTS (не выдает ошибку для частоты = 1)