Anda menetapkan bahwa Anda ingin mensimulasikan sensor tipe 1 . Itu biasanya berarti bahwa percobaan dijalankan untuk jangka waktu tertentu, dan bahwa unit studi mana pun yang belum memiliki peristiwa pada saat itu disensor. Jika itu yang Anda maksudkan, maka tidak mungkin (harus) menentukan parameter bentuk dan skala, dan waktu serta laju sensor secara bersamaan. Setelah menetapkan tiga, yang terakhir harus diperbaiki.
(Mencoba untuk) memecahkan parameter bentuk:
Ini gagal; tampaknya tidak mungkin untuk memiliki tingkat penyensoran 15% pada waktu penyensoran 0,88 dengan distribusi Weibull di mana parameter skala disimpan pada 1, tidak peduli apa pun parameter bentuknya.
optim(.5, fn=function(shp){(pweibull(.88, shape=shp, scale=1, lower.tail=F)-.15)^2})
# $par
# [1] 4.768372e-08
# ...
# There were 46 warnings (use warnings() to see them)
pweibull(.88, shape=4.768372e-08, scale=1, lower.tail=F)
# [1] 0.3678794
optim(.5, fn=function(shp){(pweibull(.88, shape=shp, scale=1, lower.tail=F)-.15)^2},
control=list(reltol=1e-16))
# $par
# [1] 9.769963e-16
# ...
# There were 50 or more warnings (use warnings() to see the first 50)
pweibull(.88, shape=9.769963e-16, scale=1, lower.tail=F)
# [1] 0.3678794
Memecahkan untuk parameter skala:
optim(1, fn=function(scl){(pweibull(.88, shape=.5, scale=scl, lower.tail=F)-.15)^2})
# $par
# [1] 0.2445312
# ...
pweibull(.88, shape=.5, scale=0.2445312, lower.tail=F)
# [1] 0.1500135
Memecahkan untuk waktu sensor:
qweibull(.15, shape=.5, scale=1, lower.tail=F)
# [1] 3.599064
Memecahkan untuk tingkat sensor:
pweibull(.88, shape=.5, scale=1, lower.tail=F)
# [1] 0.3913773
Di sisi lain, kita dapat menganggap penyensoran secara acak (dan biasanya secara independen) terjadi sepanjang penelitian karena, katakanlah, putus sekolah. Dalam hal ini, prosedurnya adalah mensimulasikan dua set varian Weibull. Maka Anda cukup mencatat mana yang lebih dulu: Anda menggunakan nilai lebih rendah sebagai titik akhir dan memanggil unit yang disensor jika nilai lebih rendah adalah waktu penyensoran. Sebagai contoh:
set.seed(0775)
t = rweibull(3, shape=.5, scale=1)
t # [1] 0.7433678 1.1325749 0.2784812
c = rweibull(3, shape=.5, scale=1.5)
c # [1] 3.3242417 2.8866217 0.9779436
time = pmin(t, c)
time # [1] 0.7433678 1.1325749 0.2784812
cens = ifelse(c<t, 1, 0)
cens # [1] 0 0 0
optim
fungsinya mengagumkan), tetapi bagaimana Anda akan mengkalibrasi jawaban kedua Anda untuk mencapai persentase penyensoran tertentu?Hanya untuk memastikan kita berbicara tentang hal yang sama, sensor tipe-I adalah kapan
Untuk menghasilkan data yang disensor benar menggunakan waktu sensor = 0,88 , Anda cukup menggunakan
min
fungsi:Namun, saya tidak sepenuhnya yakin apa yang Anda maksud ketika Anda mengatakan, " tingkat sensor = 0,15 " ... Apakah Anda bermaksud mengatakan bahwa 15% dari subjek Anda disensor dengan benar? Catatan tentang sensor ini sepertinya mengindikasikan bahwa satu-satunya parameter yang dibutuhkan sensor Jenis-I adalah menyensor waktu , jadi saya tidak yakin bagaimana faktor laju ini masuk.
sumber
min
(atau, lebih umum,pmin
) adalah cara untuk mensimulasikannyaR
. (Contoh sensor kanan dalam studi non-survival adalah analisis koloni bakteri dalam air limbah. Hal ini dilakukan dengan menghitung secara manual yang terlihat pada slide mikroskop. Dengan kontaminasi berat, hasilnya diberikan sebagai "terlalu banyak untuk dihitung." )