En l'absence de bonnes suppositions a priori sur le nombre de composants à demander dans Independent Components Analysis, je cherche à automatiser un processus de sélection. Je pense qu'un critère raisonnable pourrait être le nombre qui minimise les preuves globales de corrélation entre les composantes calculées. Voici le pseudocode de cette approche:
for each candidate number of components, n:
run ICA specifying n as requested number of components
for each pair (c1,c2) of resulting components:
compute a model, m1: lm(c1 ~ 1)
compute a model, m2: lm(c1 ~ c2)
compute log likelihood ratio ( AIC(m2)-AIC(m1) ) representing the relative likelihood of a correlation between c1 & c2
compute mean log likelihood ratio across pairs
Choose the final number of components as that which minimizes the mean log likelihood of component relatedness
Je pense que cela devrait automatiquement pénaliser les candidats plus grands que le "vrai" nombre de composants, car les ICA résultant de ces candidats devraient être obligés de distribuer les informations provenant de vrais composants uniques sur plusieurs composants estimés, augmentant la preuve moyenne de corrélation entre les paires de composants.
Est-ce que ça a du sens? Dans l'affirmative, existe-t-il un moyen plus rapide d'obtenir une métrique agrégée de parenté entre les composantes estimées que l'approche logarithmique de la probabilité moyenne suggérée ci-dessus (qui peut être assez lente sur le plan des calculs)? Si cette approche n'a pas de sens, à quoi pourrait ressembler une bonne procédure alternative?