Variance inflation factor (VIF) function

Hi everyone,

I was wondering if there is a specific function or an easy way to estimate the Variance inflation factor (VIF) for the parameter estimates.

Thank you for your time and help!

Hi Athanasios

Is this in relation to a Pumas model? Traditionally, the variance inflation factors are only defined for linear regression models so not applicable to a Pumas model.


1 Like

Hello Andreas,

I am working on designing a clinical study and I would like to simulate different scenarios in order to determine which approach would be most effective. To achieve this, I am interested in calculating the Variance Inflation Factor, which is defined as the multiplier of sigma squared (σ^2) in the residual error model. My goal is to use this factor as a metric to evaluate the precision of the PK parameter calculation in the simulated study design.

The formula is:

                                   Variance(CL) = VIF(CL) * (σ^2)

I have seen this applied in non-linear models. Is this correct ? Please correct me if I am wrong as my statistics background is limited.

Thank you for your assistance and I look forward to hearing from you.

Hello Athanasios

I think I can guess what the quantity is here. If you assume a nonlinear regression model

y_t = f(\beta,x_t) + \varepsilon_t

and are willing to assume homoskedasticity, i.e. \varepsilon \sim N(0, \sigma^2 I), then the "VIF"s will be the diagonal elements of \mathrm{Var}(\hat{\beta})/\hat{\sigma}^2. Notice that this is a much simpler model than is usually reasonable in PK analyses where the error is generally modeled as proportional to the mean and maybe you’d also like to consider random effects.

I’ll recommend that you take a look at Model-based optimal design of experiments · Pumas and see if it can help you solve your problem. I’d think that the aoptimality criterion is close to what you are asking for. Under the simplified model mentioned above, I think aoptimility would minimize the sum of the "VIF"s but the OptimalDesign package allows you to consider more complicated models and it also provides convenience functionality of optimizing the chosen criterion.

Let us know if works for you or if you have any problems with using the package.



Thank you very much Andreas i will look into optimal design and let you know.

Please let me know if this approach is also valid. Right now i am performing multiple simulation scenarios with different sample time points and the number of subjects. I calculate the number of simulations for each scenario that achieves an RSE of below 20% for the different PK parameters. This is a more manual and time-consuming way than using the optimal design though

Note that in aoptimality in OptimalDesign, you can also assign weights to parameters. This can be used to make the objective the “relative” SE by using a weight 1/estimate^2 and to only focus on a subset of the parameters by using a weight close to 0. To do that, the param_weights keyword argument in the design function can be set to a vector of weights, e.g.; optimality = :aoptimal, param_weights = [1.0, 1e-5, 1.0]) if you have 3 parameters in your model.

1 Like