R phát hiện xu hướng tăng / giảm của chuỗi thời gian


9

Tôi có rất nhiều chuỗi thời gian với các khoảng thời gian: ngày, tuần hoặc tháng. Với stl()chức năng hoặc với loess(x ~ y)tôi có thể thấy xu hướng của chuỗi thời gian cụ thể trông như thế nào. Tôi cần phát hiện xem xu hướng của chuỗi thời gian đang tăng hay giảm. Làm thế nào tôi có thể quản lý điều đó?

Tôi đã cố gắng tính các hệ số hồi quy tuyến tính với lm(x ~ y)và chơi với hệ số dốc. ( If |slope|>2 and slope>0 thenxu hướng tăng, else if |slope|>2 and slope<0- giảm). Có lẽ có một phương pháp khác và hiệu quả hơn để phát hiện xu hướng? Cảm ơn bạn!

Ví dụ: tôi có timeserie1, timeserie2. Tôi cần một thuật toán đơn giản sẽ cho tôi biết đó timeserie2là thuật toán tăng và trong đó timeserie1, xu hướng không tăng hay giảm. Tôi nên sử dụng tiêu chí nào?

timeserie1:

1774 1706 1288 1276 2350 1821 1712 1654 1680 1451 1275 2140 1747 1749 1770 1797 1485 1299 2330 1822
1627 1847 1797 1452 1328 2363 1998 1864 2088 2084  594  884 1968 1858 1640 1823 1938 1490 1312 2312
1937 1617 1643 1468 1381 1276 2228 1756 1465 1716 1601 1340 1192 2231 1768 1623 1444 1575 1375 1267
2475 1630 1505 1810 1601 1123 1324 2245 1844 1613 1710 1546 1290 1366 2427 1783 1588 1505 1398 1226
1321 2299 1047 1735 1633 1508 1323 1317 2323 1826 1615 1750 1572 1273 1365 2373 2074 1809 1889 1521
1314 1512 2462 1836 1750 1808 1585 1387 1428 2176 1732 1752 1665 1425 1028 1194 2159 1840 1684 1711
1653 1360 1422 2328 1798 1723 1827 1499 1289 1476 2219 1824 1606 1627 1459 1324 1354 2150 1728 1743
1697 1511 1285 1426 2076 1792 1519 1478 1191 1122 1241 2105 1818 1599 1663 1319 1219 1452 2091 1771
1710 2000 1518 1479 1586 1848 2113 1648 1542 1220 1299 1452 2290 1944 1701 1709 1462 1312 1365 2326
1971 1709 1700 1687 1493 1523 2382 1938 1658 1713 1525 1413 1363 2349 1923 1726 1862 1686 1534 1280
2233 1733 1520 1537 1569 1367 1129 2024 1645 1510 1469 1533 1281 1212 2099 1769 1684 1842 1654 1369
1353 2415 1948 1841 1928 1790 1547 1465 2260 1895 1700 1838 1614 1528 1268 2192 1705 1494 1697 1588
1324 1193 2049 1672 1801 1487 1319 1289 1302 2316 1945 1771 2027 2053 1639 1372 2198 1692 1546 1809
1787 1360 1182 2157 1690 1494 1731 1633 1299 1291 2164 1667 1535 1822 1813 1510 1396 2308 2110 2128
2316 2249 1789 1886 2463 2257 2212 2608 2284 2034 1996 2686 2459 2340 2383 2507 2304 2740 1869  654
1068 1720 1904 1666 1877 2100  504 1482 1686 1707 1306 1417 2135 1787 1675 1934 1931 1456 1363 2027
1740 1544 1727 1620 1232 1199

timeserie2:

 122  155  124   97  155  134  115  122  162  115  102  163  135  120  139  160  126  122  169  154
 121  134  143  100  121  182  139  145  135  147   60   58  153  145  130  126  143  129   98  171
 145  107  133  115  113   96  175  128  106  117  124  107  114  172  143  111  104  132  110   80
 159  131  113  123  123  104  101  179  127  105  133  127  101   97  164  134  124   90  110  102
  90  186   79  145  130  115   79  104  191  137  114  131  109   95  119  173  158  137  128  119
 109  120  182  140  133  113  121  110  122  159  129  124  119  109  108   95  167  138  125  105
 139  118  115  166  140  112  116  139  121  109  164  135  118  121  112  111  102  169  136  151
 132  135  130  112  156  134  121  116  114   91   86  141  160  116  118  112   84  114  165  141
 109  123  122  110  100  162  145  121  118  115  107  103  162  142  130  139  134  121  118  164
 147  125  120  134  107  130  158  141  144  148  124  135  118  212  178  154  167  155  176  143
 201  170  144  138  152  136  123  223  189  160  153  190  136  144  276  213  199  211  196  170
 179  460  480  499  550  518  493  557  768  685  637  593  507  611  569  741  635  563  577  498
 456  446  677  552  515  441  438  462  530  699  629  555  641  625  544  585  705  584  553  622
 506  500  533  777  598  541  532  513  434  510  714  631 1087 1249 1102  913  888 1147 1056 1073
1075 1136  927  922 1066 1074  996 1189 1062  999  974 1174 1097 1055 1053 1097 1065 1171  843  441
 552  779  883  773  759  890  404  729  703  810  743  743  946  883  813  876  841  742  715  960
 862  743  806  732  669  621

1
Ví dụ thứ hai của bạn không có xu hướng vì vậy bạn không nên phát hiện ra một xu hướng. Ở giai đoạn 230, dữ liệu có sự thay đổi mức (tức là 0,0,0,0,0,1,1,1,1,1,1, v.v.) khác với xu hướng. Ngoài ra, có một sự thay đổi về phương sai ở khoảng 200 có thể được xác định bằng cách sử dụng thử nghiệm Tsay. Xem thêm ở đây www.unc.edu/~jbhill/tsay.pdf
Tom Reilly

2
@Tom Có, những gì bạn nói là rõ ràng trong một âm mưu của dữ liệu. (Thật vậy, một cốt truyện cho thấy ba sự thay đổi cấp độ đột ngột riêng biệt, không chỉ một). Nhưng việc mô tả đặc điểm này khác với "xu hướng" không công bằng với phân tích của bạn, mà tôi biết sẽ tiết lộ chi tiết tinh tế trong hành vi của chuỗi thời gian này. Tôi muốn đề xuất OP sẽ được phục vụ tốt hơn bằng cách mô tả rõ ràng hành vi dữ liệu thay vì thảo luận về các định nghĩa có thể có về "xu hướng". Cô yêu cầu một sự thay thế để thử nghiệm một hình vuông có độ dốc nhất - và đó là một de facto dấu hiệu cho thấy những gì có nghĩa là bằng cách "xu hướng."
whuber

Câu trả lời:


7

Bạn có thể áp dụng bộ lọc shifter zero pha và cắt bỏ tất cả các tần số cao hơn ngưỡng nào đó; điều này sẽ cung cấp cho bạn một "xu hướng" của các loại.

Ví dụ: xem câu hỏi này, " Làm cách nào để tôi chạy bộ lọc thông cao hoặc thông thấp trên các điểm dữ liệu trong R? " Chúng cho biết cách sử dụng bộ lọc thông thấp Butterworth. Vấn đề với bộ lọc đó là nó không phải là dịch pha 0, tức là khi bạn thấy pha của thành phần tần số thấp bị dịch chuyển so với tín hiệu ban đầu. Bạn có thể muốn tìm bộ lọc không dịch pha. Nếu đây là dữ liệu kinh tế, tôi sẽ đề xuất bộ lọc của Christiano theo "Bộ lọc thông dải" của Lawrence J. Christiano và Terry J. Fitzgerald (1999). Đối với dữ liệu vật lý, phải có sẵn một tấn bộ lọc dịch pha 0.

CẬP NHẬT:

Đây là một ví dụ về việc áp dụng bộ lọc thông dải thấp cho LOG của chuỗi thời gian thứ hai. LOG được yêu cầu để thậm chí ra phương sai.

CẬP NHẬT2:

Đây là một phân tách mẫu trong miền tần số với các dải tần số: không đều [2-19], theo chu kỳ [20-99] và xu hướng [100- ] (theo độ dài thời gian). Các dải tần số phải được lựa chọn cẩn thận dựa trên sự hiểu biết về hiện tượng cơ bản.


1
Tôi đã bối rối với câu trả lời này một lúc và cuối cùng nhận ra rằng bạn phải sử dụng từ "xu hướng" theo cách tương tự như nhiều nhà thống kê sẽ sử dụng "trơn tru". Sau đó, tất cả có ý nghĩa. Chúng ta nên hy vọng OP sẽ sớm làm rõ những gì cô ấy có nghĩa là "xu hướng".
whuber

vâng, tôi đang sử dụng "xu hướng" như ý nghĩa phân rã chuỗi thời gian: y = xu hướng + chu kỳ + theo mùa + không đều, ví dụ en.wikipedia.org/wiki/Decysis_of_time_series xu hướng sẽ là một thành phần tần số "rất thấp" trong bối cảnh này . mức độ thấp phụ thuộc vào vấn đề
Aksakal

1
Nó không hoàn toàn có vẻ như vậy. Khi bạn lọc ra các thành phần tần số cao, bạn sẽ loại bỏ một số phần "không đều" (đọc: tiếng ồn) và có lẽ là một phần rất nhỏ của phần chu kỳ, nhưng xu hướng, các thành phần chu kỳ trung và dài hạn và các thành phần theo mùa tất cả sẽ vẫn còn.
whuber

1
cho một xu hướng bạn sẽ sử dụng bộ lọc thông dải thấp. giả sử bạn có vài năm chuỗi dữ liệu hàng tháng. trong trường hợp này, dải tần thấp có thể là chu kỳ 10 năm, vì vậy bạn cắt bỏ tất cả các tần số cao hơn 1/10 (khi thời gian tính bằng năm). Ngưỡng thực sự phụ thuộc vào hiện tượng, trong dữ liệu kinh tế, chu kỳ kinh doanh có thể kéo dài 10 - 15 năm, do đó bạn có thể cần đặt dải tần thấp thành 1/16
Aksakal

1
Như minh họa mới của bạn cho thấy, khi bạn quá tích cực trong việc lọc, bạn cũng sẽ mất các xu hướng rõ ràng: sự mượt mà của bạn rất mạnh đến nỗi nó bỏ lỡ gần như tất cả một phần ba dữ liệu cuối cùng. Bất kể, điều này chắc chắn không phải là một sự phân rã thành các thành phần công chứng định tính được mô tả bởi bài viết Wikipedia mà bạn tham khảo. Một mối quan tâm khác với phương pháp lọc (tuy nhiên nó được tiến hành) là vấn đề thống kê: làm thế nào để bạn kiểm tra xem có "xu hướng" hay không và liệu nó có tăng hay giảm?
whuber

3

Phát hiện xu hướng trong một chuỗi thời gian có thể được thực hiện đơn giản là sai hoặc tích cực hơn. Một chuỗi có thể có các giá trị thể hiện xu hướng, ví dụ 1,2,3,4,5, và sau đó thay đổi xu hướng tại một hoặc nhiều thời điểm, ví dụ 7,9,11,13,15,...Một ví dụ khác là 1,1,1,1,1,2,3,4,5,6không có xu hướng nào trong 5 lần đọc đầu tiên, và sau đó xu hướng xảy ra. Một loạt như 1,1,1,1,1,2,2,2,2,2được cho là có một sự thay đổi cấp độ (thay đổi trong đánh chặn). AUTOBOXlà một phần mềm duy nhất (theo hiểu biết của tôi) kết hợp phân tích để phát hiện, kiểm tra và kết hợp xu hướng thời gian. Tôi là một trong những nhà phát triển và mở rộng các phân tích trong lĩnh vực cụ thể này. Quy trình mà bạn đang cố gắng sử dụng (không chính xác theo ý kiến ​​của tôi) là mô hình giả định, tức là không có xung, không thay đổi mức, không có xung theo mùa, không có cấu trúc ARIMA, phương sai lỗi không đổi, v.v. sử dụng , như một lần nữa, người ta đang giả định một cấu trúc cụ thể.[1B]y(t)=θ0+[MA/AR]a(t)

Ý tưởng ở đây là mô hình ARIMA có thể không chính xác hoặc đang thay đổi (do đó các xu hướng khác nhau) tại các thời điểm khác nhau.θ0

Toàn bộ ý tưởng là để dữ liệu "nói" và phân tích "lắng nghe" và phát hiện "mô hình chính xác" hoặc ít nhất là "mô hình hữu ích".

Orson Bean - hoặc có thể là ai đó - đã từng nói, Xu hướng là xu hướng của Lôi cho đến khi nó uốn cong, và khi xu hướng uốn cong, xu hướng đã chấm dứt. "Xu hướng thời gian địa phương trong chuỗi thời gian yêu cầu xác định các điểm dừng và sau đó ước tính xu hướng cục bộ. Một số tài liệu / tài liệu tham khảo hữu ích có thể được tìm thấy tại http://www.autobox.com/OLDweB/udontsay.html

Nếu bạn muốn đăng một số dữ liệu, xin vui lòng làm như vậy, và tôi sẽ gửi một số kết quả lại cho bạn.


3
Xu hướng là xu hướng là xu hướng \ Nhưng câu hỏi đặt ra là nó có bị bẻ cong không? \ Liệu nó có làm thay đổi hướng đi của nó \ Thông qua một số lực lượng không lường trước được \ Và đi đến kết thúc sớm? Alexander Cairncross
Nick Cox

Cảm ơn bạn đã trả lời. Tôi sẽ nghiên cứu thông tin của bạn. Tôi cũng đã đăng một số dữ liệu.
Jurgita

1
Trong trường hợp đó, Marta, có vẻ như bạn đang thử nghiệm một "xu hướng" toàn cầu (theo nghĩa khác biệt về các giá trị tiêu biểu giữa hai đầu của chuỗi thời gian) và không phải là xu hướng cục bộ như được mô tả trong câu trả lời này. Đúng không?
whuber

1
@Nick Cảm ơn bạn! Bởi vì phải mất một số nỗ lực để săn lùng nguồn, ở đây là: Dự báo kinh tế , Địa chỉ của Tổng thống cho Hiệp hội Kinh tế Hoàng gia, ngày 3 tháng 7 năm 1969 . Cairncross đã mở đầu bài phát biểu của mình bằng một trích dẫn của Lincoln, theo sau là chiếc limerick nguyên bản này (được gán cho một cách ngẫu nhiên là "Stein Age Forecaster"). Những nhận xét tiếp theo cho thấy rõ rằng ông đang đề cập đến dự báo - ngoại suy các xu hướng.
whuber

1
@whuber, bạn nói đúng, tôi đang tìm kiếm xu hướng toàn cầu. Xin lỗi nếu câu hỏi của tôi là sai lệch.
Jurgita
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.