在季节周期分析中处理NA
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在季节周期分析中处理NA相关的知识,希望对你有一定的参考价值。
我有一个包含大量缺失数据点的月度数据的时间序列,设置为NA。我想简单地从数据中减去年度周期,忽略丢失的条目。似乎分解函数无法处理丢失的数据点,但我在其他地方看到过建议使用季节性包。但是我也遇到了NA的问题。
以下是使用内置数据集的问题的最小可重现示例...
library(seasonal)
# set range to missing NA in Co2 dataset
c2<-co2
c2[c2>330 & c2<350]=NA
seas(c2,na.action=na.omit)
Error in na.omit.ts(x) : time series contains internal NAs
是的我知道!这就是为什么我要你省略它们!我们试试这个:
seas(c2,na.action=na.x13)
Error: X-13 run failed
Errors:
- Adding MV1981.Apr exceeds the number of regression effects
allowed in the model (80).
嗯,有趣,不知道这意味着什么,好吧,请排除NA:
seas(c2,na.action=na.exclude)
Error in na.omit.ts(x) : time series contains internal NAs
这没多大帮助!并且好的措施
decompose(c2)
Error in na.omit.ts(x) : time series contains internal NAs
我在以下内容:
R version 3.4.4 (2018-03-15) -- "Someone to Lean On"
Copyright (C) 2018 The R Foundation for Statistical Computing
Platform: x86_64-pc-linux-gnu (64-bit)
为什么要遗漏NA这样的问题?我显然是完全愚蠢的,但我看不出我在海洋功能方面做错了什么。很高兴考虑使用xts的替代解决方案。
我的第一个解决方案,只需手动计算季节周期,转换为数据帧以减去矢量然后转换回来。
# seasonal cycle
scycle=tapply(c2,cycle(c2),mean,na.rm=T)
# converting to df
df=tapply(c2, list(year=floor(time(c2)), month = cycle(c2)), c)
# subtract seasonal cycle
for (i in 1:nrow(df)){df[i,]=df[i,]-scycle}
# convert back to timeseries
anomco2=ts(c(t(df)),start=start(c2),freq=12)
不是很漂亮,也不是很有效率。
错误的评论引导我到另一个Seasonal decompose of monthly data including NA in r,我错过了一个近乎重复的问题,这建议包动物园,这似乎非常适合添加剂系列
library(zoo)
c2=co2
c2[c2>330&c2<350]=NA
d=decompose(na.StructTS(c2))
plot(co2)
lines(d$x,col="red")
表明该系列在失踪期间得到了很好的重建。
解构结构的输出具有趋势和季节周期。我希望我可以将我的赏金转移到用户https://stackoverflow.com/users/516548/g-grothendieck这个有用的回复。感谢用户的错误。
但是,如果缺失部分位于系列的末尾,则软件必须推断趋势并且存在更多困难。原始系列(黑色)保持趋势,而重建系列(红色)的趋势较小:
c2=co2
c2[c2>350]=NA
d=decompose(na.StructTS(c2))
plot(co2)
lines(d$x,col="red")
最后,如果缺少部分是在系列的开头,软件无法及时推断并抛出错误...我觉得另一个问题即将来临......
c2=co2
c2[c2<330]=NA
d=decompose(na.StructTS(c2))
Error in StructTS(y) :
the first value of the time series must not be missing
以上是关于在季节周期分析中处理NA的主要内容,如果未能解决你的问题,请参考以下文章
【时间序列分析】为啥要做季节调整?对数处理?差分?(理论篇)
时间序列分析 - 基础知识与分析场景(Time series analysis)