簡體   English   中英

為什么在 R 中分解時間序列的 stl 函數不起作用?

[英]Why stl function for decomposing time series in R is not workig?

我收集了這些數據(80 行),並嘗試使用stl()來分解這個時間序列:

    V1
1  6069
2  5989
3  5882
4  5875
5  6263
6  6168
7  6209
8  5171
9  5938
10 6296
11 6314
12 6003
13 5923
14 4389
15 4985
16 6273
17 5438
18 5126
19 6571
20 6783
21 7093
22 5010
23 7683
24 7233
25 6758
26 7356
27 7437
28 7520
29 7444
30 7466
31 7673
32 7945
33 8782
34 8245
35 8369
36 7750
37 7649
38 7187
39 6949
40 7520
41 6912
42 7983
43 7406
44 8361
45 6500
46 8224
47 8985
48 7663
49 8785
50 6251
51 8453
52 8515
53 7698
54 8833
55 8991
56 8583
57 8865
58 8689
59 6276
60 8141
61 8060
62 8966
63 8233
64 6526
65 7561
66 8160
67 7622
68 7976
69 7619
70 7810
71 7674
72 6784
73 4910
74 6999
75 6665
76 6604
77 5767
78 6691
79 6163
80 2258

為了分解時間序列,我嘗試使用stl() ,它應該與類ts對象一起使用:

myts <- read.table(file="clipboard", header=FALSE)
myts <- ts(myts, frequency=4)
stl(myts, "periodic")

但是,無論我做什么,我都會收到此錯誤(例如:在調用ts函數時設置frequency=1或僅使用ts而沒有比我的數據更進一步的參數:

Error in stl(myts, "periodic") : only univariate series are allowed

我不知道我做錯了什么,因為我在網上找到的所有示例都具有相同的結構。 任何幫助將不勝感激。

假設您的數據是矩陣,這是ts的問題。 您需要指定正在使用的變量。 這應該有效:

x <-
  "V1
1  6069
2  5989
3  5882
4  5875
5  6263
6  6168
7  6209
8  5171
9  5938
10 6296
11 6314
12 6003
13 5923
14 4389
15 4985"
y <- read.table(text = x, header = TRUE)
myts <- ts(y, frequency = 4)
stl(myts[, 1], "periodic")

問題在這里討論。

暫無
暫無

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

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