jag009
★★★

NJ,
2012-03-19 16:16
(4805 d 15:33 ago)

Posting: # 8297
Views: 5,324
 

 SABE - 3-WAY SAS Code (95% upper bound) from FDA [RSABE / ABEL]

Gentleman,

Could you please help me out with my sas code for the 95% upper confidence bound? I am in the process of writing the sas code for a 3-way partial rep study (1T, Reference Rep), I followed the codes from FDA's Progesterone guidance but I am stuck at the 95% upper confidence bound computation. How do you get SAS to compute using the (boundx, x) from IGLM2 and (boundy, y) from DGLM1?I got the correct data for IGLM2. DGLM1 is where I have issue, I got 2 sets of (boundy and y), 1 set from MODEL and 1 set from ERROR. The critbound computation should take (boundx, x) from IGLM2 and (boundy, y) from ERROR from DGLM1, correct? For some reason SAS took (boundy, y) from MODEL from DGLM1 along with (boundx, x) from IGLM2. It should've taken (boundy, y) from ERROR from DGLM1.

Here is my code (partial)...
.
.
proc glm data=scavbe;
class sequence;
model ilat=sequence/clparm alpha=0.1;
estimate 'average' intercept 1 sequence 0.3333333333 0.3333333333 0.3333333333;
ods output overallanova=iglm1;
ods output Estimates=iglm2;
ods output NObs=iglm3;
title1 'scaled average BE';
run;

data iglm2a; set iglm2;
pointest=exp(estimate);
x=estimate**2 - StdErr**2;
boundx=(max((abs(LowerCL)),(abs(UpperCL))))**2;
run;

proc glm data=scavbe;
class sequence;
model dlat=sequence;
ods output overallanova=dglm1;
ods output NObs=dglm3;
title1 'scaled average BE';
run;

data dglm1a; set dglm1;
dfd=df;
s2wr=ms/2;

data UCL;
merge iglm2a dglm1a;
theta=((log(1.25))/0.25)**2;
y=-theta*s2wr;
boundy=y*dfd/cinv(0.95,dfd);
sWR=sqrt(s2wr);
critbound=(x+y)+sqrt(((boundx-x)**2)+((boundy-y)**2));
run;


Thank you.

Jag


Edit: Category changed. BTW, if you are always addressing “Gentleman” (why singular?) you will decrease your chances getting answers from the ladies here. I know four female biostatisticians here personally. [Helmut]
d_labes
★★★

Berlin, Germany,
2012-03-20 12:51
(4804 d 18:58 ago)

@ jag009
Posting: # 8304
Views: 4,263
 

 SABE - FDA code - The power to know

Dear Jag!

❝ DGLM1 is where I have issue, I got 2 sets of (boundy and y), 1 set from MODEL and 1 set from ERROR.


To be more correct you got 3 rows in the dataset dglm1. One with Source="Model", one with source="Error" and one with source="Corrected Total". The latter has no value for MS ("Mean Square") and thus no value for s2WR in your data step of obtaining dglm1a and thus also no value for y and and boundy in the subsequent steps.

❝ The critbound computation should take (boundx, x) from IGLM2 and (boundy, y) from ERROR from DGLM1, correct?


Yep.

❝ For some reason SAS took (boundy, y) from MODEL from DGLM1 along with (boundx, x) from IGLM2. It should've taken (boundy, y) from ERROR from DGLM1.


Not for some reason but for the reason your code has told SAS to do so :yes:.

Since you only need the MS of the error term thus code accordingly.
The progesterone guidance is here only cursory. Seems they presuppose some basic understanding what to do :-D.

Best choice (for me :cool:) would be:
 ...
proc glm data=scavbe;
  class sequence;
  model dlat=sequence;
  ods output overallanova=dglm1(where=(Source="Error"));
  ods output NObs=dglm3;
  title1 'scaled average BE - analysis of dlat';
run;
...

Or you could do it later on, f.i.:
 ...
data dglm1a;
  set dglm1;
  dfd=df;
  s2wr=ms/2;
  where Source="Error";
run;
...


Or even more later:
 ...
data UCL;
merge iglm2a dglm1a(where=(Source="Error"));
...


Its always a good habit in SAS programming not to rely on the implicit involved run; but write it down explicitly.

BTW: We had this theme already in this thread.

Regards,

Detlew
jag009
★★★

NJ,
2012-03-23 16:51
(4801 d 14:58 ago)

@ d_labes
Posting: # 8327
Views: 4,130
 

 SABE - FDA code - The power to know

Thank you D_labes :-)
UA Flag
Activity
 Admin contact
23,424 posts in 4,927 threads, 1,672 registered users;
150 visitors (0 registered, 150 guests [including 9 identified bots]).
Forum time: 08:49 CEST (Europe/Vienna)

A statistical analysis, properly conducted, is a delicate dissection of
uncertainties, a surgery of suppositions.    Micheal J. Moroney

The Bioequivalence and Bioavailability Forum is hosted by
BEBAC Ing. Helmut Schütz
HTML5