# Factors that affect variation in the data?

What is the practical way to identify the factors that create variation in a data of a dataset? What category does this question fall into? Are there a set of algorithms that can be used for this purpose? Statistical modeling solutions? I googled a lot but no go! The question is so vague that hard to find an answer for! Thanks in advance ...

-
I think this question is too vague and broad for anyone to supply useful advice. What is the structure of your data? What observational units are your data measured on? Which variables are you interested in investigated relationships between? Significantly edited and added to, I think this question might be good enough to justify migrating to stats.SE rather than just closing. – joran Sep 23 '11 at 2:08
This is not a trivial field and people study several years to master it. You've been warned. :) – Roman Luštrik Sep 23 '11 at 7:46
Joran, the vagueness of the question is the reason I am putting it up here. The issues you mentioned needs to be considered while dealing with the data but I think I have the answer. The statistical concept related to this is FACTOR ANALYSIS. – Amir Sep 26 '11 at 1:05
Roman, thanks for the warning. I have a bit of background on data analysis otherwise I was doomed ;) – Amir Sep 26 '11 at 1:05
@Amir's comment: Thanks to "templatetypedef" I started reading about the PCA and while reading down I found the Factor Analysis wiki in PCAs page! In practice, there are two types of factor analysis that are Exploratory Factor Analysis(EFA) and Confirmatory Factor Analysis (CFA). PCA is one of the techniques to perform factoring of the data. With "Factors that creates variation in the data" I am almost certain that it is referring to FACTOR ANALYSIS concept and PCA is one of the ways to achieve that. There is an R implementation of it that is great. – chl Sep 26 '11 at 8:29

## migrated from stackoverflow.comSep 26 '11 at 6:12

There are many algorithms for trying to identify these properties.

One powerful algorithm that you could look into is principal component analysis (PCA), which attempts to identify an orthogonal set of vectors that account for the maximum amount of variance in a set of data. This has applications in machine learning, data compression, and dimensionality reduction and can be implemented easily with most matrix packages using the SVD.

Another, more powerful technique that's often used is independent factor analysis, which I confess I know very little about. However, the lecture notes I've linked do an excellent job explaining the technique and its applications.

Hope this helps!

-
 When using PCA, keep in mind that it's a linear transform. That means that many kinds of data might actually end up being even less useful after PCA-ifying them. In those kinds of cases, techniques derived from expert knowledge on the structure of the data are almost guaranteed to outperform PCA-based approaches. – Jan Krüger Sep 26 '11 at 1:11

The idea of explaining variation is often used in the context of linear regressions - and therefore of ANOVA, which is mathematically very similar. See http://en.wikipedia.org/wiki/Fraction_of_variance_unexplained and the articles linked off it.

-
 ANOVA means ANalysis Of VAriance - that's exactly what the OP needs. – Tomas Sep 23 '11 at 8:38