Hi Gerry,

EXP(-X) might become such a small number that PRN no longer increases. For 
example, 0.5+S is represented as 0.5 for small S. Using verbatim code (see 
nmhelp) you could print N, PY and PRN to see if something like this occurs.

Best regards,

Erik
________________________________
From: [email protected] [[email protected]] on behalf of 
Gerry Sheng [[email protected]]
Sent: Wednesday, July 30, 2014 10:40 AM
Cc: nmusers
Subject: Re: [NMusers] Simulation problem of normal distributed data

Dear Goyal,

Thank you for your advice. I changed the second seed to 17545, but the new 
cutoff number of  records is 1498 . If data records>1498, the same problem 
still exists.

Best wishes,
Yucheng Sheng
Research Associate
School of Pharmacy, UCL


On 29 July 2014 23:25, Navin Goyal 
<[email protected]<mailto:[email protected]>> wrote:
Hi Sheng,
I don't know the exact reason behind such mysterious behavior but if you just 
change the seed number (the UNIFORM seed) it works.
 e.g.   I changed the seed# from 7545 to 17545 and was able to simulate 1000 
rows for the subject.

$SIMULATION (6446) (17545 UNIFORM) ONLYSIM NOPRED SUB=1

Its a rare occurrence but may be the seed number caused some issue (while 
generating sufficient samples to satisfy the constraints you set up using the 
DOWHILE LOOP). For example I think the same seed number (7545) may work when 
the DOWHILE condition is reversed
(RL .LT. PRN) however it may not be appropriate based on your problem. 
.......or may be there is some other explanation to such occurrence.

Kind regards
Navin Goyal






On Tue, Jul 29, 2014 at 10:54 AM, Gerry Sheng 
<[email protected]<mailto:[email protected]>> wrote:
Dear NMuser,

I encountered a strange problem when I used the following code to simulate 
normal distributed data. When the data records >797, no result appears with 
NONMEM run into an infinite loop . But when the records decreasing to 796 
(delete the last row), the results will occurred immediately. Anyone else met 
this phenomenon? Any comments and suggestions are appreciated. Thank you in 
advance.

$PROBLEM PD
$INPUT ID,CONC,DV
$DATA data.csv IGNORE=@ ;

$PRED
NMEAN=THETA(1)+ETA(1)
SD=THETA(2)

;Simulate count
IF (ICALL.EQ.4) THEN
N=0
PRN=0
CALL RANDOM(2, R)
RL=1-R
DO WHILE (RL .GT. PRN)
LNNOR=LOG(6.283185)+2*LOG(SD)+((N-NMEAN)/SD)**2
PY=EXP(-0.5*LNNOR)
PRN=PRN+PY
IF (PRN .LT. RL) N=N+1
ENDDO
DV=N
ENDIF

$THETA
(30,41.7,60) ;MEAN
(2,14.4,50) ;SD

$OMEGA
0 FIX ;MEAN

$SIMULATION (6446) (7545 UNIFORM) ONLYSIM NOPRED SUB=1
$TABLE ID TIME DV ONEHEADER NOPRINT FILE=npctab1.dta

data.csv like this
ID    CONC    DV
1    0    .
1    0    .
1    0    .
1    0    .
1    0    .
1    0.01    .
1    0.01    .
1    0.01    .
1    0.01    .
1    0.01    .
.....

Yucheng Sheng

Research Associate
School of Pharmacy, UCL



--
Navin Goyal

Reply via email to