Python R:用made函数去除时间序列的季节性
我编写了以下函数来删除数据集的趋势和季节性Python R:用made函数去除时间序列的季节性,python,r,time-series,trend,Python,R,Time Series,Trend,我编写了以下函数来删除数据集的趋势和季节性 # Create a differenced series difference <- function(dataset, interval=1) { my_diff <- NULL for (i in seq(interval, length(dataset))) { value <- dataset[i] - dataset[i-interval] my_diff <- c(my_diff, v
# Create a differenced series
difference <- function(dataset, interval=1) {
my_diff <- NULL
for (i in seq(interval, length(dataset))) {
value <- dataset[i] - dataset[i-interval]
my_diff <- c(my_diff, value)
}
return(my_diff)
}
# Invert differences forecast
inverse_difference <- function(last_ob, value) {
return(cumsum(value) + last_ob)
}
# REMOVING A TREND
# Defining a dataset with a linear trend
my_data <- seq(1,20)
my_data
# Difference the dataset
my_diff <- difference(my_data)
my_diff
# Invert the difference
inverted <- inverse_difference(my_data[1], my_diff)
inverted
# REMOVING SEASONALITY
# Defining a dataset with seasonality
my_time <- seq(0,20,0.1)
my_data <- (sin(my_time))
# Plotting seasonal data
plot(my_time, my_data, type="l")
plot(my_data, type="l")
# Difference the dataset
my_diff <- difference(my_data, 20)*2
# Line plot of the differenced seasonal dataset
plot(my_diff, type="l")
# Invert the difference
inverted <- inverse_difference(my_data[1], my_diff)
plot(inverted, type="l")
#创建差异系列
差异如果你没有意识到这一点,你就是在重新发明轮子。R已经具有执行季节分解的函数decompose
和stl
使用您自己的数据:
my_time万一你没有意识到,你正在重新发明轮子。R已经具有执行季节分解的函数decompose
和stl
使用您自己的数据:
my_time我现在正在阅读文档,我对这些参数有点困惑。若要通过删除月度数据的趋势性和季节性使时间序列保持平稳,这两个参数是正确使用的?@Joehat您只需从数据中创建一个频率为12的时间序列。在stl
中,您可以合理地将s.window
设置为12,并且没有任何其他参数。我现在正在阅读文档,对这些参数感到有点困惑。若要通过删除月度数据的趋势性和季节性使时间序列保持平稳,这两个参数是正确使用的?@Joehat您只需从数据中创建一个频率为12的时间序列。在stl
中,您可以合理地将s.window
设置为12,并且没有任何其他参数。