Model Sejarah Acara Diskrit-Waktu (Bertahan Hidup) di R

10

Saya mencoba menyesuaikan model waktu-diskrit dalam R, tapi saya tidak yakin bagaimana melakukannya.

Saya telah membaca bahwa Anda dapat mengatur variabel dependen dalam baris yang berbeda, satu untuk setiap pengamatan waktu, dan menggunakan glmfungsi dengan logit atau tautan cloglog. Dalam hal ini, saya memiliki tiga kolom: ID, Event(1 atau 0, di setiap waktu-obs) dan Time Elapsed(sejak awal pengamatan), ditambah kovariat lainnya.

Bagaimana cara saya menulis kode agar sesuai dengan model? Yang merupakan variabel dependen? Saya kira saya bisa menggunakan Eventsebagai variabel dependen, dan termasuk Time Elapseddalam kovariat. Tetapi apa yang terjadi dengan ID? Apakah saya membutuhkannya?

Terima kasih.

Fran Villamil
sumber
Ketika Anda mengatakan "Saya mencoba menyesuaikan model waktu diskrit" ... model apa yang Anda inginkan? (Jika ini untuk beberapa subjek, silakan tambahkan self-studytag.)
Glen_b -Reinstate Monica
Saya ingin mencocokkan model survival waktu diskrit logit.
Fran Villamil
1
Tampaknya tidak mungkin ID relevan, tetapi tergantung pada apa, tepatnya yang diwakilinya, dan apakah itu sesuatu yang ingin Anda modelkan.
Glen_b -Reinstate Monica

Jawaban:

8

Anda pada dasarnya benar tentang organisasi data. Jika Anda memiliki kasus yang diatur seperti ini:

ID M1 M2 M3 EVENT

Anda mungkin ingin mengatur ulang data sehingga terlihat seperti ini:

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

Saya menyebutnya konversi dari format lebar ke format panjang. Ini dilakukan dengan mudah di R menggunakan reshape()fungsi atau bahkan lebih mudah dengan reshape2paket.

Saya pribadi akan menjaga IDlapangan untuk penggunaan potensial dalam mengidentifikasi sumber variasi dalam model efek campuran. Tapi ini tidak perlu (seperti yang ditunjukkan oleh @BerndWeiss). Berikut ini mengasumsikan Anda ingin melakukannya. Jika tidak, paskan model serupa dengan glm(...,family=binomial)tanpa syarat efek acak.

The lme4paket di R akan cocok dengan efek campuran model regresi logistik mirip dengan yang Anda bicarakan, kecuali dengan efek acak atau dua ke akun untuk variabilitas dalam koefisien seluruh mata pelajaran ( ID). Berikut ini akan menjadi contoh kode untuk memasang model contoh jika data Anda disimpan dalam bingkai data yang disebut df.

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

Model khusus ini memungkinkan TIMEdan interceptkoefisien bervariasi secara acak di seluruh ID. Dengan kata lain, ini adalah model campuran linier hirarkis pengukuran yang bersarang pada individu.

Bentuk lainnya dari waktu diskrit Model sejarah acara istirahat TIMEdalam dummies diskrit dan cocok satu sama sebagai parameter. Ini pada dasarnya adalah kasus diskrit dari model Cox PH karena kurva bahaya tidak terbatas pada linier (atau kuadratik, atau bagaimanapun Anda dapat membayangkan mengubah waktu). Meskipun, Anda mungkin ingin mengelompokkan TIMEke dalam set yang dapat dikelola (yaitu kecil) dari periode waktu diskrit jika ada banyak dari mereka.

Alternatif selanjutnya melibatkan transformasi waktu untuk memperbaiki kurva bahaya Anda. Metode sebelumnya pada dasarnya meringankan Anda dari keharusan melakukan ini, tetapi metode sebelumnya kurang pelit dari ini (dan kasus linear asli yang saya ajukan) karena Anda mungkin memiliki banyak titik waktu dan dengan demikian, banyak parameter gangguan.

Referensi yang sangat baik tentang topik ini adalah Analisis Data Longitudinal Terapan Judith Singer dan John Willet : Perubahan Pemodelan dan Kejadian Kejadian .

ndoogan
sumber
4
Anda tidak memerlukan "model regresi logistik efek campuran" untuk memperkirakan model waktu diskrit sederhana (Fiona Steel telah menerbitkan beberapa artikel tentang " Analisis riwayat peristiwa diskrit waktu Multilevel "). Apakah Anda punya referensi? Kembali ke langkah persiapan data, saya juga menyarankan untuk melihat fungsi survSplit .
Bernd Weiss
6

Singer dan Willett telah banyak menerbitkan tentang hal ini. Saya sangat menyarankan Anda membaca beberapa makalah mereka . Anda juga mungkin ingin mendapatkan buku mereka "Analisis Data Longitudinal Terapan: Perubahan Pemodelan dan Kejadian Kejadian" . Jelas salah satu buku teks terbaik di bidang ini.

Untuk sebagian besar bab buku ada kode sampel R (lihat bab 11ff) yang tersedia yang menunjukkan bagaimana data Anda harus disusun ("format orang-periode") dan bagaimana menganalisis data semacam itu. Untuk model waktu diskrit standar Anda tidak perlu variabel ID dan Anda juga tidak perlu memperkirakan model efek-campuran seperti yang disarankan oleh @ndoogan. Sederhana glm(event ~ time + ..., family = "binomial")bekerja dengan baik. Singer dan Willett juga membahas banyak masalah bagaimana memodelkan variabel waktu (linear, kuadratik, ...)

Untuk mengutip dua referensi lagi yang sangat saya rekomendasikan:

Bernd Weiss
sumber
1

Anda dapat membagi waktu menjadi interval dan melakukan model log multiperiode seperti pada Shumway (2001) . Misalnya, interval waktu Anda adalah . Saya telah menerapkan ini dalam R yang langsung berlaku jika Anda memiliki data awal dalam penyetelan peristiwa-berhenti yang digunakan dalam analisis survival. perhatikan bahwa t-stats dari model yang dihasilkan tidak memiliki koreksi yang disebutkan dalam Shumway (2001).(0,1],(1,2],dynamichazard::static_glm

Metode ini berbeda dari satu @ndoogan dengan dummies waktu karena Anda hanya mendapatkan satu intersep yang umum di semua periode waktu dynamichazard::static_glm. Anda dapat, bagaimanapun, mendapatkan dummy untuk setiap periode dengan menelepon dynamichazard::get_survival_case_weights_and_datadengan argumen use_weights = FALSE, menambahkan indikator waktu dummy sendiri ke yang dikembalikan data.framedan kemudian memanggil mis glm.

Benjamin Christoffersen
sumber
Selanjutnya, Anda mungkin tertarik dengan sketsa ini dalam paket saya dynamichazard.
Benjamin Christoffersen
0

Ini disebut data "proses penghitungan". Paket survival memiliki fungsi tmerge () yang sangat bagus. Sangat berguna untuk memasukkan kovariat bergantung atau kumulatif dan waktu tindak lanjut partisi yang sesuai. Prosesnya dijelaskan dengan sangat baik dalam sketsa ini

Koray
sumber