一部の予算データの時系列オブジェクトを処理するのに非常に苦労しています。
元のデータは、約 1800 の契約の 14,460 行の支払いで、各行には DD/MM/YYYY および Amount 機能があります。2000 年 1 月 1 日から 2014 年 12 月 31 日までの間に 5296 日ありますが、実際に支払いがあったのはそのうちの 3133 日だけです。したがって、日数は不規則で、複数の契約支払いが表示される日もあれば、支払いがゼロになる日もあります。
私が抱えている主な問題は、これらの時系列オブジェクトが、不規則な間隔で発生する毎日のデータが供給されるときに示す残忍な頑固さです。私は支払いを連続した日付ベクトルにマージしましたが、まだ同じ問題、つまり頻度、周期性、または order.by を抱えています。
CTS_date_V <- data.frame(Date = seq(as.Date("2000/07/01"), as.Date("2014/12/31"), "days"))
exp_d <- merge(exp, CTS_date_V, by="Date", all.y = T)
exp_d$Amount[is.na(exp_d$Amount)] <- 0
head(exp_d[,c("Amount","Date")],20)
Amount Date
1 0.0 2000-07-01
2 0.0 2000-07-02
3 0.0 2000-07-03
4 0.0 2000-07-04
5 269909.4 2000-07-05
6 130021.9 2000-07-06
7 1454135.3 2000-07-06
8 140065.5 2000-07-07
9 0.0 2000-07-08
10 0.0 2000-07-09
11 0.0 2000-07-10
12 274147.2 2000-07-11
13 106959.2 2000-07-11
14 119208.6 2000-07-12
15 0.0 2000-07-13
16 0.0 2000-07-14
17 0.0 2000-07-15
18 125402.5 2000-07-16
19 1170603.1 2000-07-16
20 1908463.3 2000-07-16
fpp、予測、timeSeries、tseries、xts など、私がよく知っているほとんどの予測パッケージ (および SO でこれまでに尋ねられた質問のすべて) では、はるかに整然とした日付機能が必要ですorder.by
。他のそのような懸念。
私の懸念は、統計手法ではなく、R パッケージの妥当性です。たとえば、XTS、TS など、予測パッケージに必要な時系列オブジェクトを構築するいくつかの異なる方法を試しましたが、それらのすべてに頻度、周期性、または順序を求めている問題があります。 .
アップデート:
xts オブジェクトをビルドします
exp_xts <- xts(exp_d$Amount, start = min(exp$Date), end = max(exp$Date), order.by=exp_d$Date, colnames = "Amount", frequency = "")
head(exp_xts,15)
[,1]
2000-07-01 0.0
2000-07-02 0.0
2000-07-03 0.0
2000-07-04 0.0
2000-07-05 269909.4
2000-07-06 130021.9
2000-07-06 1454135.3
2000-07-07 140065.5
2000-07-08 0.0
2000-07-09 0.0
2000-07-10 0.0
2000-07-11 274147.2
2000-07-11 106959.2
2000-07-12 119208.6
2000-07-13 0.0
問題なく、そのオブジェクトをplot.xts()
編集できますが、試してみると
fit_xts <- stl(exp_xts, s.window="periodic",robust = T)
は言う
Error in if (frequency > 1 && abs(frequency - round(frequency)) < ts.eps) frequency <- round(frequency) : missing value where TRUE/FALSE needed`