В отсутствие хороших априорных предположений о количестве компонентов, запрашиваемых в независимом анализе компонентов, я стремлюсь автоматизировать процесс выбора. Я думаю, что разумным критерием может быть число, которое минимизирует глобальные доказательства корреляции между вычисленными компонентами. Вот псевдокод этого подхода:
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
Я полагаю, что это должно автоматически оштрафовать кандидатов, превышающих «истинное» количество компонентов, потому что ICA, полученные из таких кандидатов, должны быть вынуждены распределять информацию из отдельных истинных компонентов по нескольким оцененным компонентам, увеличивая среднее свидетельство корреляции между парами компонентов.
Имеет ли это смысл? Если да, то есть ли более быстрый способ достижения совокупного показателя взаимосвязанности между оцениваемыми компонентами, чем предложенный выше подход среднего логарифмического правдоподобия (который может быть довольно медленным в вычислительном отношении)? Если этот подход не имеет смысла, как может выглядеть хорошая альтернативная процедура?