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,并且没有任何其他参数。