From: "Bachman, William"
Subject: [NMusers] "Tip of the Week #9 - April 24, 2002" - modeling log-transformed data
Date: Wed, 24 Apr 2002 14:01:19 -0400
Tip of the Week #9 - modeling log-transformed data
Due to the amount of traffic lately on the nmusers list regarding the
modeling of log-transformed data, I thought a good topic for this week's tip
would be modeling log-transformed data. I will leave the relative merits of
modeling transformed data to previous posts on the list and the modelers
discretion. In its simplest form, modeling log-transformed data consists of
adding a column with the logarithm of the dependent variable to your
original data set and using an appropriate logarithmic expression of the
error model.
In the case where one wants to approximate a proportional residual error
structure (as applied to non-transformed data) to the transformed data, one
would use an expression like the following for the residual error:
Y=LOG(F)+ERR(1)
There has been much discussion (Chuanpu Hu & Leonid Gibiansky, primarily)
about how one could approximate the additive and proportional residual error
model often found to be useful with non-transformed data. Lewis Sheiner
suggested a model published by Stuart Beal (JPP 28(5), 2001, 481-504). This
model has been referred to (elsewhere) as "the double exponential error
model" and can be coded as follows:
Y=LOG((F)+THETA(3))+(F*ERR(1))/(F+THETA(3))+(THETA(3)*ERR(2))/(F+THETA(3))
I would caution any modeler to first read this paper and be aware of the
characteristics of this model before implementing it. For your amusement
and amazement, I include here a full control stream implementing
log-transformed data and the "the double exponential error model":
;Model Desc: base model using log-transformed data and Beal error model
;Project Name: example1
;Project ID: GM00-001
$PROB RUN# 105 (PHENOBARBITAL POPULATION PK MODEL)
$INPUT C ID TIME AMT WT APGR XDV EVID MDV DV
$DATA LN002.CSV IGNORE=C
$SUBROUTINES ADVAN1
$PK
TVCL=THETA(1)
CL=TVCL*EXP(ETA(1))
TVV=THETA(2)
V=TVV*EXP(ETA(2))
K=CL/V
S1=V
TAD=TIME
OBS=XDV ;non-transformed observations
$ERROR
PRD=F ;individual non-transformed prediction (with POSTHOC or FOCE)
;otherwise, the population non-transformed prediction
;Beal, JPP 28(5), 2001, p.488
Y=LOG((F)+THETA(3))+(F*ERR(1))/(F+THETA(3))+(THETA(3)*ERR(2))/(F+THETA(3))
IF(F.GT.0) THEN
IPRED=LOG(F) ;the log-transformed individual prediction
ELSE
IPRED=0
ENDIF
$THETA
(0, 1) ;CL
(0, 5) ;V
(0, 0.1) ;"m, a positively constrained variance parameter"
$OMEGA
0.16 ;[P] inter-individual variability in CL
0.16 ;[P] inter-individual variability in V
$SIGMA
0.1 ;e1, random error term
0.1 ;e2, random error term
$EST MAXEVAL=9999 PRINT=20 NOABORT METHOD=1 INTERACTION MSF=105.MSF
$COV
$TABLE ID TIME TAD IPRED OBS PRD NOPRINT ONEHEADER FILE=105.TAB
[errors may be reported to the author and are welcomed.]
[Generic Disclaimer: Verify that this code or any other code you receive
from an outside source works with YOUR DATA.]
Previous tips may be found in the NONMEM Repository@GloboMax:
ftp://ftp.globomaxnm.com/Public/nonmem/tips/
*****************************************************************
If you have a "tip" or a better way to do things, by all means, feel free to
post them! One of the reasons for doing this (other than good PR for
GloboMax), is to stimulate discussion. We at GloboMax can learn from your
experience as well.
Do you have a "tip" you would like to share, but would prefer to remain
anonymous? If so, you may forward it to us and your identity will be
withheld. Distribution as a "Tip of the Week" will be at the discretion of
nmconsult@globomaxnm.com.
*****************************************************************
nmconsult@globomaxnm.com
GloboMax LLC
7250 Parkway Drive, Suite 430
Hanover, MD 21076
Voice: (410) 782-2205
FAX: (410) 712-0737