arl_stat
★    

India,
2021-07-31 09:42
(971 d 03:22 ago)

Posting: # 22489
Views: 4,214
 

 Achievement of Steady State [General Sta­tis­tics]

Hello everyone. :-)

Hope all are safe in this Pandemic situation.

The query is regarding achievement of Steady state using NOSTASOT (Non-Statistical-significance–of-Trend) method.

Please help me out for SAS codes for analysis.

Thank you so much.


Edit: Category changed; see also this post #1[Helmut]
Helmut
★★★
avatar
Homepage
Vienna, Austria,
2021-07-31 12:58
(971 d 00:06 ago)

@ arl_stat
Posting: # 22490
Views: 3,605
 

 Achievement of Steady State: Visual inspection & common sense

Hi arl_stat,

❝ […] achievement of Steady state using NOSTASOT (Non-Statistical-significance–of-Trend) method.


Never heard of this abbreviation. THX for the explanation.

❝ Please help me out for SAS codes for analysis.


Sorry, I’m not equipped with ‘[image]’.
Easy in any software. Run a linear regression of pre-dose concentrations vs time and test the slope against zero (or whether zero is included in the 95% CI of the slope). The former should be part of the output.
However, I don’t recommend it (see here and there). The EMA stated:*

Achievement of steady state can be evaluated by collecting pre-dose samples on the day before the PK assessment day and on the PK assessment day. A specific statistical method to assure that steady state has been reached is not considered necessary in bioequivalence studies. Descriptive data is sufficient.

  • Regression approaches lead into trouble.
    • If you have a small within-subject variability of pre-dose concentrations, possibly the slope will significantly differ from zero in some subjects. You will conclude that steady state is not reached and exclude those subjects.
    • If you have a large within-subject variability of pre-dose concentrations, even a – visually – obvious positive slope will not significantly differ from zero. You will conclude that steady state is reached although the saturation is not complete.
    • An example in [image] at the end. Same saturation, only different variabilities of k10.
  • AFAIK, not a regulatory requirement anywhere.


Simulated one-compartment model: V = 4, D = 500, k01 = 0.6931472 h–1, k10 = 0.0504107 h–1, τ = 24. Sufficient built-up of (pseudo-) state state: 96 h = 6.98 half lives.

n    <- 3 # number of pre-dose samples for the regression
data <- data.frame(dose = 2:6, t = seq(-96, 0, 24))
# low and high variability of pre-dose concentrations
lo   <- cbind(data, C = c(40.08, 51.87, 55.77, 56.64, 57.66))
hi   <- cbind(data, C = c(40.41, 52.03, 55.36, 56.74, 57.25))
res  <- data.frame(variability = c("low", "high"), int =  NA_real_,
                   slope = NA_real_, signif = "no   ",
                   CL.lo = NA_real_, CL.hi = NA_real_)
for (j in 1:nrow(res)) {
  if (j == 1) {
    tmp <- tail(lo, n)
  } else {
    tmp <- tail(hi, n)
  }
  muddle       <- lm(C ~ t, data = tmp)        # linear regression
  res$int[j]   <- signif(coef(muddle)[[1]], 5) # intercept
  res$slope[j] <- signif(coef(muddle)[[2]], 5) # slope
  if (anova(muddle)[1, 5] < 0.05) res$signif[j] <- "yes  "
  res[j, 5:6]  <- sprintf("%+.6f", confint(muddle, level = 0.95)[2, ])
}
names(res)[4] <- "signif # 0?"
print(lo, row.names = FALSE)
print(hi, row.names = FALSE)
print(res, row.names = FALSE)
op <- par(no.readonly = TRUE)
par(mar = c(4, 4, 2.5, 0.5))
split.screen(c(2, 1))
screen(1) # saturation phase
plot(lo$t, lo$C,  type = "n", axes = FALSE,
     xlab = "time", ylab = "concentration",
     ylim = range(c(lo$C, hi$C)))
grid(nx = NA, ny = NULL); box()
abline(v = unique(lo$t), lty = 3, col = "lightgrey")
lines(lo$t, lo$C, col = "blue", lwd = 2)
points(lo$t, lo$C, pch = 19, col = "blue", cex = 1.5)
lines(hi$t, hi$C, col = "red", lwd = 2)
points(hi$t, hi$C, pch = 19, col = "red", cex = 1.5)
axis(1, at = lo$t)
axis(2, las = 1)
axis(3, at = unique(lo$t),
     label = paste0("dose #", unique(lo$dose)))
screen(2) # last 3 pre-dose concentrations
plot(tail(lo$t, n), tail(lo$C, n), type = "n", axes = FALSE,
     xlab = "time", ylab = "concentration",
     ylim = range(c(tail(lo$C, n), tail(hi$C, n))))
grid(nx = NA, ny = NULL); box()
abline(v = unique(tail(lo$t, n)), lty = 3, col = "lightgrey")
lines(tail(lo$t, n), tail(lo$C, n), col = "blue", lwd = 2)
lines(tail(hi$t, n), tail(hi$C, n), col = "red", lwd = 2)
segments(x0 = -48, y0 = res$int[1] - res$slope[1] *48,
         x1 = 0, y1 = res$int[1], col = "blue", lty = 2)
segments(x0 = -48, y0 = res$int[2] - res$slope[2] *48,
         x1 = 0, y1 = res$int[2], col = "red", lty = 2)
axis(1, at = lo$t)
axis(2, las = 1)
axis(3, at = unique(lo$t),
     label = paste0("dose #", unique(lo$dose)))
close.screen(all = TRUE)
par(op)


Gives:
 dose   t     C
    2 -96 40.08
    3 -72 51.87
    4 -48 55.77
    5 -24 56.64
    6   0 57.66

 dose   t     C
    2 -96 40.41
    3 -72 52.03
    4 -48 55.36
    5 -24 56.74
    6   0 57.25

 variability    int    slope signif # 0?     CL.lo     CL.hi
         low 57.635 0.039375       yes   +0.016450 +0.062300
        high 57.395 0.039375       no    -0.093589 +0.172339


[image]

low variability
high variability
dashed lines: linear regression



  • EMEA. Overview of Comments received on Draft Guideline on the Investigation of Bioequivalence. EMA/CHMP/EWP/26817/2010. London. 20 January 2010. Online.

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
Ben
★    

2021-08-05 10:08
(966 d 02:56 ago)

@ Helmut
Posting: # 22509
Views: 3,539
 

 Achievement of Steady State: Visual inspection & common sense

Hi Helmut,

❝ Run a linear regression of pre-dose concentrations vs time and test the slope against zero (or whether zero is included in the 95% CI of the slope). The former should be part of the output.

❝ However, I don’t recommend it (see here and there).


So you are essentially saying statistical relevance is not the right tool here. Agreed. Instead of relying on visual inspection & gut feeling (= common sense? :-)) can we define pharmacological relevance? Is there a way to define quantitative thresholds based on the PK (or even PD?) of the compound (i.e. concentration should not change by more than x%)?

Best regards,
Ben.
Helmut
★★★
avatar
Homepage
Vienna, Austria,
2021-08-05 13:43
(965 d 23:21 ago)

@ Ben
Posting: # 22511
Views: 3,370
 

 Threshold of % change?

Hi Ben,

❝ So you are essentially saying statistical relevance is not the right tool here. Agreed.


I was talking about statistical significance.
When it comes to a test, see the end of Section 1 in this post (EUFEPS workshop, Bonn, June 2013).

❝ Instead of relying on visual inspection & gut feeling (= common sense? :-)) …


Well, we are using visual inspection in other areas as well. Automatic algos for selecting time points in estimating \(\small{\hat\lambda_z}\) (e.g., \(\small{R_{\textrm{adj,max}}^{2}}\), \(\small{AIC_\textrm{min}}\), \(\small{\text{TTT}}\)) quite often fail for ‘flat’ profiles (MR) or multiphasic profiles. I’m fine with selecting time points ‘manually’. Never had any problems with acceptance.

❝ … can we define pharmacological relevance?


That’s actually the idea behind assessing the slope. Either we are still in the saturation phase (slope >0) or reasonably close to true steady state (slope ≈0).

❝ Is there a way to define quantitative thresholds based on the PK (or even PD?) of the compound (i.e. concentration should not change by more than x%)?


Radio Yerevan answers: Based on PK, in principle yes.
But how could we do that? We design the study based on τ and t½. Hopefully we don’t use an average t½ – from the literature – but a worst case (i.e., a longer one).
$$C_\tau$$$$\small{
\begin{array}{crr}
\hline
\text{Dose} & \text{% of steady state} & \text{% Change} \\
\hline
1 & 50.00000 & - \\
2 & 75.00000 & 50.000000 \\
3 & 87.50000 & 16.666667 \\
4 & 93.75000 & 7.142857 \\
5 & 96.87500 & 3.333333 \\
6 & 98.43750 & 1.612903 \\
7 & 99.21875 & 0.793651 \\
\hline
\end{array}}$$Looks nice on paper. However, I see a problem here (maybe I’m wrong). In the regression we assess the last three pre-dose concentrations, which – to some extent – takes the inter-occasion variability into account. Of course, we may fall into the trap mentioned previously.
When we set a threshold of \(\small{x\%}\), we are essentially believing that the last two pre-dose concentrations are the true ones, right? Of course, that’s another trap.

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
Ben
★    

2021-10-17 14:16
(892 d 22:48 ago)

@ Helmut
Posting: # 22630
Views: 2,343
 

 Threshold of % change?

Hi Helmut,

I forgot to answer...

❝ When it comes to a test, see the end of Section 1 in this post (EUFEPS workshop, Bonn, June 2013).


Thanks, I more and more come to the same conclusion...

❝ ❝ Is there a way to define quantitative thresholds based on the PK (or even PD?) of the compound (i.e. concentration should not change by more than x%)?

❝ ... In the regression we assess the last three pre-dose concentrations, which – to some extent – takes the inter-occasion variability into account. Of course, we may fall into the trap mentioned previously.


I was thinking about the following: When we do a linear regression log(y) = a*x + b (+ eps), then the interpretation of a is that when x changes by 1 unit, then y changes (on average) by (exp(a) - 1) * 100%. That means we can make a statement about %-change in pre-dose concentration and we could maybe set relevance limits for this change. But the trap that you mentioned is I guess still valid and does not go away (we may argue not with the estimated coefficient of a but with some upper CI/PI limit (e.g. 68%), but nevertheless the issue remains).

❝ When we set a threshold of \(\small{x\%}\), we are essentially believing that the last two pre-dose concentrations are the true ones, right? Of course, that’s another trap.


Yes, agreed.

One more question: In your lecture you state that one should calculate gMean as well. Are you also calculating gMean ratios, i.e. calculating point estimates for the comparison of different time points (e.g. each vs. last)?

Best regards,
Ben.
Helmut
★★★
avatar
Homepage
Vienna, Austria,
2021-10-20 14:36
(889 d 22:28 ago)

@ Ben
Posting: # 22646
Views: 2,284
 

 Keep it simple

Hi Ben,

❝ In your lecture you state that one should calculate gMean as well.


This was suggested at numerous conferences and I’m reporting it for ~ten years.

❝ Are you also calculating gMean ratios, i.e. calculating point estimates for the comparison of different time points (e.g. each vs. last)?


No. Just a simple table like $$\small{\begin{array}{rcc}
\text{time} & \overline{\textrm{T}}_\textrm{geom.}\;(\text{CV}\;\%) & \overline{\textrm{R}}_\textrm{geom.}\;(\text{CV}\;\%)\\\hline
-2\,\tau & 19.9\;(16.4) & 20.9\;(26.4)\\
-\tau & 20.1\;(25.3) & 21.2\;(13.6)\\
\pm0 & 20.3\;(26.1) & 21.4\;(14.7)\\
\tau & 20.3\;(18.6) & 21.3\;(31.2)\\\hline
\end{array}}$$

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,957 posts in 4,819 threads, 1,639 registered users;
80 visitors (1 registered, 79 guests [including 2 identified bots]).
Forum time: 12:05 CET (Europe/Vienna)

Nothing shows a lack of mathematical education more
than an overly precise calculation.    Carl Friedrich Gauß

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