「$PREDでINFN」の編集履歴(バックアップ)一覧はこちら
「$PREDでINFN」(2005/08/15 (月) 10:24:47) の最新版変更点
追加された行は緑色になります。
削除された行は赤色になります。
*[[$PRED]] で [[INFN]] 機能を使う
-以下のようにすれば,[[$PRED]] で [[INFN]]= 機能が使えない場合でも,同等の出力を得ることができる.
--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
;
*[[$PRED]] で [[INFN]] 機能を使う
-以下のようにすれば,[[$PRED]] で [[INFN]]= 機能が使えない場合でも,同等の出力を得ることができる.
--PAR.TXT: エラーコード,目的関数値,パラメータ推定値,その SE
--POS.TXT: 各被験者の [[POSTHOC>PosthocParameter]] パラメータ推定値
$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
;
表示オプション
横に並べて表示:
変化行の前後のみ表示: