原始数据
点击分析(analyze)——降维(dimension reduction)——因子分析(factor),将需要参与分析的各个原始变量放入变量框,
如图所示
点击描述
点击得分
点击抽取
点击选项
点击确定,结果如下
相关性矩阵
KMO和Bartlett球形检验结果:
KMO为0.6,说明适合做因子分析;
bartlett球形检验的显著性P值为0.000<0.05,亦说明数据适合做因子分析。
公因子方差表,展示了变量的共同度,提取下面各个共同度的值都大于0.5,说明提取的主成分对原始变量的解释程度比较高,本表在主成分分析中用处不大,此处列出来仅供参考。
总方差分解表,由下表可以看出,提取了特征值大于1的两个主成分,两个主成分的方差贡献率分别是37.667%和15.691%,累计方差贡献率为53.359%;两个特征值λ分别是2.637和1.098
因子载荷矩阵
新版本计算方法如下
如图所示,为两个主成分因子得分,,主成分为响应的因子得分乘以相应的方差算术平方根,即F1 = FAC1_1 / SQRT(2.637), F2 = FAC2_1 / SQRT(1.098)
,
计算得到的主成分结果如下:
老版本计算方法如下:
根据数理统计的相关知识,主成分分析的变换矩阵亦即主成分载荷矩阵U、因子载荷矩阵A及特征值λ的数学关系如下:
将上述因子载荷矩阵的两列复制到一个新的SPSS文件中,这个为A,下面计算U(主成分载荷矩阵)
点击转换——计算变量
U1和U2分别为两个特征向量
下面是矩阵相乘运算,即原始数据×特征向量即可得到两个主成分FAC1和FAC2。
需要注意的是,在计算变量之前,需要对原始数据进行标准化处理。
点击分析——描述统计——描述
将原始数据导入,勾选下面的“将标准化得分另存为变量(Z)”,点击确定
结果如图所示
为简便计算,用MATLAB进行矩阵相乘运算,将数据导入Excel表中,标准化原始数据和特征向量分别如下:
matlab计算代码如下:
>> [raw,info] = xlsread('E:\水质参数反演处理流程\专利\数据\PCA.xls','标准化原始数据');
>> [U,U_info] = xlsread("E:\水质参数反演处理流程\专利\数据\PCA.xls","特征向量");
>> F = raw * U
计算结果如下
1、2分别为两个主成分。其结果和新版本计算结果一致。
后续补充MATLAB版本和每一步原理(待更。。。。)