Sie legen fest, dass Sie die Zensur vom Typ 1 simulieren möchten . Dies bedeutet normalerweise, dass das Experiment über einen bestimmten Zeitraum durchgeführt wird und dass alle Lerneinheiten, die das Ereignis bis dahin nicht hatten, zensiert werden. Wenn Sie das gemeint haben, ist es (notwendigerweise) nicht möglich, die Form- und Skalierungsparameter sowie die Zensurzeit und -rate gleichzeitig festzulegen. Nachdem drei festgelegt wurden, ist die letzte unbedingt festgelegt.
(Versuch) nach dem Formparameter zu lösen:
Dies schlägt fehl; Es scheint unmöglich zu sein, eine Zensurrate von 15% bei einer Zensurzeit von 0,88 mit einer Weibull-Verteilung zu haben, bei der der Skalierungsparameter bei 1 gehalten wird, unabhängig davon, um welchen Formparameter es sich handelt.
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
Auflösen nach dem Skalenparameter:
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
Lösung für die Zensurzeit:
qweibull(.15, shape=.5, scale=1, lower.tail=F)
# [1] 3.599064
Lösung für die Zensurrate:
pweibull(.88, shape=.5, scale=1, lower.tail=F)
# [1] 0.3913773
Auf der anderen Seite können wir uns die Zensur als zufällig (und typischerweise unabhängig) vorstellen, die während der gesamten Studie auftritt, beispielsweise aufgrund von Studienabbrüchen. In diesem Fall besteht das Verfahren darin, zwei Sätze von Weibull-Variablen zu simulieren. Dann notieren Sie einfach, was zuerst kam: Sie verwenden den niedrigeren Wert als Endpunkt und nennen diese Einheit zensiert, wenn der geringere Wert die Zensurzeit war. Zum Beispiel:
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
Funktion ist fantastisch), aber wie würden Sie Ihre zweite Antwort kalibrieren, um einen bestimmten Prozentsatz der Zensur zu erreichen?Nur um sicherzugehen, dass es sich um dasselbe handelt, ist Typ-I-Zensur wann
Um mit der Zensurzeit = 0,88 richtig zensierte Daten zu generieren , verwenden Sie einfach die folgende
min
Funktion:Ich bin mir jedoch nicht ganz sicher, was Sie meinen, wenn Sie " Zensurrate = 0,15 " sagen ... Wollen Sie damit sagen, dass 15% Ihrer Probanden richtig zensiert sind? Diese Hinweise zur Zensur scheinen darauf hinzudeuten, dass der einzige Parameter, den man für die Typ-I- Zensur benötigt, die Zensurzeit ist , daher bin ich mir nicht sicher, wie sich diese Rate auswirkt.
quelle
min
(oder allgemeinerpmin
) der Weg, um es zu simulierenR
. (Ein Beispiel für die richtige Zensur in einer Nichtüberlebensstudie ist die Analyse von Bakterienkolonien im Abwasser. Dies erfolgt durch manuelles Zählen der auf einem Objektträger sichtbaren Kolonien. Bei starker Kontamination wird das Ergebnis als "zu zahlreich zum Zählen" angegeben. )