Na ausência de boas suposições a priori sobre o número de componentes a serem solicitados na Análise de Componentes Independentes, estou procurando automatizar um processo de seleção. Eu acho que um critério razoável pode ser o número que minimiza a evidência global de correlação entre os componentes computados. Aqui está o pseudocódigo dessa abordagem:
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
Eu acho que isso deve penalizar automaticamente candidatos maiores que o número "verdadeiro" de componentes, porque as ICAs resultantes desses candidatos devem ser forçadas a distribuir informações de componentes verdadeiros únicos entre vários componentes estimados, aumentando a evidência média de correlação entre pares de componentes.
Isso faz sentido? Em caso afirmativo, existe uma maneira mais rápida de atingir uma métrica agregada de relação entre os componentes estimados do que a abordagem de probabilidade média de log sugerida acima (que pode ser bastante lenta computacionalmente)? Se essa abordagem não fizer sentido, como seria um bom procedimento alternativo?