# When and why to use scale function (in R) in PCA analysis?

I understand that if the scale of the different variables varies(for example, some expressed in absolute form while other in percentages), that will cause problem in Principal component analysis (PCA). I read two PCA analysis that first use scale() function to standlize the dataset: 1) from R action 2) from R bloggers.

My question is, if I want to do PCA for variables expressed in terms of percentages. Do I want to still use scale function? It feel like the percentages already were normalized and can be used directly. Can anyone explain why to use scale function?

The variables are social-economic factors, including count of school numbers, population density, housing unit density, green space area percentage, etc. They are mostly expressed in terms of percentages, ranging from 0 to 100%. For the variables not in percentage (e.g., count of school number), I converted them using value/max value, so that they finally all range from 0 to 100%.

• Could you tell us more about your percentages? For instance, maybe one variable is concentration of a contaminant in water and ranges from $0$ to $0.000\,000\,01\%$; maybe another is a mortality rate in a dose-response test ranging from $0$ to $100\%$; maybe another is percent increase in a quantity year-over-year and ranges from $-100\%$ to over $1000\%$. You see the point: merely expressing a number as a percentage does not, in itself, automatically put it on any standard scale. More information about the variation of the variable is needed. See stats.stackexchange.com/questions/53. – whuber Jun 17 '15 at 18:26
• That's helpful but it's not enough to know that. For instance, maybe one of your water concentrations is $100\%$ and all the others are still less than $0.000\,000\,01\%$. Since PCA uses variances and covariances, you want to pay attention to those rather than the ranges of your data. – whuber Jun 17 '15 at 18:50