lizhao
☆    

US,
2016-02-17 20:01
(3260 d 09:38 ago)

Posting: # 16003
Views: 10,449
 

 how to construct confidence interval for un-transformed metric? [Power / Sample Size]

Dear all,

For clinical endpoints, I suppose the log-normal distribution doesn't hold, therefore I should use un-transformed data to construct the 90% confidence interval? Then it would be the confidence interval of mean Test/Reference ratio? Am I correct?

But then, would the acceptance limits become 80% to 120% instead? If somebody could help me out, it would be greatly appreaciated!!

Thanks!
jag009
★★★

NJ,
2016-02-17 21:43
(3260 d 07:56 ago)

@ lizhao
Posting: # 16004
Views: 8,927
 

 how to construct confidence interval for un-transformed metric?

mittyri
★★  

Russia,
2016-02-17 23:34
(3260 d 06:05 ago)

@ lizhao
Posting: # 16005
Views: 8,972
 

 how to construct confidence interval for un-transformed metric?

Hi lizhao,

Some example from the ordinary guidance:
[image]

❝ For clinical endpoints, I suppose the log-normal distribution doesn't hold, therefore I should use un-transformed data to construct the 90% confidence interval? Then it would be the confidence interval of mean Test/Reference ratio? Am I correct?


It could be the difference or the ratio.
It is common practice to suppose normal distribution of clinical endpoints.
BTW be aware, are you sure that your clinical endpoint is distributed normally?

❝ But then, would the acceptance limits become 80% to 120% instead?


Exactly (+/-0.2)

Kind regards,
Mittyri
Helmut
★★★
avatar
Homepage
Vienna, Austria,
2016-02-18 14:38
(3259 d 15:01 ago)

@ mittyri
Posting: # 16006
Views: 8,881
 

 Fieller’s confidence interval

Dear all,

don’t mix up differences with percentages. It’s up to you (maybe supported by a scientific advice) to consider which deviation of the endpoint is clinically relevant.
See these threads: #11431, #9534, #1870 and the references given within them.

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
lizhao
☆    

US,
2016-02-22 21:20
(3255 d 08:19 ago)

@ Helmut
Posting: # 16017
Views: 8,642
 

 Fieller’s confidence interval

Dear Helmut and all,

Thank you very much for your help! I have done some literature search on Fieller's confidence interval and I am ready to use R to construct the confidence interval. I wonder if you know where I can find some R code/package to compute Fieller's confidence interval? Also, I think the computation depends on parallel or crossover design, as the intrasubject variability would be different? Am I correct?

Thanks a lot!
yjlee168
★★★
avatar
Homepage
Kaohsiung, Taiwan,
2016-02-23 09:23
(3254 d 20:16 ago)

@ lizhao
Posting: # 16018
Views: 8,679
 

 Fieller’s confidence interval

Hi lizhao,

There is another easy way to calculate Fieller's CI. See this link. Also if you prefer using R/package, see the package mratios. You should be able to find the R codes for Fieller's CI from package mratios. Never used both before. Try it yourself.

All the best,
-- Yung-jin Lee
bear v2.9.2:- created by Hsin-ya Lee & Yung-jin Lee
Kaohsiung, Taiwan https://www.pkpd168.com/bear
Download link (updated) -> here
d_labes
★★★

Berlin, Germany,
2016-02-23 10:08
(3254 d 19:31 ago)

@ lizhao
Posting: # 16021
Views: 8,606
 

 Rescue approaching – PowerTOST

Dear lizhao,

package PowerTOST aka "Swiss army knife for lazy guys dealing with BE studies" has a function CI.RatioF() for calculating the Fieller's confidence interval for the designs "2x2" and "parallel" given estimates of the GMR, CV and CVb(between).

The theoretical background can be found in:

Hauschke et al.
"Sample Size Determination for Proving Equivalence Based on the Ratio of Two Means For Normally Distributed Data"
Statist. Med. 18, 93-105 (1999)

or

Hauschke D., Steinijans V. and Pigeot I.
"Bioequivalence Studies in Drug Development"
Chapter 10., John Wiley & Sons, Chichester (2007)


Regards,

Detlew
Weidson
☆    

Brazil,
2024-11-29 00:15
(53 d 05:24 ago)

@ d_labes
Posting: # 24305
Views: 1,161
 

 Rescue approaching – PowerTOST

Dear d_labes/Helmut,

In the Vasoconstrictor Assay guide published by the FDA in 1995, a small dataset of AUCE values for the test and reference drugs is provided. The purpose of this dataset is to serve as a numerical example for determining the bioequivalence of these two topical formulations (as part of the main study). At the end of the document, Locke's method is applied, yielding a 90% confidence interval of 53.6–165.9%.
I’ve read on this forum that Locke's method is considered equivalent to Exact Fieller's method. Using the CI.RatioF() function and the dataset from the guide, I wonder if you could develop a function or script to calculate the Exact Fieller interval and match the result presented in the guide. Importantly, this should be done without directly using the formulas provided in the guide.
This seems like a great challenge for you and Helmut, whose answers are always brilliant!

Dataset (xlxs-format)
Helmut
★★★
avatar
Homepage
Vienna, Austria,
2024-12-03 14:39
(48 d 15:00 ago)

@ Weidson
Posting: # 24306
Views: 1,053
 

 Why not base 🇷?

Hi Weidson,

the function CI.RatioF() can only handle parallel and 2×2×2 crossover designs but you have a replicate.
You mastered the evaluation in Excel. :-D
Alternatively an [image]-script following the FDA’s guidance (the raw data are given in Table AIV.6 of the 1995 guidance). The FDA took accurate calculations lightly (e.g., (–43.63 + –34.36) / 2  –38.99!).

raw   <- read.delim(file = "https://bebac.at/downloads/FDA162457Example.csv")
# Cave: only for complete data!
m <- function(x, treatment, sites) {
  (x$AUEC[x$treatment == treatment & x$site == sites[1]] +
   x$AUEC[x$treatment == treatment & x$site == sites[2]]) / 2
}
sites <- unique(raw$site)
Y     <- data.frame(subject = unique(raw$subject),
                    T = m(raw, "T", sites), R = m(raw, "R", sites))
X.T   <- mean(Y$T)
X.R   <- mean(Y$R)
s2.TT <- var(Y$T)  # in the guidance standard deviation σ
s2.RR <- var(Y$R)  # but actually sample variances
s2.TR <- cov(Y$T, Y$R)
pe    <- X.T / X.R
n     <- nrow(Y)
t     <- qt(p = 0.95, df = n - 1)
G     <- t^2 * s2.RR / (n * X.R^2)
if (G >= 1) {
  cat("With G =", G, "the study does not meet the in vivo bioequivalence requirements.\n")
} else {
  K  <- pe^2 + s2.TT / s2.RR * (1 - G) + s2.TR / s2.RR * (G * s2.TR / s2.RR - 2 * pe)
  ci <- setNames(c(100 * ((pe - G * s2.TR / s2.RR) + c(1, -1) * t / X.R *
                           sqrt(s2.RR / n * K)) / (1 - G)), c("lower", "upper"))
  i  <- "With a 90% confidence interval of"
  p  <- "the study passed bioequivalence.\n"
  f  <- "the study failed to show bioequivalence.\n"
  if (ci[["lower"]] >= 80 & ci[["upper"]] <= 125) {
    cat(sprintf("%s %.1f\u2013%.1f%% %s", i, ci[["lower"]], ci[["upper"]], p))
  } else {
    cat(sprintf("%s %.1f\u2013%.1f%% %s", i, ci[["lower"]], ci[["upper"]], f))
  }
}

You should get:

With a 90% confidence interval of 53.6–165.9% the study failed to show bioequivalence.


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
23,363 posts in 4,906 threads, 1,678 registered users;
105 visitors (0 registered, 105 guests [including 10 identified bots]).
Forum time: 05:40 CET (Europe/Vienna)

The combination of some data and an aching desire
for an answer does not ensure that a reasonable answer
can be extracted from a given body of data.    John W. Tukey

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