## replicate designs: intrasubject variability [Power / Sample Size]

Hi Bebac user,

» How can I calculate the intrasubject variability (CV) after my study was done ?
» Using MSE or (POE, U, L) ?
»
» I tried to compare them for Partially replicated study:
» CV for Cmax by MSE = 51.59%
» CV for Cmax by (POE, U, L) = 43.27%
» So, which one is the correct ?

It depends on what you want and what for. From the ANOVA of replicate designs (partial and full) you get the with-subject $$\small{CV_\textrm{w}}$$ by $$\small{CV_\textrm{w}=\sqrt{\exp(MSE)-1}}\tag{1}$$ To get the pooled $$\small{CV_\textrm{w}}$$ from $$\small{CV_\textrm{wT}}$$ and $$\small{CV_\textrm{wR}}$$ you have to convert them to their associated variances $$\small{\begin{matrix}\tag{2} s_\textrm{wT}^2=\log_{e}(CV_\textrm{wT}^2+1)\\ s_\textrm{wR}^2=\log_{e}(CV_\textrm{wR}^2+1) \end{matrix}}$$ calculated their mean $$\small{s_\textrm{w}^2=(s_\textrm{wT}^2+s_\textrm{wR}^2)/2}\tag{3}$$ and back-transform to the $$\small{CV_\textrm{w}}$$ $$\small{CV_\textrm{w}= \sqrt{\exp(s_\textrm{w}^2)-1}}\tag{4}$$ This is exact only in a full replicate design because in a partial replicate $$\small{CV_\textrm{wT}}$$ is unknown. $$\small{CV_\textrm{w}}$$ obtained by $$\small{(4)}$$ is identical to the one obtained by $$\small{(1)}$$ only if sequences are balanced. Let’s try that:

library(replicateBE) library(PowerTOST) # Patterson & Jones https://doi.org/10.1002/pst.498 (Table II) # partial replicate, balanced, complete x   <- method.A(data = rds04, verbose = TRUE, print = FALSE,                 details = TRUE) # get subjects / sequence n   <- as.integer(strsplit(x[["Sub/seq"]], "\\|")[]) # CVw from the CI CVw <- CI2CV(lower = x[["CL.lo(%)"]], upper = x[["CL.hi(%)"]],              design = "2x3x3", n = n) cat(paste0("Design: ", x[["Design"]],     ", subjects / sequence: ", x[["Sub/seq"]], "\n"),     sprintf("CVwR from Method A  = %.2f%%", x[["CVwR(%)"]]), "\n",     sprintf("CVwT from Method A  = %.2f%%", x[["CVwT(%)"]]), "\n",     sprintf("CVw  from CI        = %.2f%%", 100 * CVw), "\n",     sprintf("CVw  from ANOVA MSE = %.2f%%", 100 * mse2CV(0.28377)), "\n") Data set DS04: Method A by lm() ─────────────────────────────────── Type III Analysis of Variance Table Response: log(PK)                  Df  Sum Sq Mean Sq  F value     Pr(>F) sequence          2  4.2619 2.13095  2.06562 0.13785915 period            2  0.0657 0.03287  0.11582 0.89075874 treatment         1  3.4031 3.40306 11.99223 0.00079058 sequence:subject 48 49.5180 1.03162  3.63540 2.9213e-08 Residuals        99 28.0935 0.28377                    treatment T – R:    Estimate  Std. Error     t value    Pr(>|t|) 0.316370000 0.091357800 3.462980000 0.000790582 99 Degrees of Freedom Design: TRR|RTR|RRT, subjects / sequence: 17|17|17  CVwR from Method A  = 61.22%  CVwT from Method A  = NA%  CVw  from CI        = 57.28%  CVw  from ANOVA MSE = 57.28%

Of course, we don’t get $$\small{CV_\textrm{wT}}$$ in the partial replicate design. Since the study was balanced, $$\small{CV_\textrm{w}}$$ calculated from the CI is identical to the one obtained from the ANOVA’s $$\small{MSE}$$.

Let’s remove the first subject from the data set and see what happens.

rds04 <- rds04[rds04\$subject != 1, ] # keep all but the first -> imbalanced x   <- method.A(data = rds04, verbose = TRUE, print = FALSE,                 details = TRUE) n   <- as.integer(strsplit(x[["Sub/seq"]], "\\|")[]) CVw <- CI2CV(lower = x[["CL.lo(%)"]], upper = x[["CL.hi(%)"]],              design = "2x3x3", n = n) cat(paste0("Design: ", x[["Design"]],     ", subjects / sequence: ", x[["Sub/seq"]], "\n"),     sprintf("CVwR from Method A  = %.2f%%", x[["CVwR(%)"]]), "\n",     sprintf("CVwT from Method A  = %.2f%%", x[["CVwT(%)"]]), "\n",     sprintf("CVw  from CI        = %.2f%%", 100 * CVw), "\n",     sprintf("CVw  from ANOVA MSE = %.2f%%", 100 * mse2CV(0.28825)), "\n") Data set DS04: Method A by lm() ─────────────────────────────────── Type III Analysis of Variance Table Response: log(PK)                  Df  Sum Sq Mean Sq  F value     Pr(>F) sequence          2  2.8418 1.42092  1.43254  0.2489319 period            2  0.0461 0.02303  0.07989  0.9232771 treatment         1  3.2785 3.27853 11.37382  0.0010713 sequence:subject 47 46.6188 0.99189  3.44104 1.3845e-07 Residuals        97 27.9605 0.28825                    treatment T – R:   Estimate Std. Error    t value   Pr(>|t|) 0.31368000 0.09301090 3.37251000 0.00107127 97 Degrees of Freedom Design: TRR|RTR|RRT, subjects / sequence: 17|16|17  CVwR from Method A  = 61.60%  CVwT from Method A  = NA%  CVw  from CI        = 57.79%  CVw  from ANOVA MSE = 57.80%

Not exactly the same but pretty close.

What about an imbalanced and incomplete (periods missing) full replicate design?

# The EMA's (in)famous reference data set I x   <- method.A(data = rds01, verbose = TRUE, print = FALSE,                 details = TRUE) n   <- as.integer(strsplit(x[["Sub/seq"]], "\\|")[]) CVw <- CI2CV(lower = x[["CL.lo(%)"]], upper = x[["CL.hi(%)"]],              design = "2x2x4", n = n) cat(paste0("Design: ", x[["Design"]],     ", subjects / sequence: ", x[["Sub/seq"]], "\n"),     sprintf("CVwR from Method A  = %.2f%%", x[["CVwR(%)"]]), "\n",     sprintf("CVwT from Method A  = %.2f%%", x[["CVwT(%)"]]), "\n",     sprintf("CVw  from CI        = %.2f%%", 100 * CVw), "\n",     sprintf("CVw  from ANOVA MSE = %.2f%%", 100 * mse2CV(0.159995)), "\n") Data set DS01: Method A by lm() ─────────────────────────────────── Type III Analysis of Variance Table Response: log(PK)                   Df   Sum Sq  Mean Sq  F value     Pr(>F) sequence           1   0.0077 0.007652  0.00268  0.9588496 period             3   0.6984 0.232784  1.45494  0.2278285 treatment          1   1.7681 1.768098 11.05095  0.0010405 sequence:subject  75 214.1296 2.855061 17.84467 < 2.22e-16 Residuals        217  34.7190 0.159995              treatment T – R:   Estimate Std. Error    t value   Pr(>|t|) 0.14547400 0.04650870 3.12788000 0.00200215 217 Degrees of Freedom Design: TRTR|RTRT, subjects / sequence: 39|38  CVwR from Method A  = 46.96%  CVwT from Method A  = 35.16%  CVw  from CI        = 42.58%  CVw  from ANOVA MSE = 41.65%

Not so close. $$\small{(3)}$$ is only correct for balanced sequences. Although it’s possible to weigh the variances by the degrees of freedom, I wouldn’t do that.

Conclusion: If you have the ANOVA and are interested in $$\small{CV_\textrm{w}}$$, use $$\small{(1)}$$.

Dif-tor heh smusma 🖖 Helmut Schütz The quality of responses received is directly proportional to the quality of the question asked. 🚮
Science Quotes  Ing. Helmut Schütz 