In assenza di buone ipotesi a priori sul numero di componenti da richiedere in Independent Components Analysis, sto cercando di automatizzare un processo di selezione. Penso che un criterio ragionevole potrebbe essere il numero che minimizza l'evidenza globale per la correlazione tra i componenti calcolati. Ecco lo pseudocodice di questo approccio:
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
Immagino che ciò dovrebbe penalizzare automaticamente i candidati più grandi del numero "vero" di componenti perché gli ICA risultanti da tali candidati dovrebbero essere costretti a distribuire informazioni da singoli componenti veri su più componenti stimati, aumentando l'evidenza media di correlazione tra coppie di componenti.
ha senso? In tal caso, esiste un modo più rapido per ottenere una metrica aggregata di correlazione tra i componenti stimati rispetto all'approccio di probabilità logaritmica suggerito sopra (che può essere piuttosto lento dal punto di vista computazionale)? Se questo approccio non ha senso, come potrebbe essere una buona procedura alternativa?