Làm thế nào để mô tả sự thay đổi đột ngột?


13

Câu hỏi này có thể quá cơ bản. Đối với xu hướng tạm thời của dữ liệu, tôi muốn tìm hiểu điểm xảy ra thay đổi "đột ngột". Ví dụ, trong hình đầu tiên được hiển thị bên dưới, tôi muốn tìm ra điểm thay đổi bằng một số phương pháp thống kê. Và tôi muốn áp dụng phương pháp như vậy trong một số dữ liệu khác trong đó điểm thay đổi không rõ ràng (như hình 2). Vậy có phương pháp chung nào cho mục đích đó không?

nhập mô tả hình ảnh ở đây

nhập mô tả hình ảnh ở đây


2
Thuật ngữ "bước ngoặt" có một ý nghĩa đặc biệt mà tôi không nghĩ là áp dụng cho sự thay đổi đột ngột về cấp độ (cho dù lên hay xuống). Bạn cũng sử dụng cụm từ 'thay đổi điểm' và tôi nghĩ đó có lẽ là một lựa chọn tốt hơn. Xin đừng nghĩ rằng điều này là 'quá cơ bản'; ngay cả những câu hỏi cơ bản cũng được chào đón mà không cần lời xin lỗi và câu hỏi này không phải là cơ bản từ xa.
Glen_b -Reinstate Monica

Cảm ơn. Tôi đã thay đổi 'bước ngoặt' thành 'điểm thay đổi' trong câu hỏi.
dùng2249501

Câu trả lời:


11

Nếu các quan sát về dữ liệu chuỗi thời gian của bạn tương quan với các quan sát trước đó ngay lập tức, bài báo của Chen và Liu (1993) có thể khiến bạn quan tâm. Nó mô tả một phương pháp để phát hiện sự thay đổi mức độ và những thay đổi tạm thời trong khuôn khổ của các mô hình chuỗi thời gian trung bình di chuyển tự phát.[1]

[1]: Chen, C. và Liu, LM. (1993),
"Ước tính chung về các thông số mô hình và các tác động ngoại lai trong chuỗi thời gian",
Tạp chí của Hiệp hội thống kê Hoa Kỳ , 88 : 421, 284-297


+1 Tôi đã cố gắng (nhưng không thành công) để nhớ đủ về bài viết này để xác định vị trí của nó. Đó là một tài liệu tham khảo tốt.
Glen_b -Reinstate Monica

6

Vấn đề này trong Thống kê được gọi là Phát hiện sự kiện tạm thời (đơn biến). Ý tưởng đơn giản nhất là sử dụng trung bình động và độ lệch chuẩn. Bất kỳ việc đọc nào "ngoài" độ lệch 3 tiêu chuẩn (quy tắc ngón tay cái) đều được coi là "sự kiện". Tất nhiên, có những mô hình tiên tiến hơn sử dụng HMM hoặc Regression. Dưới đây là một tổng quan giới thiệu về lĩnh vực này .


5
Đây là bài đăng duy nhất có thể truy cập công khai trên toàn bộ Web để bao gồm cụm từ "Phát hiện sự kiện tạm thời đơn nhất"! Nguồn của bạn cho thuật ngữ này là gì?
whuber

Xin lỗi nếu nó khó hiểu. Phát hiện sự kiện là một thuật ngữ phổ biến hơn và đôi khi Temporal được sử dụng riêng. Univariate không được sử dụng phổ biến vì các cách tiếp cận thường là đa biến, nhưng đó là trường hợp đặc biệt của anh ấy.
user1669710

1
đã chỉnh sửa câu trả lời để kết hợp nhận xét của bạn @whuber
user1669710

@ ser1669710 Cảm ơn. Đây là những gì tôi đang tìm kiếm. Có vẻ như di chuyển trung bình không thể giải quyết vấn đề của tôi. Tôi cần nhìn vào mô hình phức tạp hơn.
dùng2249501

Tôi muốn tìm hiểu thêm về phát hiện sự kiện tạm thời này. Các slide bạn đăng là tốt, nhưng tôi đã tự hỏi nếu bạn có liên kết đến một bài đánh giá mô tả lĩnh vực chính thức hơn một chút?
aaragon

1

Ji={0x<xi1xxi
x1<x2<<xmJiJaprilJdecemberxi

J1J2x1x2


1
PS - @ user1669710 và tôi đã đăng câu trả lời cùng một lúc. Tôi đã bỏ phiếu cho cái đó vì nó rõ ràng được nghiên cứu tốt hơn. Nhưng tôi để nó ở đây vì nó là một giải pháp thay thế hoạt động và dễ thực hiện.
Russ Lenth

1
Bởi vì nó sử dụng hồi quy từng bước và sử dụng nhiều biến số ứng viên, quy trình này có vẻ đáng ngờ. Nó đã được nghiên cứu ở đâu và nó có những tính chất gì? Làm thế nào để nó so sánh với khác changepoint phương pháp?
whuber

@whuber, quan điểm của tôi chính xác. Đó là lý do tại sao tôi bỏ phiếu cho câu trả lời khác. Sẽ không so sánh quá thuận lợi nếu bạn có một tập hợp các giá trị thay đổi rất chi tiết. Và nó thậm chí có thể không so sánh thuận lợi khác. Tôi chỉ đưa nó ra như một phương pháp đặc biệt , và tôi nghĩ rằng tôi đã trình bày nó như vậy. Nhưng tôi nghĩ một phương pháp như thế này hứa hẹn sẽ là một cách tốt để có được các giá trị bắt đầu cho phương pháp phi tuyến.
Russ Lenth

Các ý tưởng nền tảng cho một số trong những phương pháp hiệu quả hơn changepoint tôi đã tìm thấy, nhưng việc sử dụng hồi quy từng bước trong làm cho riêng tôi nghi ngờ (mặc dù tôi không chắc chắn) rằng phương pháp này có thể thất bại thậm chí để tạo ra điểm khởi đầu hợp lý cho các phương pháp khác để cải thiện. Đó là lý do tại sao tôi tò mò liệu nó thậm chí đã được nghiên cứu.
whuber

Tôi nghĩ rằng sẽ có một vài vấn đề với việc lựa chọn tất cả các tập hợp con, miễn là thực sự có một số lần nhảy cụ thể (giả sử là hai), vì chúng ta sẽ tìm thấy hai lần nhảy giải thích tốt nhất dữ liệu. Các phương pháp lựa chọn khác có thể có vấn đề, giống như trong các tình huống khác. Tôi nghĩ nó phụ thuộc vào tầm quan trọng của việc có được câu trả lời tốt nhất, so với câu trả lời hay, so với câu trả lời nhanh. Không phải tất cả các vấn đề đều giống nhau, cũng không phải tất cả khách hàng. Câu trả lời tốt nhất trên thế giới là một thất bại hoàn toàn nếu bạn không thể giải thích nó.
Russ Lenth

1

Có một vấn đề liên quan là chia một chuỗi hoặc chuỗi thành các phép thuật với các giá trị không đổi lý tưởng. Xem Làm thế nào tôi có thể nhóm dữ liệu số thành "dấu ngoặc" tự nhiên? (ví dụ: thu nhập)

Đây không phải là vấn đề hoàn toàn giống như câu hỏi không loại trừ các phép thuật có tốc độ trôi chậm theo bất kỳ hoặc tất cả các hướng, nhưng không có thay đổi đột ngột.

Một câu trả lời trực tiếp hơn là nói rằng chúng tôi đang tìm kiếm những bước nhảy lớn, vì vậy vấn đề thực sự duy nhất là xác định bước nhảy. Ý tưởng đầu tiên sau đó chỉ là xem xét sự khác biệt đầu tiên giữa các giá trị lân cận. Thậm chí không rõ ràng rằng bạn cần phải tinh chỉnh rằng bằng cách loại bỏ tiếng ồn trước, vì nếu các bước nhảy không thể phân biệt được với sự khác biệt về tiếng ồn, chúng chắc chắn không thể đột ngột. Mặt khác, người hỏi rõ ràng muốn thay đổi đột ngột bao gồm thay đổi lan man cũng như thay đổi từng bước, do đó, một số tiêu chí như phương sai hoặc phạm vi trong các cửa sổ có độ dài cố định dường như được yêu cầu.


1

Khu vực thống kê mà bạn đang tìm kiếm là phân tích changepoint. Có một trang web ở đây sẽ cung cấp cho bạn một cái nhìn tổng quan về khu vực và cũng có một trang cho phần mềm.

Nếu bạn là Rngười dùng thì tôi muốn giới thiệu changepointgói cho các thay đổi về trung bình và strucchangegói cho các thay đổi trong hồi quy. Nếu bạn muốn trở thành Bayesian thì bcpgói cũng tốt.

Nói chung, bạn phải chọn một ngưỡng cho biết mức độ mạnh mẽ của những thay đổi bạn đang tìm kiếm. Tất nhiên, có những lựa chọn ngưỡng mà mọi người ủng hộ trong một số tình huống nhất định và bạn có thể sử dụng mức độ tự tin không có triệu chứng hoặc bootstrapping để có được sự tự tin.


1
OP đã xác định hai ví dụ, một trong số đó tôi sẽ gọi một bước và đoạn kia là đoạn đường nối, mặc dù luôn có phạm vi để tranh luận về các từ. Xem thêm câu trả lời của tôi ở đây. Làm thế nào để các phương pháp đối phó với dốc? Họ có một mô hình ngầm hoặc rõ ràng của bước thay đổi?
Nick Cox

Cảm ơn câu hỏi Nick. Nói chung, nó phụ thuộc vào độ dài của đoạn đường nối. Nếu đó là đoạn đường nối ngắn thì nó được coi là 1 thay đổi, nếu đoạn đường nối dài hơn thì thường các phương thức thay đổi sẽ xác định 2 thay đổi, 1 ở đầu đoạn đường nối và 1 ở cuối đoạn đường nối. Rõ ràng điều này không phụ thuộc vào mô hình cơ bản mà bạn giả định.
adunaic

1

Vấn đề suy luận này có nhiều tên, bao gồm điểm thay đổi, điểm chuyển đổi, điểm ngắt, hồi quy đường gãy, hồi quy thanh gãy, hồi quy song tuyến, hồi quy tuyến tính piecewise, hồi quy tuyến tính cục bộ, hồi quy phân đoạn và mô hình gián đoạn.

Dưới đây là tổng quan về các gói điểm thay đổi với ưu / nhược điểm và ví dụ hoạt động. Nếu bạn biết số lượng điểm thay đổi một ưu tiên, hãy kiểm tra mcpgói. Đầu tiên, hãy mô phỏng dữ liệu:

df = data.frame(x = seq(1, 12, by = 0.1))
df$y = c(rnorm(21, 0, 5), rnorm(80, 180, 5), rnorm(10, 20, 5))

Đối với vấn đề đầu tiên của bạn, đó là ba phân đoạn chỉ chặn:

model = list(
  y ~ 1,  # Intercept
  ~ 1,  # etc...
  ~ 1
)
library(mcp)
fit = mcp(model, df, par_x = "x")

Chúng ta có thể vẽ sơ đồ phù hợp với kết quả:

plot(fit)

nhập mô tả hình ảnh ở đây

Ở đây, các điểm thay đổi được xác định rất rõ (hẹp). Hãy tóm tắt sự phù hợp để xem các vị trí được suy luận của họ ( cp_1cp_2):

summary(fit)

Family: gaussian(link = 'identity')
Iterations: 9000 from 3 chains.
Segments:
  1: y ~ 1
  2: y ~ 1 ~ 1
  3: y ~ 1 ~ 1

Population-level parameters:
    name   mean lower upper Rhat n.eff
    cp_1   3.05   3.0   3.1    1  6445
    cp_2  11.05  11.0  11.1    1  6401
   int_1   0.14  -1.9   2.1    1  5979
   int_2 179.86 178.8 180.9    1  6659
   int_3  22.76  19.8  25.5    1  5906
 sigma_1   4.68   4.1   5.3    1  5282

Bạn có thể thực hiện các mô hình phức tạp hơn nhiều mcp, bao gồm mô hình tự động theo thứ tự Nth (hữu ích cho chuỗi thời gian), v.v. Tuyên bố miễn trừ trách nhiệm: Tôi là nhà phát triển mcp.

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.