推定値の分散共分散行列
- NONMEM のアウトプット中に($COV を指定したときに)出力されてくる "Covariance Matrix of Estimate".
- 通常はあまり使い道はないのだが,時々必要になる.
- しかし,アウトプットファイルにおける分散共分散行列推定値も,これまた利用しにくい.
- そこで,INFN 機能を利用して,この情報を取り出してみる.
- NTH, NETA, NEPS の行に,それぞれ,THETA, ETA, EPS の数を適切に指定する.
- 結果は COV.TXT というファイルに出力される.数値の意味はアウトプットの該当欄と見比べてみればすぐにわかるだろうから,説明省略.
SUBROUTINE INFN(ICALL, THETA, DATREC, INDXS, NEWIND)
C
INCLUDE 'C:\NMV\NM\NSIZES'
COMMON /CM12/ COVM(LPAR3)
INTEGER MODE
INTEGER NTH, NETA, NEPS
INTEGER NALL
C
C THE NEXT 3 LINES SHOULD BE EDITED FOR THE NUMBERS OF ETAs,
C THETAs AND EPSIILONs IN YOUR PROBLEM
C
NTH = 3
NETA = 3
NEPS = 1
C
NALL = NTH + NETA*(NETA+1)/2 + NEPS*(NEPS+1)/2
NALL = NALL * (NALL+1) / 2
C
IF (ICALL.EQ.0) THEN
OPEN(51, FILE = 'COV.TXT')
ENDIF
C
IF (ICALL.EQ.3) THEN
MODE = 0
CALL PASS(MODE)
MODE = 1
20 CALL PASS(MODE)
IF (MODE.EQ.0) GO TO 30
GO TO 20
30 CONTINUE
WRITE(51,*) (COVM(I),I=1,NALL)
ENDIF
C
RETURN
END