小编Dag*_*ann的帖子

使用 bfast 检测季节性成分的变化

bfast 包中的函数bfast()应该能够检测长期趋势的断点和季节性成分的变化。下图就是一个例子(来源):
在此输入图像描述
在此图中,子图编号。图 2 显示了检测到的季节性变化,而没有。图3显示了趋势中的断点。

但是,我不明白如何告诉bfast()寻找季节性的变化/断点。我得到的只是长期趋势中的断点。这是一个可重现的示例,通过每周测量季节性变量y(即每年 52 次测量)来模拟 50 年的时间序列:

n_years <- 50
freq <- 52
y_pattern <- sin(seq(0, 2*pi, length = freq))
y <- rep(y_pattern, n_years) + rnorm(freq*n_years, sd = 0.1)
mydata <- data.frame(Year = rep(1:n_years, each = freq), Week = rep(1:freq, n_years), y)  
Run Code Online (Sandbox Code Playgroud)

这些数据显示了数据中恒定的季节性趋势,在第 13 周左右出现年度峰值。现在,让我们介绍第 25 年的季节性变化,将 26-59 年的季节性周期转移到 8 周后:

move_data <- function(data, year, weeks_to_move){
  x <- data[data$Year == year, "y"]
  c(x[seq(52 - weeks_to_move + 1,52)], x[seq(1, 52 …
Run Code Online (Sandbox Code Playgroud)

r time-series decomposition

4
推荐指数
1
解决办法
1925
查看次数

标签 统计

decomposition ×1

r ×1

time-series ×1