Nonlinear Regression - Orlistat to Reduce Fat Absorption

advertisement
Nonlinear Regression
Orlistat for Fat Absorption
Zhi, J., Melia, A.T., Guericiolini, R. et al. (1994) “Retrospective Population-Based
Analysis of the Dose-Response (Fecal Fat Excretion) Relationship of Orlistat in Normal
and Obese Volunteers,” Clinical Pharmacology and Therapeutics, 56:82-85
Data Description
• 163 Patients assigned to one of the following doses
(mg/day) of orlistat: 0, 60,120,150,240,300,480,600,1200
• Response measured was fecal fat excretion (purpose is to
inhibit fat absorption, so higher levels of response are
considered favorable)
• Plot of raw data displays a generally increasing but
nonlinear pattern and large amount of variation across
subjects
Fecal Fat Excretion vs Orlistat Daily Dose
60
50
Percent FFE
40
ffe
30
meanffe
20
10
0
0
200
400
600
800
Dose
1000
1200
1400
Nonlinear Regression Model
1 x
Y  0 

2  x
Simple Maximum Effect (Emax) model:
 0 ≡ Mean Response at Dose 0
• 1 ≡ Maximal Effect of Orlistat (0 1  Maximum Mean Response)
• 2 ≡ Dose providing 50% of maximal effect (ED50)
Nonlinear Least Squares
fi     f (  0 , 1 ,  2 )   0 
1 X i
2  X i
fi    
Xi
Fi    
 1
T

  2  X i
 Y1 
Y   
Yn 

2
  2  X i  
1 X 1 



0
2  X1 
 f1     


 
f    



 f n     

X
 0  1 n 

 2  X n 
X1

1
  X
 F1     
2
1

 
F    

 Fn     
Xn
1
  X
2
n

 1 X i
 1 X 1

2 


X
 2 1 


 1 X n 
2
  2  X n  
Nonlinear Least Squares
^
^
^
Goal : Choose  0 ,  1 ,  2 that minimize error sum of squares :
2




X
1
i
Q  SSE      Yi    0 
  
2  X i  
i 1 

n
 Y  f   Y  f  
T
n 



X
Q
1
i
 2  Yi    0 
 Fi  j  j  0,1,2
 j
2  X i  
i 1 

set
Q
T
 2 y  f   F    0 0 0
T

Nonlinear Least Squares
0 
^

 ^   
T
 F     y  f      0 
 
 
0
^
Obtaining  :
Step 1 : Obtain a starting estimate from data :  0
Step 2 : 
^
(1)
    
  F  F 
0
^
( 2)
T
0
0
1
 
 
FT  0 Y  f  0
^
(1)
Step 3 : Obtain  by repeating Step 2 with  replacing  0
Continue to Convergenc e (sum of squared difference s between old
and new estimates is below some " tolerance level" )
Estimated Variance-Covariance Matrix

  2 
V     s  F F 
 


^
^ T ^
^

Y 

2
s 

f

 
  i   s
 
^
^
^
T
1

Y 

n

f

^
1


 F F 

 ( i1,i1)
^ T ^
Orlistat Example
• Reasonable Starting Values:
 0: Mean of 0 Dose Group: 5
 1: Difference between highest mean and dose 0 mean: 33-5=28
 2: Dose with mean halfway between 5 and 33: 160
• Create Vectors Y and f (0)
• Generate matrix F (0)
• Obtain first “new” estimate of 
• Continue to Convergence
Orlistat Example – Iteration History (Tolerance = .0001)
iteration
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
b0
5.0000
6.2379
6.1771
6.1507
6.1361
6.1277
6.1227
6.1197
6.1180
6.1169
6.1162
6.1158
6.1156
6.1155
6.1154
6.1153
b1
28.0000
28.5863
28.1281
27.9163
27.7967
27.7272
27.6861
27.6615
27.6467
27.6377
27.6323
27.6291
27.6271
27.6259
27.6251
27.6247
b2
160.0
140.9
133.7
129.9
127.8
126.5
125.8
125.4
125.1
125.0
124.9
124.8
124.8
124.8
124.7
124.7
sse
13541.6
12945.5
12942.9
12942.2
12942.0
12941.9
12941.9
12941.9
12941.9
12941.9
12941.9
12941.9
12941.9
12941.9
12941.9
12941.9
Delta(b)
365.5745
52.82514
14.44159
4.506448
1.51015
0.526394
0.187692
0.067823
0.024703
0.009041
0.003318
0.00122
0.000449
0.000165
6.09E-05
27.62 X
Y  6.12 
124.7  X
^
Fitted Equation, Raw Data - FFE vs ODD
60
50
fecal fat excretion
40
ffe
30
f(odd,bhat)
20
10
0
0
200
400
600
800
orlistat daily dose
1000
1200
1400
Variance Estimates/Confidence Intervals
2

 
Y

f


i
i   
 
S 2  i 1 
 80.89
163  3
 1.1594  0.7219 15.609 
T ^ 1
^
^
^

 
2

V     S  F F    0.7219 12.081 130.14 
 


 15.609
130.14 2238.76
163
^
Parameter
Estimate
Std. Error
95% CI
0
6.12
1.08
(3.96 , 8.28)
1
27.62
3.48
(20.66 , 34.58)
2
124.7
47.31
(30.08 , 219.32)
SAS Code
Proc nlin;
Parms b0=5 b1=28 b2=160;
Model y = b0 + ((b1*x)/(b2+x));
Der.b0 = 1;
Der.b1 = x/(b2+x);
Der.b2 = -((b1*x)/((b2+x)**2));
Run;
Download