Cross-validated AUC in DIABLO


I know that the perf function calculates the combined AUC (averaged across all blocks) for each component for cross-validation in DIABLO.
However, still I don’t fully understand how to calculate the combined AUC from the above sentence, and hope that you can clarify it further.
Let’s assume that a tuned DIABLO model has two blocks (a and b blocks), n.comp=2 and keepX={(a1 ,b1) for comp1 and (a2, b2) for comp2}.
Here I want to know how to calculate the combined AUC for the second component (i.e., comp2) in the perf function.
In this case, is the combined AUC for the comp2 the average value of the cross-validated AUC calculated using only a2 and that calculated using only b2?


Hi @lsho76,

Thanks for using mixOmics.

That’s right.

  • For every repeat:

    • During cross-validation and using the given diablo object which uses a set of features on each component (a2 and b2 in your example), an AUC is calculated for each fold, for each component in each block using auroc.sgccda (You can look at the documentation on how it is calculated and the pitfalls).
    • These values are averaged over folds to give average AUC for the cross-validation for each component in each block
  • After all repeats, the AUCs are averaged over repeats for all components of each block

  • The combined AUCs for each component is then calculated by averaging over blocks

I understand that the procedure is a bit intricate due to many layers of averaging. A simple but naive way of putting it is that if you think of the diablo model, in such predictive context, as ensemble of sPLSDA-like models, the combined AUC is the component-wise average AUC over these models.

Hope that helps. Please let us know if you have further questions.



Thank you so much! It helps.