Kim,
 See simulation example two in the documentation
(below).  For the 0|1 you can either use and normal
ETA (mean = 0) easily enough if you want it 50-50 (if
ETA.LE.0 THEN 0, ELSE 1)
if you want something other than 50-50, see
documentation for RANDOM below the simulation 2
example stuff, and use a uniform seed.  You can get a
number from a uniform distribution between 0 and 1,
then do something like, if you want 1/3 0 and 2/3 1
REAL R
CALL RANDOM(2,R)
IF(R.LT.0.333) THEN
   TRT = 0
ELSE
   TRT = 1
END IF

Mark
Next Level Solutions

___________________________________________________________
 |                                                    
            |
 |                         SIMULATION 2 EXAMPLE       
            |

|_________________________________________________________________|

 This is an example of simulation with population
data.  It is  a  con-
 tinuation of Simulation Example 1.

 First, during the Simulation Step, values  of  the 
covariate  WT  are
 simulated,   as   well  as  DV  values,  as 
PK-defined  items  SIMWT.
 Normally-distributed values of ETA(3) are used. 
Values of CL are cal-
 culated  based  on  SIMWT.   SIMWT replaces WT in the
table file, and,
 because the ONLYSIM option is used, tabled values of
SIMWT  are  simu-
 lated values.

 Second, this process is repeated 10 times, using  the
 same model,  by
 means  of  the   SUBPROBLEMS option.  The table file
contains the con-
 catenated output of all the subproblems, and is the
simulated data for
 20 individuals.

 $PROBLEM Simulation of population data and weight
 $INPUT ID TIME WT AMT DV
 $DATA SIMORIG IGNORE=#
 $SUBROUTINE ADVAN1
 $PK
      SIMWT=70+70*ETA(3)
      CL=THETA(1)*SIMWT*EXP(ETA(1))
      V=THETA(2)*EXP(ETA(2))
      K=CL/V
      S1=V
 $ERROR
      Y=F+F*EPS(1)
 $THETA  .0625  10
 $OMEGA .09 .05 .04
 $SIGMA .01
 $SIMULATION (9215690) ONLYSIM SUBPROBLEMS=10
 $TABLE ID TIME SIMWT AMT NOPRINT FILE=SIMDATA2
NOHEADER

 SIMORIG is the same as with Simulation Example 1. 
Contents of SIMORIG
 (for the first two individuals) follow.

 #  ID TIME WT AMT DV
     1   0  80 100  .
     1   1  80   .  .
     2   0  75 100  .
     2   2  75   .  .

 Contents of SIMDATA2 follow, with floating-point
notation converted to
 fixed-point for the convenience of the reader.

 1.    0.   77.486  100.    0.000   10.000    0.000   
0.000
 1.    1.   77.486    0.    6.825    6.457    0.369   
0.000
 2.    0.   72.882  100.    0.000   10.000    0.000   
0.000
 2.    2.   72.882    0.    3.515    4.169   -0.653   
0.000

 REFERENCES: Guide IV, section III.B.13 (p. 31), IV.I
(p. 53)
 REFERENCES: Guide V, section 12.4.8 (p. 137)
 REFERENCES: Guide VI, section III.C (p. 10), III.E
(p. 17),  IV.B  (p.
 45), IV.G.1 (p. 53)


Random documentation

___________________________________________________________________
 |                                                    
            |
 |                                RANDOM              
            |

|_________________________________________________________________|

 MEANING: RANDOM subroutine
 CONTEXT: NONMEM utility routine

 USAGE:
 INTEGER KR
 REAL R
 CALL RANDOM (KR,R)

 DISCUSSION:
 The NONMEM utility routine RANDOM may be called (by
PRED, PK or ERROR)
 during  the Simulation Step (ICALL=4) and when data
averages are being
 computed (ICALL=5) to obtain numbers from different
random sources.

 Input argument:

  KR  An integer variable or integer constant.  The
index of  a  random
      source.

 Output argument:

  R   A number from the KRth source. Always a
single-precision  number.
      Each time RANDOM is called, a new number is
output.

 Random sources are defined using the $SIMULATION 
record.   Typically,
 the first source is reserved by NONMEM to generate
realizations of the
 eta and epsilon variables and/or to randomly mix
individuals into dif-
 ferent  subpopulations  according to the mixing
parameter. Thus, typi-
 cally, RANDOM must be called with KR > 1.  However, 
there  are  cases
 when  NONMEM  itself  needs  no random sources, and
all defined random
 sources can be used by PRED (see references).

 EXAMPLES OF USAGE:

 WT (an item in the data record, and a local  variable
 with  the  same
 name)  is generated with a simulated value having
mean 70 and standard
 deviation 7. The second random source is assumed to
be  pseudo-normal,
 which is the default distribution for each random
source.

 An abbreviated code may use RANDOM explicitly in
either  a  simulation
 or a data average block.  When RANDOM is called in
abbreviated code, R
 is reserved and is used for the random number.  E.g.,

  IF (ICALL.EQ.4.AND.NEWIND.NE.2) THEN
  CALL RANDOM(2,R)
  ENDIF
  IF (ICALL.EQ.4) WT=70+7*R

 REFERENCES: Guide IV, section III.B.13 (p. 31), IV.I
(p. 56)
 REFERENCES: Guide V, section 12.4.8 (p. 137)
--- "Kristensen, Kim" <[EMAIL PROTECTED]>
wrote:

> Dear NONMEM User
> 
> Having done a simple 2 compartment model containing
> variability on CL and V2 explained by a continoues
> covariate (BW) and a categorical covariate (DRUG)
> variable like: 
> 
> TVCL = THETA(1)*BW+THETA(2)
> IF (DRUG.EQ.0) TVV2=TVV2*THETA(3)
> IF (DRUG.EQ.1) TVV2=TVV2*THETA(4)
> 
> I then wish to do a simulation using ONLYSIM
> SUBPROBLEMS=1000
> My question is how do I set up NONMEM to do a random
> selection of the covariates during the simulation?
> Say that I want to pick values of BW between 10 and
> 100 by random and DRUG equal 0 or 1? 
> 
> Thanks in advance
> Kim
> 
> ________________________________
> Kim Kristensen, M.Sc(pharm),Ph.D. 
> Pharmacokineticist, Clinical Pharmacology
> Medical Science Sweden
> AstraZeneca R&D Lund
> SE-221 87 Lund, Sweden
> ________________________________
> 
> 
Mark Sale MD
Next Level Solutions, LLC
www.NextLevelSolns.com


> -------- Original Message --------
> Subject: [NMusers] Simulation with covariates
> From: "Kristensen, Kim" <[EMAIL PROTECTED]>
> Date: Thu, February 15, 2007 12:01 pm
> To: <[email protected]>
> 
> Dear NONMEM User
> 
> Having done a simple 2 compartment model containing variability on CL and V2 
> explained by a continoues covariate (BW) and a categorical covariate (DRUG) 
> variable like: 
> 
> TVCL = THETA(1)*BW+THETA(2)
> IF (DRUG.EQ.0) TVV2=TVV2*THETA(3)
> IF (DRUG.EQ.1) TVV2=TVV2*THETA(4)
> 
> I then wish to do a simulation using ONLYSIM SUBPROBLEMS=1000
> My question is how do I set up NONMEM to do a random selection of the 
> covariates during the simulation? Say that I want to pick values of BW 
> between 10 and 100 by random and DRUG equal 0 or 1? 
> 
> Thanks in advance
> Kim
> 
> ________________________________
> Kim Kristensen, M.Sc(pharm),Ph.D. 
> Pharmacokineticist, Clinical Pharmacology
> Medical Science Sweden
> AstraZeneca R&D Lund
> SE-221 87 Lund, Sweden
> ________________________________

Reply via email to