R 时间序列频率
R times series frequency
我有一个时间序列数据集,其中包含 374 天的数据点(每天 1 个数据点)。我很难理解 ts 函数中的频率参数,所以我把它留空了:
ts_0615391206 <- ts(demand_rev_0615391206$estimated_demand,
start=as.Date(min(demand_rev_0615391206$date),format = "d%/m%/Y%"),
end=as.Date(max(demand_rev_0615391206$date),format = "d%/m%/Y%"),
#frequency = 1
)
plot.ts(ts_0615391206)
但是,当我尝试使用以下方法分解时:
ts_0615391206_components <- decompose(ts_0615391206)
我遇到错误:
Error in decompose(ts_0615391206) :
time series has no or less than 2 periods
我如何决定我的数据中有多少周期以及参数 "frequency" 值应该是多少?
> dput(head(ts_0615391206))
c(2.71, 2.47, 3.86, 3.61, 5.78, 5.59)
>
> str(ts_0615391206)
Time-Series [1:194] from 16125 to 16318: 2.71 2.47 3.86 3.61 5.78 5.59 3.28 3.4 3.34 3.68 ...
根据文档 ?ts
:
...one could use a value of 7 for frequency when the data are sampled
daily, and the natural time period is a week, or 12 when the data are
sampled monthly and the natural time period is a year. Values of 4 and
12 are assumed in (e.g.) print methods to imply a quarterly and
monthly series respectively.
尝试设置 frequency = 7
。
stats
R 包中的 decompose()
函数将给定的时间序列分解为趋势、季节成分和提醒部分。季节性成分是一个严格的周期时间序列,周期的长度等于时间序列的frequency
。例如,如果您设置 frequency = m
,则 decompose()
函数构建分解,其中季节性成分的周期为 m。
如果 m 是整数,m > 1,并且时间序列的长度大于或等于 2[,则 decompose()
函数有效=22=]米。
帮助页面 ?decompose
指出时间序列应该 "covers an integer number of complete periods" 才能使函数正常运行。所以如果系列长度是 m.
的倍数可能会更好
你的数据没有明显的周期性。可能 this discussion 对您有用,因为它包含 Rob Hyndman 的 R 脚本来揭示系列中的周期性。
如果您每天都有数据,那么频率是一年 365 天 365,因为它包含一年的 365 个条目,正如频率定义所说的那样。
当您尝试使用以下方法分解时:
ts_0615391206_components <- decompose(ts_0615391206)
您遇到错误:
Error in decompose(ts_0615391206) :
time series has no or less than 2 periods
因为至少需要两个时间序列,即两年的数据来训练模型
否则会抛出错误
ts_06153912061 <- ts(ts_0615391206, start = c(1999,1), frequency = 365) for Daily
ts_06153912061 <- ts(ts_0615391206, start = c(1999,1), frequency = 52) for Weekly
ts_06153912061 <- ts(ts_0615391206, start = c(1999,1), frequency = 12) for Monthly
ts_06153912061 <- ts(ts_0615391206, start = c(1999,1), frequency = 4) for Quarterly
ts_06153912061 <- ts(ts_0615391206, start = c(1999,1), frequency = 1) for Yearly or Annually
我有一个时间序列数据集,其中包含 374 天的数据点(每天 1 个数据点)。我很难理解 ts 函数中的频率参数,所以我把它留空了:
ts_0615391206 <- ts(demand_rev_0615391206$estimated_demand,
start=as.Date(min(demand_rev_0615391206$date),format = "d%/m%/Y%"),
end=as.Date(max(demand_rev_0615391206$date),format = "d%/m%/Y%"),
#frequency = 1
)
plot.ts(ts_0615391206)
ts_0615391206_components <- decompose(ts_0615391206)
我遇到错误:
Error in decompose(ts_0615391206) :
time series has no or less than 2 periods
我如何决定我的数据中有多少周期以及参数 "frequency" 值应该是多少?
> dput(head(ts_0615391206))
c(2.71, 2.47, 3.86, 3.61, 5.78, 5.59)
>
> str(ts_0615391206)
Time-Series [1:194] from 16125 to 16318: 2.71 2.47 3.86 3.61 5.78 5.59 3.28 3.4 3.34 3.68 ...
根据文档 ?ts
:
...one could use a value of 7 for frequency when the data are sampled daily, and the natural time period is a week, or 12 when the data are sampled monthly and the natural time period is a year. Values of 4 and 12 are assumed in (e.g.) print methods to imply a quarterly and monthly series respectively.
尝试设置 frequency = 7
。
stats
R 包中的 decompose()
函数将给定的时间序列分解为趋势、季节成分和提醒部分。季节性成分是一个严格的周期时间序列,周期的长度等于时间序列的frequency
。例如,如果您设置 frequency = m
,则 decompose()
函数构建分解,其中季节性成分的周期为 m。
如果 m 是整数,m > 1,并且时间序列的长度大于或等于 2[,则 decompose()
函数有效=22=]米。
帮助页面 ?decompose
指出时间序列应该 "covers an integer number of complete periods" 才能使函数正常运行。所以如果系列长度是 m.
你的数据没有明显的周期性。可能 this discussion 对您有用,因为它包含 Rob Hyndman 的 R 脚本来揭示系列中的周期性。
如果您每天都有数据,那么频率是一年 365 天 365,因为它包含一年的 365 个条目,正如频率定义所说的那样。
当您尝试使用以下方法分解时:
ts_0615391206_components <- decompose(ts_0615391206)
您遇到错误:
Error in decompose(ts_0615391206) :
time series has no or less than 2 periods
因为至少需要两个时间序列,即两年的数据来训练模型 否则会抛出错误
ts_06153912061 <- ts(ts_0615391206, start = c(1999,1), frequency = 365) for Daily
ts_06153912061 <- ts(ts_0615391206, start = c(1999,1), frequency = 52) for Weekly
ts_06153912061 <- ts(ts_0615391206, start = c(1999,1), frequency = 12) for Monthly
ts_06153912061 <- ts(ts_0615391206, start = c(1999,1), frequency = 4) for Quarterly
ts_06153912061 <- ts(ts_0615391206, start = c(1999,1), frequency = 1) for Yearly or Annually