FDA's HVD SAS Code / Stan­dard Error / CV [Regulatives / Guidelines]

posted by Helmut Homepage – Vienna, Austria, 2022-12-08 13:09 (61 d 11:37 ago) – Posting: # 23392
Views: 1,200

Hi j_kevin,

❝ Q1: May I ask why in 2*2*2 cross over design, SE = sqrt(MSE)*sqrt(2/N)?


Correct is $$SE=\sqrt{\frac{MSE}{2}\left(\frac{1}{n_1}+\frac{1}{n_2}\right),}\tag{1}$$ where \(\small{n_1}\) and \(\small{n_2}\) are the number of subjects in sequences \(\small{1}\) and \(\small{2}\), respectively.*
If and only if sequences are balanced (\(\small{n_1=n_2\to N=n_1+n_2}\)) you can use $$\eqalign{SE&=\sqrt{\frac{2\,MSE}{N}}\\
&=\sqrt{MSE}\,\cdot\,\sqrt{\frac{2}{N}}}\tag{2}$$ instead. In order to avoid falling into a trap (i.e., using \((2)\) if \(\small{n_1\neq n_2}\)), I strongly recommend to use always \((1)\).

❝ Here is the SAS code for the analysis of ABE with fully replicate design data.


PROC MIXED;

❝ CLASSES SEQ SUBJ PER TRT;

❝ MODEL Y = 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;


❝ Q2: When should I write 1 -1 and when should I write -1 1 in estimate statements?


All software use lexical order. Hence, it depends how you coded test and reference, i.e., in the FDA’s SAS-code as T and R. By default the comparison will be done R - T because in lexical order T > R and last one will act as the reference. If you have other ones, you may have to code TRT in ESTIMATE differently.

❝ Here is the covariance output from SAS


Covariance Parameter Estimates

❝ Cov Parm  Subject       Group         Estimate

❝ FA(1,1)   subject                     0.2001

❝ FA(2,1)   subject                     0.1263

❝ FA(2,2)   subject                     0.1507

❝ Residual  subject   formulation Ref   0.01495

❝ Residual  subject   formulation Test  0.03265

❝ G(1,1) = 0.04005, G(2,1)=G(1,2)=0.02527, G(2,2)=0.03866


❝ In replicate design, the intra-subject variabilities are still calculated from the residuals as in a 2-way crossover, using:

❝ IntraCV_T = 100%*sqrt(exp(sig_WT^2)-1)

❝ IntraCV_R = 100%*sqrt(exp(sig_WR^2)-1)


If you remove the %, correct.

❝ The data include 10 subjects and 5 in seq 1 and 5 in seq2. This is a 2*2*4, 2 sequence 2 treatment and 4 period design, 90% CI of T/R is (0.8450984199, 1.104975448) and point estimate is 0.9663400049.

❝ I tried to use CVfromCI function from R package PowerTOST to calculate CV, and here is my r code:

100*CVfromCI(alpha=0.05, lower=0.8450985339, upper=1.104975299, n=c(5,5), design="2x2x4")

❝ and I get CV = 25.24456.


❝ Q3: Is this CV a pooled CV?


Correct, since the 90% CI is based on it.

❝ If I want to get CVwt and CVwr based on confidence interval, how can I do it using R package


That’s not possible because there is an infinite number of combinations of CVwT and CVwR giving the same CVw. Example:

library(PowerTOST)
CV         <- 0.2524456 # CVw (pooled from the – unknown – CVwT and CVwR)
# (random) variance ratios
ratios     <- unique(sort(c(1, exp(runif(n = 10, min = log(0.5), max = log(2))))))
CVs        <- data.frame(var.ratio = ratios,
                         CVwT = NA_real_,
                         CVwR = NA_real_,
                         CVw = NA_real_)
CVs[, 2:3] <- CVp2CV(CV = CV, ratio = ratios)
# pool CVwT and CVwR
CVs[, 4]   <- mse2CV((CV2mse(CVs$CVwT) + CV2mse(CVs$CVwR)) / 2)
print(CVs, row.names = FALSE) # q.e.d.

 var.ratio      CVwT      CVwR       CVw
 0.5431852 0.2108360 0.2887240 0.2524456
 0.5917929 0.2168147 0.2841055 0.2524456
 0.5928429 0.2169383 0.2840082 0.2524456
 0.6628259 0.2246914 0.2777378 0.2524456
 0.8504489 0.2417246 0.2627799 0.2524456
 1.0000000 0.2524456 0.2524456 0.2524456
 1.1854322 0.2632860 0.2411789 0.2524456
 1.3868117 0.2728234 0.2305029 0.2524456
 1.6521422 0.2828633 0.2183837 0.2524456
 1.7311022 0.2854248 0.2151306 0.2524456
 1.8842596 0.2899458 0.2092142 0.2524456


❝ Q4: I try to use the formula 100%*sqrt(exp(sig_W^2)-1) where sig_w^2 = (sig_wt^2+sig_wr^2)/2 to get the same CV(25.24456) based on the covariance output above, but the value is different. Is my calculation wrong? If so, can anyone please tell me the right way to get same CV?


No idea, I don’s speak SAS. AFAIK, FA(2,2) is the subject-by-formulation interaction. 0.1507 is unusually large.



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

Complete thread:

UA Flag
Activity
 Admin contact
22,485 posts in 4,710 threads, 1,603 registered users;
16 visitors (0 registered, 16 guests [including 9 identified bots]).
Forum time: 00:47 CET (Europe/Vienna)

The difference between a surrogate and a true endpoint
is like the difference between a cheque and cash.
You can get the cheque earlier but then,
of course, it might bounce.    Stephen Senn

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