季节性分解黄土日常温度时间序列

时间:2016-04-09 20:59:36

标签: r forecasting decomposition

我每天有10年的气温系列时间:

x <- c(rep((seq(-3,5,by=0.85)),365),NA)

我将它转换为这样的时间序列对象:

x <- ts(x, frequency=10, start=1)

并跑了stlm

stlm(x, s.window=365, robust=TRUE, allow.multiplicative.trend=TRUE, level=0.95)

产生了错误

error in na.fail.default(as.ts(x)) : missing values in object

这很奇怪,因为气象时间序列是高度季节性的。我该怎么做才能解决这个问题?零有问题吗?

任何帮助表示赞赏。 更新:我的时间序列中有一个缺失值,产生错误。部分代码

robust=TRUE, allow.multiplicative.trend=TRUE, level=0.95

产生了另一个错误,显然无法使用这些参数。

为了确定10年来最终发生变化的趋势,我如何将我的时间序列充分分解为季节和趋势?

1 个答案:

答案 0 :(得分:0)

您还可以尝试使用dsa软件包,该软件包专门用于处理日常数据。您必须先将数据转换为xts,但随后就可以了,

library(dsa); library(xts)
x <- c(rep((seq(-3,5,by=0.85)),365),NA) # I didn't change these strange  looking data ;-)

# Converting to xts
dates <- seq(as.Date("2010-01-01"),length=length(x),by="days")
x <- xts(x, order.by=dates)

result <- dsa(x, fourier_number=24) # if no monthly recurring cycle is visible
                                    # fourier_number can be reduced or left empty.

sa <- result$output[,1]             # This is the seasonally adjusted series
xtsplot(result$output[,c(2,1)], names=c("original series", "seasonally adjusted series"))