3rd, 4th opinion [RSABE / ABEL]

posted by d_labes  – Berlin, Germany, 2013-04-05 13:04 (4423 d 07:55 ago) – Posting: # 10349
Views: 9,564

Dear John!

I have checked your results with a different coding approach avoiding all the bells and whistles with separating the values for Test and Ref., coding sequences numeric and getting the replicates by such monsters like
...
 if (seq=1 and per=3) or (seq=2 and per=3) or (seq=3 and per=2);
...

which depend naturally on the sequence numbering and is error prone.

Here my code, taking your first posted data:
Data John;
input subject period tmtAB $ seqABC $ logval;
datalines;
 1 1 B B 7.423568444
 1 2 A B 7.70210434
 1 3 B B 6.964135612
...
;
run;
* recode. not really necessary but common notation;
data john;
  set john;
  if tmtAB='A' then tmt='T';
  if tmtAB='B' then tmt='R';
  if seqABC='A' then sequence='TRR';
  if seqABC='B' then sequence='RTR';
  if seqABC='C' then sequence='RRT';
  if seqABC='A' then seq=1;
  if seqABC='B' then seq=2;
  if seqABC='C' then seq=3;
run;
* replicate no. this is the KEY step;
Proc sort data=john; by subject tmtAB period; run;
data john;
  set john;
  by subject tmtAB;
  if first.tmtAB then repl=1;
  else repl+1;
run;
data john;
  set john;
  tmtrepl=tmt||put(repl,1.);
run;
* make the wide form with columns T1 R1 R2;
Proc transpose data=john out=john_t;
  by subject sequence seq;
  var logval;
  id tmtrepl;
run;
* intra-subject contrasts;
Data john_t;
  set john_t;
* the only place to change in case of full replicate;
* use then TR=0.5*(T1+T2-R1-R2);

  TR=T1-0.5*(R1+R2);
  RR=R1-R2;
  * uncomment next line to get the CRO results;
  * if seq=2 then RR=-RR;
run;
* and now: trara-trara-tra-ra the ANOVA for R-R;
Title GLM analysis of R-R;
Proc GLM data=john_T;
  class sequence;
  model RR = sequence;
run; quit;


Output omitted. It is totally the same as your results :cool:.

Fortunately the mse's (=2*s2wR) are the same in both evaluations.
You can obtain the results of the CRO if you uncomment the statement in red above. It seems that the use of the progesterone code without considering the different numbering of the sequences has lead to such a calculation.
By luck this contrast doesn't change the mse because nobody will challenge you defining R-R as R2-R1 instead of the usual R1-R2.

The ANOVA for T-R (ilat in the progesterone guidance speak) is left as your homework :-D. Also the various 'ODS output' statements to save the necessary terms for calculating the linearized scaled ABE criterion and its 95% CI.

BTW: 4th opinion: An R implementation using the same spirit as the SAS code above gives
Analysis of Variance Table

Response: RR
          Df  Sum Sq Mean Sq F value Pr(>F)
sequence   2  0.1797 0.08986  0.2771 0.7588
Residuals 66 21.4025 0.32428

Regards,

Detlew

Complete thread:

UA Flag
Activity
 Admin contact
23,424 posts in 4,927 threads, 1,668 registered users;
148 visitors (0 registered, 148 guests [including 7 identified bots]).
Forum time: 20:59 CEST (Europe/Vienna)

Don’t undertake a project
unless it’s manifestly important
and nearly impossible.    Edwin H. Land

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