In-vitro equivalence [General Sta­tis­tics]

posted by martin  – Austria, 2012-05-22 19:00 (5133 d 05:35 ago) – Posting: # 8604
Views: 5,939

Dear ElMaestro!

First of all – thank you very much for your input. Here is the „situation“ in more detail. There are k test lots, one reference and one negative control lot. From each lot k>3 samples are drawn (i.e. 3 vials) each analyzed seperately with a specific assay. For this reason, I assume that the replicates independent within each lot.

I suppose that the focus is on individual lots (i.e. „showing“ that each lot is „comparable“ to the reference lot and that each lot is superior to the negative control lot).

Based on your suggestions I think that here only PE estimates may be used. What do you think about a figure showing ratios of means for individual lots relative to the mean of the negative control for “showing” superiority and another figure showing ratios of means for individual lots relative to the reference for “showing equivalence” similar like forest plot in meta analysis (y-axis = lots; x-axis = ratio of means).

For an overall statement (i.e. all lots combined) a CI for the ratio (package mratios) can be calculated using an ANOVA model that models the lot effect (i.e. replicates within each lot) with a contrast matrix that gives the estimated mean over all lots versus the estimated mean of the reference lot. In this model, the potential day effect can be included to adjust for a potential day effect.

What do you think?

Best regards

Martin

PS.: here is an example code for the overall statement

library(mratios)

# specify parameters for data generation #
n <- 3 # number of replicates
mue <- 5 # expected value within each lot
cv <- 0.1 # expcect assay variability
sd <- mue*cv

# generate example data set using random numbers #
lot <- c('T01', 'T02', 'T03', 'T04', 'T05', 'T06', 'T07', 'T08', 'T09', 'T10', 'R')
data <- data.frame(lot=sort(rep(lot, n)))
data$value <- rnorm(nrow(data), mean=mue, sd=sd)
data$lot <- factor(data$lot)
xq <- tapply(data$value, data$lot, mean)
sd <- tapply(data$value, data$lot, sd)
print(xq)
print(sd)
print(sd/xq*100)

# estimation of ratio #
X <- model.matrix(value~ 0 + lot, data=data)
Y <- data[,"value"]
coef <- lm(Y ~ 0 + X)
print(coef)
Num.Contrast <- matrix(c(0,1/10,1/10,1/10,1/10,1/10,1/10,1/10,1/10,1/10,1/10),nrow=1,byrow=TRUE)
Den.Contrast <- matrix(c(1,0,0,0,0,0,0,0,0,0,0),nrow=1,byrow=TRUE)
print(Num.Contrast)
print(Den.Contrast)
sci.ratio.gen(Y=Y, X=X, Num.Contrast=Num.Contrast, Den.Contrast=Den.Contrast, method='Unadj', conf.level=0.90)

Complete thread:

UA Flag
Activity
 Admin contact
23,653 posts in 4,991 threads, 1,570 registered users;
147 visitors (0 registered, 147 guests [including 47 identified bots]).
Forum time: 00:35 CEST (Europe/Vienna)

There are no dangerous thoughts;
thinking itself is dangerous.    Hannah Arendt

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