Chuỗi thời gian cho dữ liệu đếm, với số lượng <20


23

Gần đây tôi bắt đầu làm việc cho một phòng khám bệnh lao. Chúng tôi gặp nhau định kỳ để thảo luận về số lượng các trường hợp mắc bệnh lao mà chúng tôi hiện đang điều trị, số lượng xét nghiệm được quản lý, v.v. Tôi muốn bắt đầu mô hình hóa các số đếm này để chúng tôi không chỉ đoán xem có điều gì bất thường hay không. Thật không may, tôi đã được đào tạo rất ít trong chuỗi thời gian và hầu hết sự tiếp xúc của tôi là các mô hình cho dữ liệu rất liên tục (giá cổ phiếu) hoặc số lượng rất lớn (cúm). Nhưng chúng tôi xử lý 0-18 trường hợp mỗi tháng (có nghĩa là 6,68, trung vị 7, var 12.3), được phân phối như thế này:

[hình ảnh bị mất theo thời gian]

[hình ảnh ăn bởi một grue]

Tôi đã tìm thấy một vài bài viết đề cập đến các mô hình như thế này, nhưng tôi đánh giá rất cao ý kiến ​​của bạn - cả về cách tiếp cận và gói R mà tôi có thể sử dụng để thực hiện các phương pháp đó.

CHỈNH SỬA: Câu trả lời của mbq đã buộc tôi phải suy nghĩ kỹ hơn về những gì tôi đang hỏi ở đây; Tôi đã quá nôn nao về số lượng hàng tháng và mất trọng tâm thực sự của câu hỏi. Điều tôi muốn biết là: sự suy giảm (khá rõ ràng) từ năm 2008 trở đi có phản ánh xu hướng giảm trong tổng số các trường hợp không? Có vẻ như số lượng các trường hợp hàng tháng từ 2001-2007 phản ánh một quá trình ổn định; có thể một số thời vụ, nhưng tổng thể ổn định. Từ năm 2008 đến nay, có vẻ như quá trình đó đang thay đổi: tổng số trường hợp đang giảm dần, mặc dù số lượng hàng tháng có thể chao đảo lên xuống do tính ngẫu nhiên và thời vụ. Làm cách nào để kiểm tra xem có thay đổi thực sự trong quy trình không? Và nếu tôi có thể xác định một sự suy giảm,


2
Các liên kết đã chết. Nếu bạn có thể giữ hình ảnh (hoặc tạo lại chúng), vui lòng sử dụng hệ thống mới lưu trữ chúng tại imgur.
Glen_b -Reinstate Monica

Thật không may, những mảnh đất này là từ một vài công việc trước đây. Xin lỗi!
Matt Parker

1
Với bài đăng này (# 173) là từ cách trở lại khi trang web đang ở giai đoạn thử nghiệm, điều đó không có gì đáng ngạc nhiên - rất ít người có thể làm lại một âm mưu từ các bài đăng trở lại cho đến thời điểm này. Dù sao cũng cảm ơn bạn.
Glen_b -Reinstate Monica

Câu trả lời:


15

Để đánh giá xu hướng lịch sử, tôi sẽ sử dụng một trò chơi có xu hướng và các thành phần theo mùa. Ví dụ

require(mgcv)
require(forecast)
x <- ts(rpois(100,1+sin(seq(0,3*pi,l=100))),f=12)
tt <- 1:100
season <- seasonaldummy(x)
fit <- gam(x ~ s(tt,k=5) + season, family="poisson")
plot(fit)

Sau đó summary(fit)sẽ cung cấp cho bạn một bài kiểm tra về tầm quan trọng của sự thay đổi trong xu hướng và cốt truyện sẽ cung cấp cho bạn một số khoảng tin cậy. Các giả định ở đây là các quan sát là độc lập và phân phối có điều kiện là Poisson. Bởi vì giá trị trung bình được phép thay đổi suôn sẻ theo thời gian, đây không phải là những giả định đặc biệt mạnh mẽ.

Để dự báo là khó khăn hơn khi bạn cần dự đoán xu hướng trong tương lai. Nếu bạn sẵn sàng chấp nhận ngoại suy tuyến tính của xu hướng ở cuối dữ liệu (chắc chắn là tinh ranh nhưng có thể ổn trong vài tháng), sau đó sử dụng

fcast <- predict(fit,se.fit=TRUE,
               newdata=list(tt=101:112,season=seasonaldummyf(x,h=12)))

Để xem các dự báo trên cùng một biểu đồ:

plot(x,xlim=c(0,10.5))
lines(ts(exp(fcast$fit),f=12,s=112/12),col=2)
lines(ts(exp(fcast$fit-2*fcast$se),f=12,s=112/12),col=2,lty=2)
lines(ts(exp(fcast$fit+2*fcast$se),f=12,s=112/12),col=2,lty=2)

Bạn có thể phát hiện ra những tháng bất thường bằng cách tìm kiếm các ngoại lệ trong phần dư (lệch) của sự phù hợp.


8

Bạn có thể muốn có một cái nhìn về strucchange :

Kiểm tra, giám sát và xác định thay đổi cấu trúc trong các mô hình hồi quy (tuyến tính). strucchange có các kiểm tra / phương pháp từ khung kiểm tra biến động tổng quát cũng như từ khung kiểm tra F (kiểm tra Chow). Điều này bao gồm các phương pháp để phù hợp, vẽ sơ đồ và các quy trình biến động thử nghiệm (ví dụ: CUSUM, MOSUM, ước tính đệ quy / di chuyển) và thống kê F, tương ứng. Có thể theo dõi dữ liệu đến trực tuyến bằng cách sử dụng các quy trình biến động. Cuối cùng, các điểm dừng trong các mô hình hồi quy với các thay đổi cấu trúc có thể được ước tính cùng với các khoảng tin cậy. Nhấn mạnh luôn được trao cho các phương pháp trực quan hóa dữ liệu. "

Tái bút Đồ họa đẹp;)


Tôi sẽ phải đọc nó kỹ hơn sau này, nhưng vâng, gói này chắc chắn đang giải quyết các loại vấn đề tôi gặp phải ở đây. Cảm ơn! Và cũng, cảm ơn vì những lời tốt đẹp về các âm mưu; p
Matt Parker

6

Nó thực sự cần một số mô hình tiên tiến? Dựa trên những gì tôi biết về bệnh lao, trong trường hợp không có dịch bệnh, các bệnh nhiễm trùng là hành vi ngẫu nhiên và do đó, mẫu số tháng N không nên tương quan với số lượng từ tháng N-1. (Bạn có thể kiểm tra giả định này với tự động tương quan). Nếu vậy, chỉ phân tích phân phối số lượng hàng tháng có thể đủ để quyết định xem một số lượng cao hơn đáng kể so với bình thường.
Mặt khác, bạn có thể tìm kiếm mối tương quan với một số biến khác, như mùa, lưu lượng du lịch hoặc bất cứ điều gì bạn có thể tưởng tượng có thể tương quan. Nếu bạn sẽ tìm thấy một cái gì đó như thế này, thì nó có thể được sử dụng cho một số chuẩn hóa dữ liệu.


1
Quan điểm của bạn về tháng N không nhất thiết phải tương quan với N-1. Với một căn bệnh phát triển chậm như bệnh lao, đó là điều tôi phải xem xét cẩn thận, nhưng tôi khá chắc chắn rằng tôi có thể xác định được có bao nhiêu độ trễ giữa thời gian chúng tôi báo cáo trường hợp nguồn và thời gian chúng tôi báo cáo bất kỳ trường hợp thứ cấp nào các trường hợp.
Matt Parker

1
Tuy nhiên, đó là quan điểm của bạn về việc phân tích phân phối số lượng hàng tháng, đó là cốt lõi của câu hỏi của tôi. Có sự suy giảm rõ rệt về bệnh lao, cả ở Hoa Kỳ và ở quận của tôi. Ví dụ, khi tôi so sánh năm 2009 với các năm trước, có rất ít trường hợp được quyết định. Năm 2010 đang đi đúng hướng để có ít vẫn còn. Điều tôi đang cố gắng xác định (điều mà tôi đã làm rất kém trong việc giải thích trong câu hỏi) là liệu những sự sụt giảm này có phải là một phần của xu hướng giảm đang diễn ra hay chỉ là một sự chao đảo đi xuống. Cảm ơn - bạn đã khiến tôi suy nghĩ kỹ hơn về vấn đề này.
Matt Parker

5

Thông thường, dữ liệu bệnh như thế này được thực hiện với mô hình tuyến tính tổng quát, vì nó không nhất thiết là một ứng dụng tuyệt vời của phân tích chuỗi thời gian - các tháng thường không tương quan với nhau.

Nếu tôi được cung cấp dữ liệu này, đây là những gì tôi sẽ làm (và thực tế, đã làm với dữ liệu tương tự như vậy):

Tạo một biến "thời gian" được mô tả chính xác hơn là "Tháng kể từ 1/1/2000" nếu tôi đánh dấu chính xác dữ liệu của bạn. Sau đó, tôi sẽ chạy một mô hình tuyến tính chung trong R bằng cách sử dụng phân phối Poisson (hoặc nhị thức âm) và một liên kết nhật ký với dạng gần như sau:

log(Counts) = b0 + b1*t + b2*(t^2) + b3*cos(2pi*w*t) + b4*sin(2pi*w*t)

Trong đó t là thời gian được mô tả ở trên và w là 1/365 cho một bệnh hàng năm như cúm. Nói chung là 1 / n, trong đó n là độ dài của chu kỳ bệnh của bạn. Tôi không biết nó là gì đối với bệnh lao.

Hai xu hướng thời gian sẽ cho bạn thấy - bên ngoài biến thể theo mùa thông thường - nếu bạn có biến thể có ý nghĩa theo thời gian.


4

Bạn có thể xem xét áp dụng biểu đồ Tukey Control cho dữ liệu.


Heh - đây thực sự là một trong những âm mưu tôi đã thực hiện mà không đưa nó vào bài viết. Vấn đề tôi gặp phải là quyết định cách tính các giới hạn - nỗ lực ban đầu của tôi là với giới hạn Poisson, với lambda được đặt thành giá trị trung bình của dữ liệu của tôi, nhưng phương sai quá cao để trở thành một Poisson thích hợp (đủ cao để thực tế? 't biết).
Matt Parker

Một vấn đề nữa là trung tâm phân phối có thể thay đổi theo thời gian - ví dụ, sẽ không có ý nghĩa gì khi đặt các giới hạn đó bằng dữ liệu từ đầu những năm 1900, khi Colorado là thiên đường cho bệnh nhân lao. Vì vậy, một cách thích hợp để giữ cho các dòng cập nhật với những thay đổi dài hạn trong quá trình, trong khi vẫn có thể xác định độ lệch?
Matt Parker

4

Bạn có thể thử mô hình hóa dữ liệu của mình bằng Mô hình tuyến tính tổng quát động (DGLM). Trong R, bạn có thể điều chỉnh loại mô hình này bằng các gói sspir và KFAS. Theo một nghĩa nào đó, điều này tương tự như cách tiếp cận trò chơi do Rob đề xuất, ngoại trừ việc thay vì cho rằng giá trị trung bình của các quan sát Poisson là một hàm trơn tru của thời gian, nó giả định rằng nó tuân theo động lực ngẫu nhiên.


Thật tuyệt - Tôi không biết về gói KFAS. Ngoài ra còn có dlm và dse cho các phương pháp tiếp cận không gian trạng thái và một tổng quan chung cho người dùng R ở đây: cran.r-project.org/web/view/TimeSeries.html
liên hợp

2
Tôi rất muốn giới thiệu dlmgói. DLM không dễ sử dụng như các giải pháp khác, nhưng dlmlàm cho nó dễ dàng nhất có thể và có một họa tiết đẹp dẫn bạn qua quy trình.
Wayne

2

Tôi sẽ để lại câu hỏi chính, bởi vì tôi nghĩ rằng tôi sẽ hiểu sai (mặc dù tôi cũng phân tích dữ liệu cho một nhà cung cấp dịch vụ chăm sóc sức khỏe, và thành thật mà nói, nếu tôi có những dữ liệu này, tôi sẽ chỉ phân tích chúng bằng các kỹ thuật tiêu chuẩn và hy vọng điều tốt nhất, họ trông khá ổn với tôi).

Đối với các gói R, tôi đã tìm thấy thư viện TSA và cuốn sách đi kèm thực sự rất hữu ích. Các armasubsetslệnh, đặc biệt, tôi nghĩ là một tiết kiệm thời gian tuyệt vời.


2

Thoát khỏi các thống kê liệt kê truyền thống như Deming sẽ đề xuất và mạo hiểm vào các thống kê phân tích truyền thống - trong trường hợp này là các biểu đồ kiểm soát. Xem bất kỳ cuốn sách nào của Donald Wheeler Tiến sĩ, đặc biệt là "Chủ đề nâng cao trong SPC" của ông để biết thêm thông tin.


Ai đó vừa hỏi một câu hỏi về biểu đồ SPC (còn gọi là QC) trong R trong stats.stackexchange.com/questions/15809/ , nơi tôi cung cấp một số gợi ý gói. Bản thân tôi không chắc chắn về SPC / QC: Tôi tự hỏi liệu nó có hữu ích hơn trong thời đại tiền máy tính và cho công nhân trên sàn cửa hàng không, nhưng nó đáng để xem xét.
Wayne

Trên thực tế, câu trả lời này có thừa với @ babelproofreader's không?
Wayne

2

Để trả lời cho câu hỏi trực tiếp của bạn "Làm cách nào tôi có thể kiểm tra xem có thay đổi thực sự trong quy trình không? Và nếu tôi có thể xác định sự suy giảm, làm thế nào tôi có thể sử dụng xu hướng đó và bất kỳ thời vụ nào có thể để ước tính số lượng các trường hợp chúng ta có thể thấy trong những tháng sắp tới? " Phát triển Mô hình chức năng chuyển giao (ARMAX) dễ dàng giải thích sự phụ thuộc theo từng giai đoạn bao gồm và cấu trúc ARIMA theo mùa. Kết hợp bất kỳ sự thay đổi cấp độ có thể xác định, xung theo mùa, xu hướng thời gian địa phương và PUlses có thể được đề xuất bởi các phương pháp phân tích / kinh nghiệm như Phát hiện can thiệp. NẾU MÔ HÌNH ROBUST NÀY BAO GỒM MỘT YẾU TỐ / SERIES phù hợp với "từ chối" Sau đó, những lời cầu nguyện của bạn đã được trả lời. Trong phương án thay thế, chỉ cần thêm một cấu trúc giả định, ví dụ để kiểm tra sự thay đổi xu hướng thời gian tại điểm T1 xây dựng hai hình nộm X1 = 1,1,2,3 ,,,,,, T và X2 = 0,0,0,0,0,0,0,1,2,3,4,5, .... Ở ĐÂU CÁC SỐ KHÔNG KẾT THÚC Ở THỜI GIAN T1-1. Việc kiểm tra giả thuyết về sự thay đổi xu hướng đáng kể trong khoảng thời gian T1 sẽ được đánh giá bằng cách sử dụng "giá trị t" cho X2.

Đã chỉnh sửa ngày 22/9/11

Thông thường, dữ liệu bệnh như thế này có ảnh hưởng hàng tháng vì thời tiết / nhiệt độ thường là nguyên nhân không xác định. Trong sự thiếu sót của các mô hình ARIMA loạt caudsal thực sự sử dụng bộ nhớ hoặc các hình nộm theo mùa làm vật thay thế. Ngoài ra, chuỗi như thế này có thể có sự thay đổi mức độ và / hoặc xu hướng thời gian địa phương phản ánh sự thay đổi cấu trúc theo thời gian. Khai thác cấu trúc tự phát trong dữ liệu thay vì áp đặt các tạo phẩm khác nhau như bình phương thời gian và khối thời gian, v.v. đã được tìm thấy là khá hữu ích và ít giả định và ad hoc. Cũng cần thận trọng để xác định "các giá trị bất thường" vì chúng thường có thể hữu ích trong việc đề xuất các biến nguyên nhân bổ sung và tối thiểu dẫn đến các ước tính mạnh mẽ của các tham số mô hình khác. Cuối cùng, chúng tôi đã phát hiện ra rằng các biến số / tham số có thể thay đổi theo thời gian do đó các tinh chỉnh mô hình này có thể theo thứ tự.


Làm thế nào để điều chỉnh giá trị p vào tài khoản để xác định bài đăng hoc hoc ( nghĩa là nhận thấy nó sau khi xem xét dữ liệu)?
whuber

tất cả các sàng lọc tức là kiểm tra chẩn đoán dẫn đến tăng cường được xử lý giống như cấu trúc được đề xuất trong khi dữ liệu nằm trong ngăn kéo. Thêm độ trễ cho biến dự đoán dựa trên kiểm tra chẩn đoán chỉ cần thêm một giả thuyết null vào danh sách. Điều này không khác với việc xóa một hệ số không đáng kể.
IrishStat

@Irish Tôi không làm theo điều đó. T1 dường như không phải là một độ trễ: nó quy định một điểm thay đổi. Không dễ tìm thấy những thay đổi "đáng kể" nếu trước tiên bạn được phép kiểm tra dữ liệu để chọn nơi thay đổi?
whuber

@whuber Có bạn đúng. Nhưng hãy nghĩ đến một quá trình chuyển tiếp từng bước trong hồi quy nơi bạn kiểm tra các biến (bỏ qua) thay thế cho "kết hợp tiềm năng". Điều này không khác nhau theo nghĩa là bạn đang quyết định "xu hướng bị bỏ qua" nào sẽ được thêm vào mô hình để hiển thị quá trình lỗi kết quả Gaussian.
IrishStat

@Irish Đó là một sự tương tự chiếu sáng. Nếu tôi hiểu, thực tế, bạn dự tính sẽ có một biến tiềm năng cho mỗi giai đoạn (chỉ định một thay đổi có thể có trong giai đoạn đó) và đang gọi một quy trình có hệ thống để xác định nên đưa vào một biến nào trong mô hình. Điều này cho thấy rằng một số quy trình điều chỉnh mức p tiêu chuẩn, như Bonferroni, có thể được áp dụng một cách hợp lý. Điều đó có hợp lệ không?
whuber
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.