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?