weiguo2122
☆    

2023-04-19 16:43
(227 d 00:32 ago)

(edited by on 2023-04-19 17:13)
Posting: # 23527
Views: 1,503
 

 ABE results from SAS and WinNolin are not matched [Regulatives / Guidelines]

Hi, Please help on the issue.

when I compared the ABE (Proc Mixed) output between SAS (FDA Draft Guidance on Progesterone, SAS code) and WinNonlin, they are not matched. For the given dataset (see code and dataset below)

SAS

ratio/ unscabe_lower/ unscabe_upper
135.096 / 115.546 / 157.954


WinNolin BE tool:

Ratio_%Ref_/ CI_90_Lower/ CI_90_Upper
Ln(Cmax)/ 74.0214/ 63.3096 /86.54555


Phoenix FDA RSABE Full Replicate template v1.4:

Dependent/ Ratio_%Ref_/ CI_90_Lower/ CI_90_Upper/
Data/ 74.021385/ 63.3096/ 86.54555/



However, if I change “TRT 1 -1” to “TRT -1 1” in “ESTIMATE 'T vs. R' TRT 1 -1 /CL ALPHA=0.1 in below SAS code ” I got them matched.
ratio/ unscabe_lower/ unscabe_upper
74.021385/ 63.3096/ 86.54555


I am wondering.
1. If anyone have same issue?
2. if we should change ESTIMATE 'T vs. R' to “TRT -1 1” since discussion in this Forum and FDA SAS code indicate we should use “TRT 1 -1” not “TRT -1 1”
3. If not how to deal this issue to make it consistent for results from two side?
Thanks

David

data Pk;
input subj per seq$ trt$ Cmax;
datalines;
1 1 RRT R 8592.1516
1 2 RRT R 9991.7692
1 3 RRT T 7877.606
2 1 TRR T 18119.532
2 2 TRR R 13082.5504
2 3 TRR R 20443.9168
3 1 RTR R 9964.4028
3 2 RTR T 7849.2956
3 3 RTR R 9930.2392
4 1 RRT R 11545.9044
4 2 RRT R 9931.7044
4 3 RRT T 4738.6024
5 1 RTR R 24863.772
5 2 RTR T 18131.4312
5 3 RTR R 18598.8372
6 1 RTR R 18767.834
6 2 RTR T 9631.2328
6 3 RTR R 13983.2816
7 1 TRR T 12357.3376
7 2 TRR R 12691.0256
7 3 TRR R 18033.464
8 1 RRT R 12490.2528
8 2 RRT R 29039.6884
8 3 RRT T 7453.3548
9 1 TRR T 13225.8472
9 2 TRR R 16836.392
9 3 TRR R 18455.9432
10 1 TRR T 7004.77
10 2 TRR R 16164.5532
10 3 TRR R 14568.2016
11 1 TRR T 24770.8476
11 2 TRR R 18791.1712
11 3 TRR R 20901.2328
12 1 RTR R 13570.0112
12 2 RTR T 13299.33
12 3 RTR R 14449.334
13 1 RRT R 16827.2456
13 2 RRT R 18581.1544
13 3 RRT T 13971.156
14 1 RRT R 10933.23
14 2 RRT R 15124.9448
14 3 RRT T 7768.3136
15 1 RTR R 10889.7196
15 2 RTR T 6809.4608
15 3 RTR R 10329.3052
16 1 RRT R 16119.3252
16 2 RRT R 20508.9744
16 3 RRT T 21888.374

;
run;

data pk;
set pk;
lauct=log(Cmax) ;
run;


PROC MIXED
data=pk;
CLASS SEQ SUBJ PER TRT;
MODEL LAUCT = SEQ PER TRT/ DDFM=SATTERTH;
RANDOM TRT/TYPE=FA0(2) SUB=SUBJ G;
REPEATED/GRP=TRT SUB=SUBJ;
ESTIMATE 'T vs. R' TRT 1 -1 /CL ALPHA=0.1;
ods output Estimates=unsc1;
title1 'unscaled BE 90% CI - guidance version';
title2 'AUCt';
run;

data unsc1;
set unsc1;
ratio=exp(estimate)*100;
unscabe_lower=exp(lower)*100;
unscabe_upper=exp(upper)*100;
run;
BEQool
☆    

Slovenia,
2023-04-20 08:21
(226 d 08:54 ago)

@ weiguo2122
Posting: # 23528
Views: 1,219
 

 ABE results from SAS and WinNolin are not matched

Hello!

I don't know if this is the answer you are looking for but 74.021385 is an inverse of a number 135.096 (1/1.35096=0.740214). So in this case you just have to change which treatment (T or R) will act as a reference.

For the explanation see this post - question 2



Hope it helps
BEQool
Helmut
★★★
avatar
Homepage
Vienna, Austria,
2023-04-20 10:13
(226 d 07:02 ago)

@ weiguo2122
Posting: # 23529
Views: 1,198
 

 Variable names, lexical order?

Hi weiguo2122$2gmail.com,

please give something closer to a human name in your profile. Maybe better: Suggest another nick and I will change it in the database.

❝ when I compared the ABE (Proc Mixed) output between SAS (FDA Draft Guidance on Progesterone, SAS code) and WinNonlin, they are not matched.


74.02% (90% CI: 65.69–83.41%) is correct. Confirmed in Phoenix/WinNonlin, R, and ‘manually’ in a spreadsheet. See BEQool’s post above for the likely explanation.
I don’t speak SAS; try to remove to dollar-characters from the headers in your data statement.


PS: Your lauct=log(Cmax); is funny. :-D

Dif-tor heh smusma 🖖🏼 Довге життя Україна! [image]
Helmut Schütz
[image]

The quality of responses received is directly proportional to the quality of the question asked. 🚮
Science Quotes
PharmCat
★    

Russia,
2023-04-20 21:58
(225 d 19:17 ago)

@ Helmut
Posting: # 23531
Views: 1,160
 

 Variable names, lexical order?

Hi weiguo2122$2gmail.com!


❝ 1. If anyone have same issue?

❝ 2. if we should change ESTIMATE 'T vs. R' to “TRT -1 1” since discussion in this Forum and FDA ❝ SAS code indicate we should use “TRT 1 -1” not “TRT -1 1”

❝ 3. If not how to deal this issue to make it consistent for results from two side?

Thanks

1. This not an issue.
2. “TRT -1 1” - this only mean what level is a base, just from what you doing subtraction (you should define it in accordance with your data)
3. This is no problem just set it “TRT 1 -1”
weiguo2122
☆    

2023-04-21 16:15
(225 d 01:00 ago)

@ Helmut
Posting: # 23534
Views: 1,134
 

 Variable names, lexical order?

❝ 74.02% (90% CI: 65.69–83.41%) is correct. Confirmed in Phoenix/WinNonlin, R, and ‘manually’ in a spreadsheet. See BEQool’s post above for the likely explanation.

❝ I don’t speak SAS; try to remove to dollar-characters from the headers in your data statement.


Thanks all for your replying.

1. I accidentally put "weiguo2122$2gmail.com" as my username, now it is hard to make a change because "edit profile" do not allow me make change". If possible, please change my username as "Weiguo21224" at your end.

2. I carefully reviewed previous discussion. My understanding is that "T" and "R" in FDA code do represent the "Test drug" and "Reference drug" respectively. It should be:

ESTIMATE 'T (the large/later one in lexical order, Reference drug) vs. R (the small/early one in lexical order, Test drug') TRT 1 -1/CL ALPHA=0.1;

Right?

Best!

David


Edit: Full quote removed. Please delete everything from the text of the original poster which is not necessary in understanding your answer; see also this post #5[Helmut]
Helmut
★★★
avatar
Homepage
Vienna, Austria,
2023-04-21 17:45
(224 d 23:30 ago)

@ weiguo2122
Posting: # 23535
Views: 1,120
 

 Variable names, lexical order?

Hi David or Guo,

❝ 1. […] please change my username as "Weiguo21224" at your end.


Done.

❝ 2. I carefully reviewed previous discussion. My understanding is that "T" and "R" in FDA code do represent the "Test drug" and "Reference drug" respectively.


Correct so far.

❝ It should be:


❝ ESTIMATE 'T (the large/later one in lexical order, Reference drug) vs. R (the small/early one in lexical order, Test drug') TRT 1 -1/CL ALPHA=0.1;


❝ Right?


In your example and the FDA’s code, yes and no. Alphanumeric codes are internally converted to factors in lexical order and integers by default. At least in all software I know. Examples in [image]:
  1. trt <- as.factor(c("T", "R"))            # T > R
    print(trt); print(as.integer(trt))
    [1] T R
    Levels: R T
    [1] 2 1

  2. trt <- as.factor(c("Test", "Reference")) # Test > Reference
    print(trt); print(as.integer(trt))
    [1] Test      Reference
    Levels: Reference Test
    [1] 2 1

  3. trt <- as.factor(c("A", "B"))            # A < B
    print(trt); print(as.integer(trt))
    [1] A B
    Levels: A B
    [1] 1 2

  4. trt <- as.factor(c("tablet", "capsule")) # tablet > capsule
    print(trt); print(as.integer(trt))
    [1] tablet  capsule
    Levels: capsule tablet
    [1] 2 1
In all examples – except the third – the levels of the factors are internally reordered. If you are interested in the contrast (difference) of estimated treatment effects, you have to tell the software which of the treatment is the reference. If you don’t, the one with the internally smallest integer will be subtracted from the larger one. Therefore, in the first example you would get R – T instead of the desired T – R.

Dif-tor heh smusma 🖖🏼 Довге життя Україна! [image]
Helmut Schütz
[image]

The quality of responses received is directly proportional to the quality of the question asked. 🚮
Science Quotes
UA Flag
Activity
 Admin contact
22,811 posts in 4,783 threads, 1,634 registered users;
31 visitors (0 registered, 31 guests [including 8 identified bots]).
Forum time: 16:15 CET (Europe/Vienna)

Inspiration is constantly in the air.
It’s up to us to develop the sensitivity
to pick up on it.    Herbie Hancock

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