Andy,
Thanks for this response. In fact I did not propose that particular
Weibull parameterization but simply pointed out that it seemed to be
what the original questioner seemed to be trying to use.
My own preference for parameterizing the Weibull is
HAZARD=LAMDA0*EXP(BETA*LOG(TIME))
This parameterization makes is easier to understand that the Weibull
(ln(time)) is just a transformation of the Gompertz (time):
HAZARD=LAMDA0*EXP(BETA*TIME)
Its then easy to extend hazards to more interesting and possibly more
useful hazards such as the Gombull (aka the Weipertz):
HAZARD=LAMDA0*EXP(BETAG*TIME + BETAW*LOG(TIME))
One of the features of the Weibull that I dont like is that the hazard
is predicted to be zero when time is zero. This seems a particularly
unlikely biological occurrence and also requires extra coding to deal
with this special case when time is zero to avoid NaNs.
I'd be interested in knowing if you find any difference in the standard
errors with the ln(time) parameterization. But whatever you find it
won't change my behaviour because as you know standard errors are not
much use for making predictions :-)
Best wishes,
Nick
On 28/03/2011 3:05 p.m., Andrew Hooker wrote:
Hi All
I would just like to point out that in the Weibull hazard that Nick
proposes:
HAZNOW=LAMD*ALPH*(TIME+DEL2)**(ALPH-1)
The units of LAMD would have to be TIME**(-ALPH). That is, as soon as
ALPH changes then the units of LAMD change. This seems strange and
unnecessary to include this type of correlation in the parameters. If
we instead reparameterize the model to:
HAZNOW=LAMD*ALPH*(LAMD*(TIME+DEL2))**(ALPH-1)
Then LAMD has units of 1/TIME no matter the value of ALPH. I have
tested the two parameterizations in one simple simulation example and
found that the relative standard errors were significantly lower with
this second parameterization.
Best regards
Andy
Andrew Hooker, Ph.D.
Associate Professor of Pharmacometrics
Dept. of Pharmaceutical Biosciences
Uppsala University
Box 591, 751 24, Uppsala, Sweden
Phone: +46 18 471 4355
www.farmbio.uu.se/research/Research+groups/Pharmacometrics/
<http://www.farmbio.uu.se/research/Research+groups/Pharmacometrics/>
*From:*[email protected]
[mailto:[email protected]] *On Behalf Of *Nick Holford
*Sent:* den 24 mars 2011 07:54
*To:* nmusers
*Subject:* Re: [NMusers] Time-to-event analysis with $DES
Hyewon,
Sorry -- I just realized that EFF is not the drug effect but 1-drug
effect so that it has a value of 1 when AUC is zero. Please ignore my
remarks about EFF being zero when AUC is zero in my comments below and
consider this code to describe the effect of AUC on hazard:
HAZNOW=LAMD*ALPH*(TIME+DEL2)**(ALPH-1)*(1-BETAE*AUC/(EC+AUC))
I think it is a very strong assumption that the drug will reduce the
hazard to zero at infinite AUC which you can test by estimating a
parameter (such as BETAE). If BETAE is significantly less than 1 then
this means the assumption is not supported.
Nick
On 24/03/2011 8:17 a.m., Nick Holford wrote:
Hyewon,
The most obvious problem with your code is in $DES. You must use the
variable T not the variable TIME when referring to a time varying
hazard. TIME is the time on each data record. It does not change in
$DES. T is the time from the last data record upto the current data
record and changes within $DES.
You are predicting the likelihood of an event at the exact time of the
event observation record with multiple events per subject. As you seem
to realize you need to compute the cumulative hazard (CUMHAZ) either
from TIME=0 or from the TIME of the last non-censored event for each
subject.
In my opinion the following code is clearer and less dependent on your
data structure than the method you are using which works only if your
data has just event records after the TIME=0 record.
IF (MDV.EQ.0.AND.CS.EQ.0) THEN
OLDCHZ=A(1) ; cum haz upto time of this event
ELSE
OLDCHZ=OLDCHZ ; need to do this if OLDCHZ is a random variable
ENDIF
Your hazard model looks rather complicated. It seems to be based on
the product of a Weibull baseline hazard
LAMD*ALPH*(TIME+DEL2)**(ALPH-1)
then something odd involving the Weibull parameters
*EXP(-LAMD*(TIME+DEL2)**ALPH)
and then forces the hazard to be zero if AUC is zero.
*EFF
Is this really what you want? Do you know the hazard of event is zero
if AUC is zero? Or is the last right parenthesis in the wrong place?
I would suggest something like this where LAMD and ALPH are the two
parameters of the Weibull baseline hazard (when AUC is zero) and BETAE
is a parameter describing the effect of the drug on the overall hazard.
HAZNOW=LAMD*ALPH*(TIME+DEL2)**(ALPH-1)*EXP(BETAE*EFF)
You may also find it easier to develop the model if you do not try to
estimate a random effect on LAMD until you have got reasonable
estimates for the other parameters.
You may find it helpful to look at this presentation showing how to
code time to event models in NM-TRAN:
http://pkpdrx.com/holford/docs/time-to-event-analysis.pdf
Best wishes,
Nick
On 24/03/2011 3:25 a.m., Hyewon Kim wrote:
Dear NMuser
I am trying to analyze time to repeated event data using NONMEM.
The response were obtained till 24 hours after drug administration.
Inhibitory Emax model was implemented.
I am getting unreasonable parameter estimates which is far beyond what
data say.
If some body can point out what i am doing wrong, it would be very
helpful.
Thank you in advance.
Hyewon
Data set (# of observations =62, # of patients=50 )
C ID TIME CS MDV AUC
. 101 0 . 1 1.111
. 101 0.05 0 0 1.111
. 101 2 0 0 1.111
. 102 0 . 1 0
. 102 24 1 0 0
. 103 0 . 1 0.999
. 103 0.75 . 0 0.999
....
Model File
$PROB RUN# 101
$INPUT C ID TIME CS MDV AUC
;CS:0=having event,1=censored
$DATA .data.csv IGNORE=C
$SUBROUTINE ADVAN=6 TOL=6
$MODEL
COMP=(HAZARD)
$PK
LAMD=THETA(1)*EXP(ETA(1)) ;scale factor
ALPH=THETA(2) ;shape factor
EC=THETA(3) ;AUC when effect is
half of its max
EFF=1-AUC/(EC+AUC) ;drug effect
$DES
DEL=1E-6
DADT(1)=LAMD*ALPH*(TIME+DEL)**(ALPH-1)*EXP(-LAMD*(TIME+DEL)**ALPH)*EFF
$ERROR
DEL2=1E-6
IF(NEWIND.NE.2) OLDCHZ=0
CHZ=A(1)-OLDCHZ
OLDCHZ=A(1)
SUR=EXP(-CHZ)
HAZNOW=LAMD*ALPH*(TIME+DEL2)**(ALPH-1)*EXP(-LAMD*(TIME+DEL2)**ALPH)*EFF
IF(CS.EQ.1) Y=SUR ;survival prob of censored
IF(CS.EQ.0) Y=SUR*HAZNOW ;pdf of event
$THETA
(0,10) ;[scale factor]
(0,1.0) ;[shaph factor]
(0,0.01) ;[AUC at half of Emax]
$OMEGA
0.01 ;[p] omega(1,1)
$EST METHOD=COND LIKE LAPLACIAN PRINT=5 SIG=3 MAX=9999 MSFO=101.msf
$COV PRINT=E
$TABLE ID TIME SUR AUC ONEHEADER NOPRINT FILE=101.tab
--
Nick Holford, Professor Clinical Pharmacology
Dept Pharmacology& Clinical Pharmacology
University of Auckland,85 Park Rd,Private Bag 92019,Auckland,New Zealand
tel:+64(9)923-6730 <tel:+64%289%29923-6730> fax:+64(9)373-7090
mobile:+64(21)46 23 53
email:[email protected] <mailto:[email protected]>
http://www.fmhs.auckland.ac.nz/sms/pharmacology/holford
--
Nick Holford, Professor Clinical Pharmacology
Dept Pharmacology& Clinical Pharmacology
University of Auckland,85 Park Rd,Private Bag 92019,Auckland,New Zealand
tel:+64(9)923-6730 <tel:+64%289%29923-6730> fax:+64(9)373-7090
mobile:+64(21)46 23 53
email:[email protected] <mailto:[email protected]>
http://www.fmhs.auckland.ac.nz/sms/pharmacology/holford
--
Nick Holford, Professor Clinical Pharmacology
Dept Pharmacology& Clinical Pharmacology
University of Auckland,85 Park Rd,Private Bag 92019,Auckland,New Zealand
tel:+64(9)923-6730 fax:+64(9)373-7090 mobile:+64(21)46 23 53
email: [email protected]
http://www.fmhs.auckland.ac.nz/sms/pharmacology/holford