<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/238044</link>
    <title>MATLAB Central Newsreader - strange: correlated principal components after orthogonal rotation</title>
    <description>Feed for thread: strange: correlated principal components after orthogonal rotation</description>
    <language>en-us</language>
    <copyright>&amp;copy;1994-2012 by MathWorks, Inc.</copyright>
    <webmaster>webmaster@mathworks.com</webmaster>
    <generator>MATLAB Central Newsreader</generator>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <ttl>60</ttl>
    <image>
      <title>MathWorks</title>
      <url>http://www.mathworks.com/images/membrane_icon.gif</url>
    </image>
    <item>
      <pubDate>Thu, 23 Oct 2008 16:13:02 -0400</pubDate>
      <title>strange: correlated principal components after orthogonal rotation</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/238044#606993</link>
      <author>Roland Neumann</author>
      <description>I came across a strange behaviour while computing principal components with the Statistics Toolbox (either princomp or pcacov, doesn't matter). &lt;br&gt;
&lt;br&gt;
Background is calculating independent software metrics using PCA. This works quite well, when I'm doing  like: &lt;br&gt;
&lt;br&gt;
EV Lambda =pcacov(corr(M))&lt;br&gt;
...(compute FL out of EV and Lambda)&lt;br&gt;
C= zscore(M)*EV &lt;br&gt;
&lt;br&gt;
leads to nicely uncorrelated C (my independent software metrics). Now the strange thing... I want the principal components better suiting the metrics and use orthogonal rotation like varimax or quartimax with:&lt;br&gt;
&lt;br&gt;
RotFL = rotatefactors(FL, 'method', 'varimax', 'normalization', 'off')&lt;br&gt;
&lt;br&gt;
This is supposed to be (according to help) an orthogonal operation. &lt;br&gt;
But after another:&lt;br&gt;
CRot= zscore(M)*EVRot&lt;br&gt;
I get correlated C. &lt;br&gt;
&lt;br&gt;
It's already visible in RotFL: Computing the angles between each 2 column-vektors (A*B/(|A|*|B|) shows no 90? anymore (as for EV and FL).&lt;br&gt;
&lt;br&gt;
I'm lost with this supposingly orthogonal rotation and will appreciate any hints. Thank you.</description>
    </item>
    <item>
      <pubDate>Thu, 23 Oct 2008 17:20:03 -0400</pubDate>
      <title>Re: strange: correlated principal components after orthogonal rotation</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/238044#607013</link>
      <author>Roger Stafford</author>
      <description>&quot;Roland Neumann&quot; &amp;lt;software-pca@o2online.de&amp;gt; wrote in message &amp;lt;gdq7qd$p1g$1@fred.mathworks.com&amp;gt;...&lt;br&gt;
&amp;gt; I came across a strange behaviour while computing principal components with the Statistics Toolbox (either princomp or pcacov, doesn't matter). &lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; Background is calculating independent software metrics using PCA. This works quite well, when I'm doing  like: &lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; EV Lambda =pcacov(corr(M))&lt;br&gt;
&amp;gt; ...(compute FL out of EV and Lambda)&lt;br&gt;
&amp;gt; C= zscore(M)*EV &lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; leads to nicely uncorrelated C (my independent software metrics). Now the strange thing... I want the principal components better suiting the metrics and use orthogonal rotation like varimax or quartimax with:&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; RotFL = rotatefactors(FL, 'method', 'varimax', 'normalization', 'off')&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; This is supposed to be (according to help) an orthogonal operation. &lt;br&gt;
&amp;gt; But after another:&lt;br&gt;
&amp;gt; CRot= zscore(M)*EVRot&lt;br&gt;
&amp;gt; I get correlated C. &lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; It's already visible in RotFL: Computing the angles between each 2 column-vektors (A*B/(|A|*|B|) shows no 90? anymore (as for EV and FL).&lt;br&gt;
&amp;gt; &lt;br&gt;
&amp;gt; I'm lost with this supposingly orthogonal rotation and will appreciate any hints. Thank you.&lt;br&gt;
-------&lt;br&gt;
&amp;nbsp;&amp;nbsp;Roland, just because a pair of random variables, x and y, are uncorrelated doesn't mean that a rotation of them will yield uncorrelated variables.  Let E{x} = E{y} = E(x*y) = 0 so that x and y are uncorrelated.  Then rotate them to u = a*x+b*y and v = -b*x+a*y where a^2+b^2 = 1.  Then their (cross) covariance will be:&lt;br&gt;
&lt;br&gt;
&amp;nbsp;E{u*v} =&lt;br&gt;
&amp;nbsp;E{(a*x+b*y)*(-b*x+a*y)} =&lt;br&gt;
&amp;nbsp;(a^2-b^2)*E{x*y) + a*b*(E{x^2}-E{y^2}) =&lt;br&gt;
&amp;nbsp;a*b*(E{x^2}-E{y^2})&lt;br&gt;
&lt;br&gt;
which will not be zero unless x and y have equal variances.  Thus the two quantities u and v are not necessarily uncorrelated.&lt;br&gt;
&lt;br&gt;
Roger Stafford</description>
    </item>
    <item>
      <pubDate>Tue, 04 Nov 2008 09:19:01 -0500</pubDate>
      <title>Re: strange: correlated principal components after orthogonal rotation</title>
      <link>http://www.mathworks.com/matlabcentral/newsreader/view_thread/238044#608890</link>
      <author>Roland Neumann</author>
      <description>Hello Roger, &lt;br&gt;
&lt;br&gt;
Thank you for your fast and precise answer. You helped me alot. When I normalized the Eigenvectors with the Square Root of their Eigenvalues and rotated thereafter, I got uncorrelated Principal components. They all had Variance one. &lt;br&gt;
&lt;br&gt;
Now I understand the reason because of your proof. </description>
    </item>
  </channel>
</rss>

