之前试图去看些讲主成分分析的文,结果每回一开头碰到什么"主成分分析是一种提取多维向量主要特征的分析方法"诸如此类等等等等的句子,我基本上就以一种圆润的方式回床上躺下了

excel 主成分分析(Excel数据分析主成分分析的准备工作之一)(1)

但是,就算搞不清楚整个工具是怎么工作的,能模仿出来完整的操作步骤也OK啊~~就好比拼魔方,我就算只会按初级教程一步步来,最后也是能拼好的嘛~~

因此,我照着介绍里的前面几步,又走上了矩阵计算的歧途

在惨痛地发现自己的线性代数知识在多年的遗忘后已然趋近于零的情况下,我又一次倒在了矩阵秩的计算这种颇有挑战性的问题前面

作为在放弃治疗前的最后挣扎,我决定,我搞不定的换算,还是交给Excel来干吧。。。

前期申明:以下列的方式不一定是最简便或者最好的,可能只是在数据量不多的情况下勉强能用的方法

关于秩的求法百度上搜出来有一堆,我到头来就只看进去了两句话:

· 矩阵行列式不为0时,秩是行数

· 矩阵行列式为0时,秩是做初等行变换后非0的行数

意思大概就是,看行列式的计算结果来判断秩是等于当前的矩阵行数,还是比当前行数小

所以,我决定这么操作:

因为要算行列式,所以试算时用了个方阵,行列数7*7

excel 主成分分析(Excel数据分析主成分分析的准备工作之一)(2)

先计算整个7*7方阵的行列式:=MDETERM(矩阵区域),结果为0——当然,这个是我故意弄的,不然下一步写不下去

这样一来,那秩的结果肯定是小于7,所以,咱先减一个,看看是不是6

为了方便每次都从原来的矩阵里减1行或者减1列,我先把整个矩阵复制了出来,贴成了4份,像下面这样:

excel 主成分分析(Excel数据分析主成分分析的准备工作之一)(3)

然后,计算行列式,在计算公式里的区域少选1行1列,变成6*6的大小,像下面这样:

excel 主成分分析(Excel数据分析主成分分析的准备工作之一)(4)

由于交换矩阵中行和列的顺序是不影响行列式计算结果的,所以接下来,把公式横向和纵向拖到和原来的矩阵一样的大小,7行*7列,注意看下行列式公式里选中区域的变化:

excel 主成分分析(Excel数据分析主成分分析的准备工作之一)(5)

发觉了没,上图中,当我们往右和往下各拖动4格时,公式计算的区域变成了原矩阵的第5到第7行 重复的第1到第3行,第5到第7列 重复的第1到第3列,相当于组成了一个去掉了原矩阵第4行第4列的新矩阵

这样一来,只是依靠选择区域的移动,就算出了原矩阵的所有6*6子项,按照规则,只要所有子项中有1个行列式不为0,就可以判断出这个7*7矩阵的秩等于6

要是你的计算结果发现所有子项行列式全部都等于0的话,那请再多减掉1行1列算下一级的子项吧,祝你早点找到那个行列式不为0的级别

OK,今天算是先解决了一个问题~~~撒花~~~~

,