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 glm
fungsi 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 Event
sebagai variabel dependen, dan termasuk Time Elapsed
dalam kovariat. Tetapi apa yang terjadi dengan ID
? Apakah saya membutuhkannya?
Terima kasih.
r
survival
pca
sas
matlab
neural-networks
r
logistic
spatial
spatial-interaction-model
r
time-series
econometrics
var
statistical-significance
t-test
cross-validation
sample-size
r
regression
optimization
least-squares
constrained-regression
nonparametric
ordinal-data
wilcoxon-signed-rank
references
neural-networks
jags
bugs
hierarchical-bayesian
gaussian-mixture
r
regression
svm
predictive-models
libsvm
scikit-learn
probability
self-study
stata
sample-size
spss
wilcoxon-mann-whitney
survey
ordinal-data
likert
group-differences
r
regression
anova
mathematical-statistics
normal-distribution
random-generation
truncation
repeated-measures
variance
variability
distributions
random-generation
uniform
regression
r
generalized-linear-model
goodness-of-fit
data-visualization
r
time-series
arima
autoregressive
confidence-interval
r
time-series
arima
autocorrelation
seasonality
hypothesis-testing
bayesian
frequentist
uninformative-prior
correlation
matlab
cross-correlation
Fran Villamil
sumber
sumber
self-study
tag.)Jawaban:
Anda pada dasarnya benar tentang organisasi data. Jika Anda memiliki kasus yang diatur seperti ini:
Anda mungkin ingin mengatur ulang data sehingga terlihat seperti ini:
Saya menyebutnya konversi dari format lebar ke format panjang. Ini dilakukan dengan mudah di R menggunakan
reshape()
fungsi atau bahkan lebih mudah denganreshape2
paket.Saya pribadi akan menjaga
ID
lapangan 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 denganglm(...,family=binomial)
tanpa syarat efek acak.The
lme4
paket 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 disebutdf
.Model khusus ini memungkinkan
TIME
danintercept
koefisien 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
TIME
dalam 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 mengelompokkanTIME
ke 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 .
sumber
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:
sumber
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 menelepondynamichazard::get_survival_case_weights_and_data
dengan argumenuse_weights = FALSE
, menambahkan indikator waktu dummy sendiri ke yang dikembalikandata.frame
dan kemudian memanggil misglm
.sumber
dynamichazard
.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
sumber