簡體   English   中英

每日時間序列分析

[英]Daily Time Series Analysis

我有一個有關產品銷售的每日時間序列,我的序列從2016年1月1日開始到2017年8月31日,我的問題是我不知道應該使用哪個頻率值,因為這是一個六天的一周(我的一周從星期一開始,到星期六結束),沒有星期日的數據。

應該是這樣嗎?

myts <- ts(sales, start=c(2016, 1), frequency=6)

謝謝你的幫助 !!

ts希望您具有時間序列中每個元素的值,即,希望您在數據中具有第七天的值。

一種選擇是擴展日期索引以包括您丟失的觀察值。 您可以使用na.approxna來填充那些缺失的觀測值,但是您不能給ts六天的工作周,並希望它能將其理解為一個七天的周期。

做到這一點的一種好方法是看zoo ,它具有處理這類情況的特定功能。

這實際上取決於您要對數據執行的操作。

1)例如, 繪制 ,如果您的目標只是繪制它,則"ts"類不合適,因為它不擅長表示日期。 請改用此方法,我們在末尾的注釋中定義了salestt測試向量。

library(zoo)
z <- zoo(sales, tt)
plot(z)

2)acf如果要計算自相關函數,則可以使用純向量salests(sales)

acf(sales)

3)StructTS如果要使用StructTS擬合結構時間序列,則需要確定一個周期的長度,即每周重復一次嗎? 25美分硬幣? 年?。 通常情況下,一個年度周期適合銷售,但是總的來說,您將需要兩個完整的周期才能執行任何操作,因此您實際上沒有足夠的數據來執行此操作。

4)每月/每季度如果您願意將其簡化為每月或每季度數據,則可以使用ts但您每月只有20點,每季度只有7點。 在這里,我們使用了每個月的最后一點:

library(zoo)

z <- zoo(sales, tt)
zm <- aggregate(z, as.yearmon, tail, 1) 
tsm <- as.ts(zm)
tsm

贈送:

          Jan      Feb      Mar      Apr      May      Jun      Jul      Aug
2016 3.258097 3.931826 4.356709 4.644391 4.867534 5.049856 5.204007 5.342334
2017 5.828946 5.897154 5.968708 6.030685 6.093570 6.150603 6.204558 6.257668
          Sep      Oct      Nov      Dec
2016 5.459586 5.564520 5.659482 5.749393
2017                                    

5)每周您可以考慮的另一件事是僅通過使用星期六使用每周系列,例如:

library(zoo)
z <- zoo(sales, tt)
zw <- z[weekdays(time(z)) == "Saturday"]

注意:我們使用了以下虛擬數據:

set.seed(123)
tt <- seq(as.Date("2016-01-01"), as.Date("2017-08-31"), "day")
tt <- tt[! weekdays(tt) == "Sunday"]
n <- length(tt)
sales <- log(1:n)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM