Mô hình lịch sử sự kiện rời rạc (Survival) trong R


10

Tôi đang cố gắng để phù hợp với một mô hình thời gian rời rạc trong R, nhưng tôi không chắc làm thế nào để làm điều đó.

Tôi đã đọc rằng bạn có thể sắp xếp biến phụ thuộc theo các hàng khác nhau, mỗi hàng cho mỗi lần quan sát và sử dụng glmhàm với liên kết logit hoặc loglog. Theo nghĩa này, tôi có ba cột : ID, Event(1 hoặc 0, trong mỗi lần quan sát) và Time Elapsed(kể từ khi bắt đầu quan sát), cộng với các hiệp phương sai khác.

Làm thế nào để tôi viết mã cho phù hợp với mô hình? Đó là biến phụ thuộc? Tôi đoán rằng tôi có thể sử dụng Eventnhư là biến phụ thuộc và bao gồm Time Elapsedcác biến số. Nhưng điều gì xảy ra với ID? Tôi có cần nó không?

Cảm ơn.


Khi bạn nói "Tôi đang cố gắng phù hợp với mô hình thời gian rời rạc" ... bạn muốn mô hình nào phù hợp? (Nếu đây là cho một số chủ đề, vui lòng thêm self-studythẻ.)
Glen_b -Reinstate Monica

Tôi muốn phù hợp với một mô hình tồn tại thời gian rời rạc logit.
Fran Villamil

1
Có vẻ như ID không có liên quan, nhưng nó phụ thuộc vào những gì, chính xác nó đại diện và liệu đó có phải là thứ bạn muốn mô hình hóa hay không.
Glen_b -Reinstate Monica

Câu trả lời:


8

Về cơ bản bạn đúng về tổ chức dữ liệu. Nếu bạn có trường hợp được tổ chức như thế này:

ID M1 M2 M3 EVENT

Bạn có thể muốn sắp xếp lại dữ liệu để nó trông như thế này:

ID TIME EVENT
1  1    0
1  2    1
1  3    1
2  1    0
2  2    0
.  .    .
.  .    .

Tôi gọi đây là một chuyển đổi từ định dạng rộng sang định dạng dài. Nó được thực hiện dễ dàng trong R bằng cách sử dụng reshape()hàm hoặc thậm chí dễ dàng hơn với reshape2gói.

Cá nhân tôi sẽ giữ IDtrường cho việc sử dụng tiềm năng của nó trong việc xác định nguồn biến thể trong mô hình hiệu ứng hỗn hợp. Nhưng điều này là không cần thiết (như được chỉ ra bởi @Berndweiss). Các giả định sau đây bạn sẽ muốn làm như vậy. Nếu không, phù hợp với một mô hình tương tự glm(...,family=binomial)mà không có các điều khoản hiệu ứng ngẫu nhiên.

Các lme4gói vào R sẽ phù hợp với một hiệu ứng hỗn hợp mô hình hồi quy logistic tương tự như bạn đang nói về, ngoại trừ với một hiệu ứng ngẫu nhiên hoặc hai vào tài khoản cho biến trong các hệ số trên đối tượng ( ID). Dưới đây sẽ là mã ví dụ để điều chỉnh mô hình ví dụ nếu dữ liệu của bạn được lưu trữ trong khung dữ liệu được gọi df.

require(lme4)
ans <- glmer(EVENT ~ TIME + (1+TIME|ID), data=df, family=binomial)

Mô hình cụ thể này cho phép TIMEvà các intercepthệ số thay đổi ngẫu nhiên trên ID. Nói cách khác, đây là mô hình hỗn hợp tuyến tính phân cấp của các phép đo được lồng trong các cá nhân.

Một dạng thay thế của mô hình lịch sử sự kiện thời gian rời rạc chia TIMEthành các hình nộm rời rạc và khớp với nhau như một tham số. Đây thực chất là trường hợp riêng biệt của mô hình Cox PH vì đường cong nguy hiểm không bị giới hạn ở dạng tuyến tính (hoặc bậc hai, hoặc tuy nhiên bạn có thể tưởng tượng thời gian biến đổi). Mặc dù, bạn có thể muốn nhóm TIMEthành một tập hợp có thể quản lý (tức là nhỏ) các khoảng thời gian riêng biệt nếu có rất nhiều trong số chúng.

Các lựa chọn khác liên quan đến việc chuyển đổi thời gian để có được đường cong nguy hiểm của bạn. Phương pháp trước đó về cơ bản giúp bạn không phải làm điều này, nhưng phương pháp trước ít phân tích hơn phương pháp này (và trường hợp tuyến tính ban đầu tôi đặt ra) bởi vì bạn có thể có nhiều điểm thời gian và do đó, rất nhiều tham số phiền toái.

Một tài liệu tham khảo tuyệt vời về chủ đề này là Phân tích dữ liệu theo chiều dọc được áp dụng của Judith Singer và John Willet : Thay đổi mô hình và sự kiện xảy ra .


4
Bạn không cần "mô hình hồi quy logistic hiệu ứng hỗn hợp" để ước tính mô hình thời gian rời rạc đơn giản (Fiona Steel đã xuất bản một vài bài viết về " Phân tích lịch sử sự kiện thời gian rời rạc đa cấp "). Bạn đã có một tài liệu tham khảo? Lại bước chuẩn bị dữ liệu, tôi cũng đề nghị nên xem chức năng SurvSplit .
Bernd Weiss

6

Ca sĩ và Willett đã được xuất bản rất nhiều về chủ đề này. Tôi rất khuyên bạn nên đọc một số giấy tờ của họ . Bạn cũng có thể muốn có được cuốn sách "Phân tích dữ liệu theo chiều dọc được áp dụng: Thay đổi mô hình và sự kiện xảy ra" . Rõ ràng là một trong những sách giáo khoa tốt nhất trong lĩnh vực này.

Đối với hầu hết các chương sách, có mã mẫu R (xem chương 11ff) có sẵn để trình bày cách dữ liệu của bạn phải được cấu trúc ("định dạng thời gian cá nhân") và cách phân tích loại dữ liệu đó. Đối với mô hình thời gian rời rạc tiêu chuẩn, bạn không cần biến ID và bạn cũng không cần ước tính mô hình hiệu ứng hỗn hợp theo đề xuất của @ndoogan. Một glm(event ~ time + ..., family = "binomial")công việc đơn giản chỉ cần tốt. Ca sĩ và Willett cũng thảo luận về nhiều vấn đề làm thế nào để mô hình hóa biến thời gian (tuyến tính, bậc hai, ...)

Để trích dẫn thêm hai tài liệu tham khảo mà tôi đánh giá cao:


1

Bạn có thể chia thời gian thành các khoảng thời gian và thực hiện mô hình logit nhiều nút như trong Shumway (2001) . Ví dụ: các khoảng thời gian của bạn là . Tôi đã triển khai điều này trong R, có thể áp dụng trực tiếp nếu bạn có dữ liệu ban đầu trong thiết lập sự kiện dừng điển hình được sử dụng trong phân tích sinh tồn. lưu ý rằng các số liệu thống kê t từ mô hình kết quả không có hiệu chỉnh được đề cập trong Shumway (2001).(0,1],(1,2],dynamichazard::static_glm

Phương pháp này khác với một @ndoogan với các hình nộm thời gian vì bạn chỉ nhận được một lần đánh chặn chung trong mọi khoảng thời gian với dynamichazard::static_glm. Tuy nhiên, bạn có thể nhận được một hình nộm cho mỗi giai đoạn bằng cách gọi dynamichazard::get_survival_case_weights_and_databằng đối số use_weights = FALSE, tự thêm chỉ báo giả thời gian vào trả lại data.framevà sau đó gọi ví dụ glm.


Hơn nữa, bạn có thể quan tâm đến họa tiết này trong gói của tôi dynamichazard.
Benjamin Christoffersen

0

Đây được gọi là dữ liệu "quá trình đếm". Gói Survival có chức năng tmerge () rất đẹp. Nó rất hữu ích để chèn đồng biến phụ thuộc thời gian hoặc tích lũy và thời gian theo dõi phân vùng tương ứng. Quá trình này được giải thích rất tốt trong họa tiết này

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.