※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

$PREDINFN 機能を使う


  • 以下のようにすれば,$PREDINFN= 機能が使えない場合でも,同等の出力を得ることができる.
    • PAR.TXT: エラーコード,目的関数値,パラメータ推定値,その SE
    • POS.TXT: 各被験者の POSTHOC パラメータ推定値

$PROBLEM
$DATA  DATA.CSV
$INPUT ID TIME AMT MDV DV
$PRED
"FIRST
"      INCLUDE 'C:\NMV\NM\NSIZES'
"      COMMON /ROCM6/ THETAF(LTH), OMEGAF(LVR, LVR), SIGMAF(LVR, LVR)
"      COMMON /ROCM7/ SETH(LTH), SEOM(LVR, LVR), SESIG(LVR, LVR)
"      COMMON /ROCM8/ OBJECT
"      COMMON /ROCM9/ IERE, IERC
"      DOUBLE PRECISION THETAF, OMEGAF, SIGMAF
"      DOUBLE PRECISION OBJECT
"      REAL SETH, SEOM, SESIG
"      INTEGER I, J
"      INTEGER IERE, IERC
"      INTEGER MODE
"      INTEGER NTH, NETA, NEPS
"      NTH  = 2
"      NETA = 2
"      NEPS = 1
"C
"      IF (ICALL.EQ.0) THEN
"        OPEN(49, FILE = 'ETA.TXT')
"        OPEN(50, FILE = 'PAR.TXT')
"      ENDIF
 ;
 IF(NEWIND.NE.2)DOSE=AMT
 ;
 CL=THETA(1)*EXP(ETA(1))
 V =THETA(2)*EXP(ETA(2))
 K =CL/V
 ;
 F =DOSE/V*EXP(-K*TIME)
 Y =F*EXP(ERR(1))
"LAST
"      IF (ICALL.EQ.3) THEN
"        MODE = 0
"        CALL PASS(MODE)
"        MODE = 1
"20      CALL PASS(MODE)
"        IF (MODE.EQ.0) GO TO 30
"        IF (NEWIND.NE.2) THEN
"          CALL GETETA(ETA)
"          WRITE(49, *) (ETA(I), I = 1, NETA)
"        ENDIF
"        GO TO 20
"30      CONTINUE
"        WRITE (50, *) OBJECT
"        WRITE (50, *) IERE, IERC
"        WRITE (50, *) (THETAF(J), J = 1, NTH)
"        WRITE (50, *) (SETH(J), J = 1, NTH)
"7000    WRITE (50, *) ((OMEGAF(J, I), J = 1, I), I = 1, NETA)
"        WRITE (50, *) ((SEOM(J, I), J = 1, I), I = 1, NETA)
"7999    WRITE (50, *) ((SIGMAF(J, I), J = 1, I), I = 1, NEPS)
"        WRITE (50, *) ((SESIG(J, I), J = 1, I), I = 1, NEPS)
"      ENDIF
;
$THETA
(0 0.1) ; CL
(0 1) ; V
$OMEGA 0.04 0.04
$SIGMA 0.01
$EST MAXE=9999 NOABORT
$COV
$TABLE NOPRINT FILE=TAB1.TXT
 ONEHEADER
 PID TIME AMT MDV
;