do not use k. Distinguishing physiological changes back to a rate constant with capacity for extrapolation is a wild goose chase. Use physiological parameterizations - CL and V.
Vancomycin is 70+% cleared by glomerular filtration, and changes in clearance are tied to changes in GFR - so use EGFR as your covariate.
I donāt know if you are in peds, elderly, or just people in renal failure, but the rest of your model can reflect the population a little bit as well.
For vancomycin I would allometrically scale WT on CL/V with EGFR on CL as well either linearly or using allometry (0.75).
If you have access to nonmem, here is a neonatal model Iāve developed that is robust to 7-fold changes in serum creatinine over time
```
$PROBLEM ID: 143 fold: NOBS: 3/3
$SUB ADVAN1 TRANS2
$INPUT ID TIME AMT DV WT PMA_WKS PNA_DYS CRE HT PATIENT_ID NDOSES EVID MDV RATE EGFR UDGF OBSNUM grp nobs nobs_bins
$DATA ../../mdata/id_143_nobs_3_fold_04.csv
IGNORE=@
IGNORE=(OBSNUM.GT.3)
$THETAI
THETA(1:NTHETA)=LOG(THETAI(1:NTHETA))
THETAP(1:NTHP)=LOG(THETAPI(1:NTHP))
$THETAR
THETAR(1:NTHETA)=EXP(THETA(1:NTHETA))
THETAPR(1:NTHP)=EXP(THETAP(1:NTHP))
$PRIOR NWPRI
$PK
D1 = 1 ; 1 hour infusion durations
; constants
NORM_WT = 2.9
NORM_PMA = 34.8
NORM_EGFR = 30
;; because log transforming all thetas, want to keep the exponent in a consistent domain
CLEGFR = EXP(THETA(3))
TVCL = THETA(1) + 0.75*LOG(WT/NORM_WT) + CLEGFR*LOG(EGFR/NORM_EGFR)
TVV = THETA(2) + LOG(WT/NORM_WT)
CL = EXP(TVCL + ETA(1))
V = EXP(TVV + ETA(2))
S1 = V
$THETA
( 0.1 , 0.16824 ) ; Typical Value Clearance for 2.9 kg baby with EGFR of 30
( 0.1 , 1.76117 ) ; Typical Value Volumei for 2.9 kg baby
( 0.1 , 0.77429 ) ; exponent for EGFR~clearance
$THETAP
0.16824 FIX; Typical Value Clearance
1.76117 FIX; Typical Value Volume
0.77429 FIX; exponent for EGFR~clearance
$THETAPV BLOCK(3)
3.708500e-06 FIXED
7.174766e-06 6.119516e-04
-4.559485e-07 1.959912e-05 1.742600e-04
$OMEGA BLOCK(2)
4.613000e-02
2.910000e-03 2.316000e-02
$OMEGAP BLOCK(2)
4.613000e-02 FIXED
2.910000e-03 2.316000e-02
$OMEGAPD 450 FIX
$SIGMA BLOCK(2)
2.918000e-02
4.810000e-03 1.195230e+00
$SIGMAP BLOCK(2)
2.918000e-02 FIXED
4.810000e-03 1.195230e+00
$SIGMAPD 1900 FIX
$ERROR
"USE NMBAYES_INT, ONLY: ITER_REPORT,BAYES_EXTRA_REQUEST,BAYES_EXTRA
"BAYES_EXTRA_REQUEST=1
IPRED=F
Y = IPRED*(1 + ERR(1)) + ERR(2)
"IF(BAYES_EXTRA==1 .AND. ITER_REPORT>=0 .AND. TIME==0.0) THEN
"WRITE(51,97) ITER_REPORT,ID,TIME,F,DV,CL,V,THETA(1),THETA(2),CLEGFR,ETA(1),ETA(2)
"97 FORMAT(I12,1X,F14.0,10(1X,1PG12.5))
"ENDIF
;$EST METHOD=CHAIN FILE=run100.chn NSAMPLE=0 ISAMPLE=4 DF=20
$EST METHOD=BAYES INTER NBURN=1000 NITER=20000 PRINT=20 NOPRIOR=0 CTYPE=3 CITER=10 SEED=26064 THIN=50
```
Iām working with @charlesm93 to translate it into torsten and stan, but both of us are tight on time.
For example, red (observed samples) fs the predicted profiles.
Hope this will help, but be careful using this parameterization exactly if you are in adults or older peds - I have not done an QA/QC outside of neonates, adults with renal insufficiency could have a different set of parameters that might be better pulled from literature.