RE: Rational of using IOV
Dear all,
Just as you thought the discussion was over I feel that I have to point out
that a less "arbitrary" implementation of IOV (BOV) was introduced by Mats
Karlsson at ACoP 2009. The new approach is described in the presentation:
Connecting to the Other Side on slide 40-49
http://2009.go-acop.org/acop2009/program (the ACoP link to the presentation
is currently broken but I have uploaded a copy to my ftp:
http://www.anst.uu.se/marbe710/KarlssonACoP2009.pdf). I have used the
suggested implantation for two projects with very satisfactory results.
For certain PK parameters like CL, IOV typically represents an
auto-correlated within subject variability (WSV) for other typical PK
parameters like KA and lag-time the IOV is typically fairly independent
between doses. The implementation suggested by Mats can describe the WSV in
both these types of parameters (estimates the appropriate shape of the WSV).
In my opinion this is a good way of making IOV less design dependent. Below
is a short coding example if you want to try it out. If you want to make the
code entirely design independent you can either implement the code in $DES
(with T instead of TIME) or use the MTIME function to update TIME more
frequently than at each observation in the dataset [1]. From what I have
heard stochastic differential equations offer an even more sophisticated
solution to WSV in parameters [2].
[1] Petersson KJ, Friberg LE, Karlsson MO. Transforming parts of a
differential equations system to difference equations as a method for
run-time savings in NONMEM. J Pharmacokinet Pharmacodyn. 2010
Oct;37(5):493-506. Epub 2010 Sep 29.
[2] Stochastic differential equations in NONMEM: implementation,
application, and comparison with ordinary differential equations. Tornøe CW,
Overgaard RV, Agersø H, Nielsen HA, Madsen H, Jonsson EN. Pharm Res. 2005
Aug;22(8):1247-58. Epub 2005 Aug 3.
$PK
; ----- Inter Occasion Code ------------------------------------------
OCCL = THETA(7) ; Length between centre of independent occasions
(days)
GAM = THETA(8) ; Shape parameter
SW = OCCL/2
DAY = TIME/24
O1 = ETA(7)/(((OCCL-OCCL/2-DAY)**2/SW**2)**GAM+1)
O2 = ETA(8)/(((2*OCCL-OCCL/2-DAY)**2/SW**2)**GAM+1)
O3 = ETA(9)/(((3*OCCL-OCCL/2-DAY)**2/SW**2)**GAM+1)
O4 = ETA(10)/(((4*OCCL-OCCL/2-DAY)**2/SW**2)**GAM+1)
O5 = ETA(11)/(((5*OCCL-OCCL/2-DAY)**2/SW**2)**GAM+1)
O6 = ETA(12)/(((6*OCCL-OCCL/2-DAY)**2/SW**2)**GAM+1)
O7 = ETA(13)/(((7*OCCL-OCCL/2-DAY)**2/SW**2)**GAM+1)
O8 = ETA(14)/(((8*OCCL-OCCL/2-DAY)**2/SW**2)**GAM+1)
O9 = ETA(15)/(((9*OCCL-OCCL/2-DAY)**2/SW**2)**GAM+1)
O10 = ETA(16)/(((10*OCCL-OCCL/2-DAY)**2/SW**2)**GAM+1)
IOV = O1+O2+O3+O4+O5+O6+O7+O8+O9+O10
; --------------------------------------------------------------------
TVCL = THETA(6)
CL = TVCL*EXP(ETA(6))*EXP(IOV)
$THETA (5,10) ; 6_CL
$THETA (10,14) ; 7_OCCL (Lower boundary = Max observed time / #
Eta in IOV code)
; If OCCL goes towards the lower boundary an O11, O12 etc. can be added
and the lower boundary hence lowered.
$THETA (0,1) ; 8_GAM_IOV
$OMEGA 0.4 ; 6_IIV_CL
$OMEGA BLOCK(1) 0.15 ; 7_IOV_CL
$OMEGA BLOCK(1) SAME
$OMEGA BLOCK(1) SAME
$OMEGA BLOCK(1) SAME
$OMEGA BLOCK(1) SAME
$OMEGA BLOCK(1) SAME
$OMEGA BLOCK(1) SAME
$OMEGA BLOCK(1) SAME
$OMEGA BLOCK(1) SAME
$OMEGA BLOCK(1) SAME
; --------------------------------------------------------------------
Best regards,
Martin Bergstrand, MSc, PhD student
-----------------------------------------------
Pharmacometrics Research Group,
Department of Pharmaceutical Biosciences,
Uppsala University
-----------------------------------------------
[email protected]
-----------------------------------------------
Work: +46 18 471 4639
Mobile: +46 709 994 396