gpt4 book ai didi

R:去季节性化时间序列

转载 作者:行者123 更新时间:2023-12-04 00:36:57 25 4
gpt4 key购买 nike

我们可以使用以下代码在 R 中绘制和分解时间序列:

# Monthly Airline Passenger Numbers 1949-1960
data(AirPassengers)
data = data.frame(AirPassengers)
data

#Transform to time series
ts.data1 = ts(data=as.vector(t(data['AirPassengers'])), start = c(1949), end = c(1960), frequency=12)
#Plot seasonality, trend

plot(stl(ts.data1, "periodic"))
plot(ts.data1)

decomposed <- stl(ts.data1, s.window="periodic")
seasonal <- decomposed$time.series[,1]
trend <- decomposed$time.series[,2]
remainder <- decomposed$time.series[,3]

#Show seasonal effect
seasonal

现在来我的问题:为了 淡化 , 我可以简单地输入
# deseasonalize time sereis
ts.data1 <- ts.data1 - seasonal
ts.data1
plot(ts.data1)

减去季节性值?

我意识到在另一个数据集中,减去季节性值会导致负值。这就是为什么我认为使用因子或其他东西会更好。

注意:我不想使用“deseasonalize”包。

最佳答案

是的,这会奏效。

或者直接使用 seasadj forecast 中的函数包裹。然而,随着 AirPassengers数据,一种加法分解,如 stl 中给出的分解不是一个好的选择。您可以先获取日志,然后再给出合理的结果。

library(forecast)
library(ggplot2)

decomp <- stl(log(AirPassengers), s.window="periodic")
ap.sa <- exp(seasadj(decomp))
autoplot(cbind(AirPassengers, SeasonallyAdjusted=ap.sa)) +
xlab("Year") + ylab("Number of passengers (thousands)")

enter image description here

关于R:去季节性化时间序列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40307454/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com