# Numerical Example of Independent Component Analysis

Can somebody explain ICA(Independently Component Analysis) with a small practical example over here. I have seen lot of programs and libraries written and you can just apply that to your data to find ICA components. One such library is famous python FastICA?

There is a whole Book on ICA, some Tutorial on ICA , some nicely explained PPT on ICA and some Practical Use of ICA to remove ECG artifacts But none of those references gave some practical small example to explain those mathematical concepts behind the ICA stepwise.

It would be I am sure very useful for beginners like me to understand the step wise mathematics of the ICA as just applying library is not enough for deep understanding if ICA.

Note:

I really appreciate the effort if somebody could do that using famous fastICA algorithm and explaining step by the step the mathematics involved in that with evidence of equivalent result using tools like python fastICA library.

• You already mentioned some very good resources (e.g. the Hyvarinen et al. book and tutorial paper). These contain exact descriptions of both the principles and math involved, and also example cases. Perhaps you could say more about what the remaining confusion is, or why these were unsatisfactory? – user20160 Mar 26 '18 at 13:24
• what I am asking here is a small workable example that somebody expert in ICA could solve for all of us. I want this resource to be added online so that every beginner could utilize that. – Naseer Mar 26 '18 at 13:42
• It could help to elaborate or specify a bit more on that since it might still be unclear what the difference is with the already mentioned resources. – Sextus Empiricus Mar 26 '18 at 14:44
• Are you sure? I believe the cocktail party problem would nicely qualify such an example, no? If not, then a more mathematical approach could be to compare it with PCA. The simplified hand-wavy version is that you assume that the signals are uncorrelated and that you can "clean" all of the signals in by finding the linear combination of the signals that gives least correlation. – Andreas Storvik Strauman Mar 28 '18 at 11:27
• Some small workable example using any ICA algorithm..but I think fastICA is so far the famous algorithm for ICA. So if you could do that using fastICA then thats enough. – Naseer Mar 28 '18 at 14:02

• It is a numerically stable sigmoid implementation and calculates positive and negative exponents separately. I've updated its docstring to make it more explicit. And W was initialized as an identity matrix first, see the line with W = np.eye(N) – zyxue Mar 31 '18 at 16:44
• @NaseerAhmed, not sure what you mean by normalization transformation. The W_expected is just the result I got after running ICA, I put it there as a test for the future if the code is to be modified, to ensure I still get the same W. I don't the raw separate audio, that downloaded from the course is already a mixed one, but you could listen to the unmixed one to see the difference. – zyxue Apr 1 '18 at 15:51