主成分分析

原始数据的主成分分析

描述

例子

多项式系数= pca (X)的主成分系数,也称为载荷n——- - - - - -p数据矩阵X。行X对应于观测值,列对应于变量。系数矩阵为p——- - - - - -p。每一列的多项式系数包含一个主成分的系数,各列按成分方差的降序排列。默认情况下,主成分分析中心数据和使用奇异值分解(SVD)算法。

例子

多项式系数= pca (X,名称,值)使用由一个或多个指定的用于计算和处理特殊数据类型的附加选项,返回以前语法中的任何输出参数名称,值对参数。

例如,你可以指定主成分的数量主成分分析返回或使用SVD以外的算法。

例子

(多项式系数,分数,潜在的)= pca (___)还返回在主成分得分分数主成分方差潜在的。您可以在前面的语法使用任意的输入参数。

主成分分数的表示X在主分量空间中。行分数对应于观测值,列对应于分量。

主成分方差的协方差矩阵的特征值X

例子

(多项式系数,分数,潜在的,tsquared)= pca (___)也返回霍特林的T-方统计为每个观察X

例子

(多项式系数,分数,潜在的,tsquared,解释,μ)= pca (___)也回报解释,每个主成分解释的总方差的百分比μ中,每个变量中的估计平均X

例子

全部折叠

加载样本数据集。

负载哈尔德

成分数据包含4个变量的13个观察值。

找出成分数据的主要成分。

多项式系数= pca(成分)
多项式系数=4×4-0.0678 -0.6460 0.5673 0.5062 -0.6785 -0.0200 -0.5440 0.4933 0.0290 0.7553 0.4036 0.5156 0.7309 -0.1085 -0.4684 0.4844

的行多项式系数包含四个成分变量的系数,并且其列对应于4种主成分。

当数据集中有缺失值时,找出主成分系数。

加载样本数据集。

负载进口- 85

数据矩阵X在柱状体13个的连续变量为3〜15:轴距,长度,宽度,高度,遏制重量,发动机尺寸,内孔,冲程,压缩比,马力,峰值转速,城市-MPG,和公路-MPG。变量缸径与冲程以行缺少四个值56至59,并且变量马力和峰转速以行131和132缺失两个值。

执行主成分分析。

多项式系数= pca (X (:, 3:15));

默认情况下,主成分分析方法指定的操作“行”,“完成”名称-值对的论点。此选项用于删除观察值计算前值。行s重新插入分数tsquared在相应的位置,即行56至59,131,和132。

使用“成对”进行主成分分析。

多项式系数= pca (X (:, 3:15),“行”,“成对”);

在这种情况下,主成分分析计算(,j)元素的协方差矩阵,使用的行号列中的值jX。注意得到的协方差矩阵可能不是正定的。此选项适用于算法主成分分析采用的是特征值分解。当你不指定算法,因为在这个例子中,主成分分析其设置为'EIG'。如果您需要“圣言”作为算法,用“成对”选项,然后主成分分析返回一条警告消息,设置算法'EIG'和仍在继续。

如果使用“行”,“全部”名称-值对的论点,主成分分析终止,因为此选项假定数据集中没有丢失的值。

多项式系数= pca (X (:, 3:15),“行”,“所有”);
使用PCA(线180)的原始数据包含同时“行”选项被设置为“所有”的NaN缺失值误差。请考虑使用“完整的”或成对”选项来代替。

主成分分析时使用反变量方差作为权重。

加载样本数据集。

负载哈尔德

用各成分方差的倒数作为变权进行主成分分析。

[wcoeff, ~,潜伏,~,解释]= pca(成分,'VariableWeights','方差')
wcoeff =4×4-2.7998 2.9940 -3.9736 1.4180 -8.7743 -6.4411 4.8927 9.9863 2.5240 -3.8749 -4.0845 1.7196 9.1714 7.5529 3.2710 11.3273
潜伏=4×12.2357 1.5761 0.1866 0.0016
解释了=4×155.8926 39.4017 4.6652 0.0406

注意系数矩阵,wcoeff,是不是正交的。

计算正交系数矩阵。

coefforth = INV(DIAG(STD(成分)))* wcoeff
coefforth =4×4-0.4760 0.5090 -0.6755 0.2411 -0.5639 -0.4139 0.3144 0.6418 0.3941 -0.6050 -0.6377 0.2685 0.5479 0.4512 0.1954 0.6767

检查新系数矩阵的正态性,coefforth

coefforth * coefforth”
ans =4×40.0000 0.0000 0.0000 0.0000 -0.0000 -0.0000 0.0000 -0.0000 0.0000 -0.0000 0.0000 0.0000 -0.0000 0.0000 0.0000

当数据中有缺失值时,使用交替最小二乘(ALS)算法寻找主成分。

加载样本数据。

负载哈尔德

成分数据包含4个变量的13个观察值。

利用渐变色算法进行主成分分析,显示成分系数。

[多项式系数,分数,潜伏,tsquared解释]= pca(成分);多项式系数
多项式系数=4×4-0.0678 -0.6460 0.5673 0.5062 -0.6785 -0.0200 -0.5440 0.4933 0.0290 0.7553 0.4036 0.5156 0.7309 -0.1085 -0.4684 0.4844

随机引入缺失值。

Y =配料;RNG(“默认”);%的再现性第九=随机(“unif”0 1大小(y)) < 0.30;y (ix) = NaN
Y =13×47 26 6 1的NaN 29 15 52楠楠8 20 11 31的NaN 47 7 52 6 33 55的NaN楠楠的NaN 71的NaN 6 1 31 44的NaN 2楠楠22 21 47 4 26⋮

现在大约有30%的数据缺失值

利用渐变色算法进行主成分分析,显示成分系数。

[coeff1 score1,潜伏,tsquared,解释说,mu1] = pca (y,“算法”,“als”);COEFF1
coeff1 =4×4-0.0362 0.8215 -0.5252 0.2190 -0.6831 -0.0998 0.1828 0.6999 0.0169 0.5575 0.8215 -0.1185 0.7292 -0.0657 0.1261 0.6694

显示估计平均值。

mu1
mu1 =1×48.9956 47.9088 9.0451 28.5515

重建观测数据。

t = score1*coeff1' + repmat(mu1,13,1)
t =13×47.0000 26.0000 6.0000 51.5250 1.0000 29.0000 15.0000 52.0000 10.7819 53.0230 8.0000 20.0000 11.0000 31.0000 13.5500 47.0000 7.0000 52.0000 6.0000 33.0000 10.4818 55.0000 7.8328 17.9362 3.0982 71.0000 11.9491 6.0000 1.0000 31.0000 -0.5161 44.0000 2.0000 53.7914 5.7710 22.0000 21.0000 47.0000 4.0000 26.0000⋮

ALS算法估计数据中缺失的值。

另一个来比较结果的方法是找到由系数矢量所跨越的两个空间之间的角度。查找找到了完整的数据,并使用ALS缺失值数据的系数之间的角度。

子空间(多项式系数,coeff1)
ANS = 8.1666e-16

这是一个很小的值。它表示如果你使用的结果主成分分析“行”,“完成”如果没有丢失的数据,并且使用了,则使用名称-值对参数主成分分析“算法”、“als”当缺少数据时,名称-值对参数彼此接近。

使用执行主成分分析“行”,“完成”名称-值对参数,并显示组件系数。

[COEFF2,score2,潜,tsquared,所解释的,MU2] = PCA(Y,“行”,'完成');COEFF2
coeff2 =4×3-0.2054 0.8587 -0.6694 -0.3720 0.5510 0.1474 -0.3513 -0.5187 0.6986 -0.0298 0.6518

在这种情况下,主成分分析删除缺少值的行,以及y只有四行没有丢失值。主成分分析只返回三个主组件。你不能使用“行”,“配对”因为协方差矩阵不是正半定的主成分分析返回错误消息。

查找找到了完整的数据,并使用列表删除缺失值数据的系数之间的角度(当“行”,“完成”)。

子空间(系数_(:,1:3),COEFF2)
ANS = 0.3576

两个空间之间的角度要大得多。这说明这两个结果是不同的。

显示估计平均值。

mu2
MU2 =1×47.8889 46.9091 9.8750 29.6000

这里,均值是样本均值y

重建观测数据。

score2 * coeff2’
ans =13×4南南南南-7.5162 -18.3545 4.0968 22.0056南南南南南南南南-0.5644 5.3213 -3.3432 3.6040南南南南南南南南南南南南南南南南12.8315 -0.1076 -6.3333 -3.7758⋮

由此可见,含有删除行值的工作效果不如ALS算法。当数据有太多缺失值时,使用ALS更好。

找出主成分的系数、分数和方差。

加载样本数据集。

负载哈尔德

成分数据包含4个变量的13个观察值。

为成分数据找到成分的主成分系数、分数和方差。

[多项式系数,分数,潜伏]= pca(成分)
多项式系数=4×4-0.0678 -0.6460 0.5673 0.5062 -0.6785 -0.0200 -0.5440 0.4933 0.0290 0.7553 0.4036 0.5156 0.7309 -0.1085 -0.4684 0.4844
分数=13×436.8218 -6.8709 -4.5909 0.3967 29.6073 4.6109 -2.2476 -0.3958 -12.9818 -4.2049 0.9022 -1.1261 23.7147 -6.6341 1.8547 -0.3786 -0.5532 -4.4617 -6.0874 0.1424 -10.8125 -3.6466 0.9130 -0.1350 -32.5882 8.9798 -1.6063 0.0818 22.6064 10.7259 3.2365 0.3243 -9.2626 8.9854 -0.0169 -0.5437 -3.2840 -14.1573 7.0465 0.3405⋮
潜伏=4×1517.7969 67.4964 12.4054 0.2372

每一列的分数对应于一个主成分。这个向量,潜在的,存储四个主成分的方差。

重构中心的成分的数据。

Xcentered =分数*多项式系数的
Xcentered =13×4-0.4615 -22.1538 -5.7692 30.0000 -6.4615 -19.1538 3.2308 22.0000 3.5385 7.8462 -3.7692 -10.0000 3.5385 -17.1538 -3.7692 17.0000 -0.4615 3.8462 -5.7692 3.0000 3.5385 6.8462 -2.7692 -8.0000 -4.4615 22.8462 5.2308 -24.0000 -6.4615 -17.1538 10.2308 14.0000 -5.4615 5.8462 6.2308 -8.0000 13.5385 -1.1538 -7.7692 -4.0000⋮

新的数据Xcentered为原始成分数据,以相应列减去列的平均值为中心。

将每个变量的标准正交主成分系数和每个观测值的主成分得分可视化到一个单独的图中。

双标图(系数_(:,1:2),“分数”分数(:1:2),“varlabels”,{'V_1',“v_2”,'V_3','V_4'});

在这个双图中,所有四个变量都由一个向量表示,向量的方向和长度表示每个变量对图中两个主成分的贡献。例如,在横轴上的第一个主成分,对于第三和第四个变量有正的系数。因此,矢量 v 3. v 4 被引导到情节的右半部分。第一个主成分中最大的系数是第四个,对应于变量 v 4

第二主成分在纵轴上,变量的系数为负 v 1 , v 2 , v 4 和用于可变的正系数 v 3.

这个2-d双标图还包括用于每个13所观察的点,与指示的每个观测在图中的两个主成分得分的坐标。例如,靠近图的左边边缘点具有最低得分的第一主成分。点被缩放相对于所述最大得分值和最大系数长度,因此,只有它们的相对位置可从图中确定。

找到霍特林的T-平方统计值。

加载样本数据集。

负载哈尔德

成分数据包含4个变量的13个观察值。

执行主成分分析并请求t方值。

[多项式系数,分数,潜伏,tsquared] = pca(成分);tsquared
tsquared =13×15.6803 3.0758 6.0002 2.6198 3.3681 0.5668 3.4818 3.9794 2.6086 7.4818⋮

请求只有前两个主成分和所要求的主成分的减少的空间计算T-平方值。

[多项式系数,分数,潜伏,tsquared] = pca(成分,“NumComponents”2);tsquared
tsquared =13×15.6803 3.0758 6.0002 2.6198 3.3681 0.5668 3.4818 3.9794 2.6086 7.4818⋮

需要注意的是,即使你指定减少器件空间,主成分分析使用所有四个组件计算整个空间中的t平方值。

在减小的空间对应于减小的空间的马氏距离的T-平方值。

tsqreduced =泰姬陵(得分,得分)
tsqreduced =13×13.3179 2.0079 0.5874 1.7382 0.2955 0.4228 3.2457 2.6914 1.3619 2.9903⋮

计算废弃空间中的t²值,取全空间中的t²值与约化空间中的马氏距离之差。

tsqdiscarded = tsquared  -  tsqreduced
tsqdiscarded =13×12.3624 1.0679 5.4128 0.8816 3.0726 0.1440 0.2362 1.2880 1.2467 4.4915⋮

找出由主成分解释的变化百分比。显示主成分空间中的数据表示形式。

加载样本数据集。

负载进口- 85

数据矩阵X在柱状体13个的连续变量为3〜15:轴距,长度,宽度,高度,遏制重量,发动机尺寸,内孔,冲程,压缩比,马力,峰值转速,城市-MPG,和公路-MPG。

找出由这些变量的主成分解释的变异性百分比。

[多项式系数,分数,潜伏,tsquared解释]= pca (X (:, 3:15));解释
解释了=13×164.3429 35.4484 0.1550 0.0379 0.0078 0.0048 0.0013 0.0011 0.0005 0.0002⋮

前三个成分解释了99.95%的所有可变性。

在前三个主成分的空间中可视化数据表示。

scatter3(分数(:1),分数(:,2),得分(:,3)轴平等的包含(第一主成分的)ylabel (“第二主成分”)zlabel (“第3主成分”)

数据显示,最大的变异性沿第一主成分轴。这是第一轴所有可能选择中最大的方差。沿第二主成分轴的变异性是第二轴所有可能的剩余选择中最大的。第三主成分轴的变异性是第三大的,明显小于第二主成分轴的变异性。第四到第十三主成分轴不值得检查,因为它们只解释了数据中所有变化的0.05%。

要跳过任何输出,可以使用~而是对应的元素。例如,如果您不想获得t²值,请指定

[多项式系数,分数,潜伏,~,解释]= pca (X (:, 3:15));

找到一个数据集的主成分,并将主成分分析应用于另一个数据集。当你有一个训练数据集和一个机器学习模型的测试数据集时,这个过程很有用。例如,您可以使用PCA对训练数据集进行预处理,然后训练一个模型。要使用测试数据集测试经过训练的模型,您需要将从训练数据获得的PCA转换应用到测试数据集。

这个例子还描述了如何生成C/ c++代码。因为主成分分析金宝app支持代码生成,您可以在使用训练数据集进行PCA生成代码和PCA应用到测试数据集。然后部署的代码的装置。在这个工作流程,你必须通过训练数据,它可以是具有相当规模。要保存在设备上的内存,可以单独训练和预测。使用主成分分析并将PCA应用于设备上生成的代码中的新数据。

生成C / C ++代码需要MATLAB®编码器™。

将PCA应用于新数据

使用以下命令将数据集加载到表中readtable。该数据集是在文件中CreditRating_Historical.dat,其中包含历史信用评级数据。

creditrating = readtable ('CreditRating_Historical.dat');creditrating (1:5,:)
ans =5×8表ID WC_TA RE_TA EBIT_TA MVE_BVTD S_TA行业评级_____ _____ _____累积________ _____ ________ 62394 0.013 0.104 0.036 0.447 0.142 3 {“BB”} 48608 0.232 0.335 0.062 1.969 0.281 8 {A} 42444 0.311 0.367 0.074 1.935 0.366 1 {A} 48631 0.194 0.263 0.062 1.017 0.228 - 4 {BBB的}43768 0.121 0.413 0.057 3.647 0.466 12 {' AAA '}

第一列是每个观察的ID,最后一列是一个评级。指定第二至第七列作为预测数据,并指定最后一列(评级)作为响应。

X = table2array(企业资信(:,2:7));Y = creditrating.Rating;

使用前100个观察值作为测试数据,其余的作为训练数据。

XTest = X (1:10 0,);XTrain = X(101年:,);欧美= Y (1:10 0);YTrain = Y(101:结束);

找出训练数据集的主要组成部分XTrain

[多项式系数,scoreTrain, ~, ~,解释说,μ)= pca (XTrain);

此代码返回四个输出:多项式系数,scoreTrain,解释,μ。使用解释(解释的总方差的百分比),以找出解释至少95%的变异性所需的组件数量。使用多项式系数(主成分系数)μ(估计的装置XTrain)将主成分分析应用于测试数据集scoreTrain(主成分得分)而不是XTrain当你训练一个模型的时候。

显示的百分比变异性由主成分进行说明。

解释
解释了=6×158.2614 41.2606 0.3875 0.0632 0.0269 0.0005

前两个组成部分解释了95%以上的所有可变性。通过使用a,以编程方式查找解释至少95%可变性所需的组件数量循环。

sum_explained = 0;idx = 0;sum_explained < 95 idx = idx + 1;sum_explained = sum_explained + explained(idx);结束IDX
IDX = 2

使用前两个部分训练的分类树。

scoreTrain95 = scoreTrain(:,1:IDX);MDL = fitctree(scoreTrain95,YTrain);

mdlClassificationTree模型。

要对测试集使用训练后的模型,需要使用训练数据集得到的PCA对测试数据集进行转换,然后减去得到测试数据集的主成分分数μXTEST,乘以多项式系数。只需要前两个分量的分数,所以使用前两个系数多项式系数(:1:idx)

scoreTest95 = (XTest-mu) *多项式系数(:1:idx);

通过训练模型mdl以及转换后的测试数据集scoreTest预测功能预测测试集的评级。

scoreTest95 YTest_predicted =预测(mdl);

生成代码

生成将PCA应用于数据的代码,并使用经过训练的模型预测评级。注意,生成C/ c++代码需要MATLAB®Coder™。

分类模型保存到文件myMdl.mat通过使用saveLearnerForCoder

saveLearnerForCoder (mdl“myMdl”);

定义一个名为的入口点函数myPCAPredict接受测试数据集(XTEST)和PCA信息(多项式系数μ),并返回测试数据的评级。

添加%#代码生成编译器指令(或pragma)指向入口点函数后的函数签名,以表明您打算为MATLAB算法生成代码。添加这个指令将指导MATLAB代码分析器帮助您诊断和修复代码生成过程中可能导致错误的违规行为。

类型myPCAPredict%myPCAPredict.m的显示内容
函数标签= myPCAPredict(XTest,coeff,mu) %#codegen %转换数据使用PCA scoreTest = bsxfun(@ -,XTest,mu)*coeff;%加载训练分类模型mdl = loadLearnerForCoder('myMdl');%预测评分使用加载的模型标签=预测(mdl,计分);

myPCAPredict将PCA应用于新数据的使用多项式系数μ,然后使用预测转换后的数据的收视率。这样一来,你不通过训练数据,它可以是具有相当规模。

注意:如果您单击位于此页面的右上部分的按钮,打开在MATLAB®这个例子中,然后打开MATLAB®的示例文件夹中。此文件夹包含入口点函数文件。

使用以下命令生成代码代码生成。由于C和C ++的静态类型语言,你必须在编译时确定的入口点函数的所有变量的性质。要指定的数据类型和详细的输入数组大小,传递,通过使用表示与特定的数据类型和阵列尺寸的设定值的MATLAB®表达arg游戏选项。如果观察的数量是在编译时未知的,你还可以通过使用指定的输入作为可变大小coder.typeof。有关详细信息,请参见为代码生成指定可变大小的参数

代码生成myPCAPredictarg游戏{coder.typeof (XTest[正无穷,6],[1,0]),多项式系数(:,1:idx),μ}

                    

代码生成生成MEX函数myPCAPredict_mex与平台相关的扩展。

验证生成的代码。

YTest_predicted_mex = myPCAPredict_mex (XTest多项式系数(:1:idx),μ);isequal (YTest_predicted YTest_predicted_mex)
ans =逻辑1

isequal返回逻辑1 (真正的),这意味着所有的输入是相等的。对比确认预测的函数mdlmyPCAPredict_mex函数返回相同的额定值。

有关代码生成的更多信息,请参见代码生成简介代码生成和分类学习应用程序。后者介绍了如何执行PCA并通过使用分类学习者的应用程序,以及如何产生C / C ++代码,预测基于所述训练的模型的新数据标签训练的模型。

输入参数

全部折叠

用于计算主成分的输入数据,指定为n——- - - - - -p矩阵。行X对应于观测值,列对应于变量。

数据类型:|

名称 - 值对参数

指定可选的逗号分隔的对名称,值参数。名称参数名和价值是对应的值。名称必须出现在引号内。可以按任意顺序指定多个名称和值对参数Name1, Value1,…,的家

例子:“算法”、“eig”、“集中”,假的,‘行’,‘所有’,‘NumComponents’, 3指定主成分分析使用特征值分解算法,不以数据为中心,使用所有观测值,只返回前三个主成分。

主成分算法主成分分析用来执行主成分分析,指定为逗号分隔的一对组成的“算法”和下面的一个。

价值 描述
“圣言” 违约。奇异值分解(SVD)的X
'EIG' 协方差矩阵的特征值分解(EIG)。EIG算法在观测次数为n,超过了变量的数量,p,但由于协方差的条件数是条件数的平方,所以精度较低X
“als”

交替最小二乘法(ALS)算法。这个算法找到了最好的rank-k近似通过分解X成一个n——- - - - - -k左因子矩阵L和ap——- - - - - -k右因子矩阵,R,其中k是主成分的数量。因式分解使用开始与随机的初始值的迭代方法。

ALS的目的是更好地处理缺失值。优选的是,成对删除(“行”,“配对”),并在不删除列表的情况下处理缺失的值(“行”,“完成”)。它可以为数据集随机缺失数据的一小部分工作得很好,但可能无法在稀疏数据集表现良好。

例子:“算法”、“eig”

用于定心的列指示器,指定为逗号分隔的一对组成的“中心”和这些逻辑表达式中的一个。

价值 描述
真正的

违约。主成分分析中心X通过计算奇异值分解或本征值分解之前减去柱装置。如果X包含缺失值,nanmean是用来找出任何可用数据的平均值。可以使用以下命令重新构造居中数据得分*系数_”

在这种情况下主成分分析没有将数据居中。您可以使用以下命令重构原始数据得分*系数_”

例子:“中心”,假

数据类型:逻辑

指示灯的经济规模输出,当自由度,d,比变量的数量较小,p,指定为逗号分隔的对,由“经济”和这些逻辑表达式中的一个。

价值 描述
真正的

违约。主成分分析只返回第一个d的元素潜在的对应的列向量多项式系数分数

当变量的数量增加时,此选项可以显著加快速度pd

主成分分析返回潜在的。的列多项式系数分数对应于0个元素潜在的是零。

注意,当d<p,分数(d + 1:: p)潜在的(d + 1: p)的列向量多项式系数(d + 1:: p)定义正交的方向X

例子:“经济”,假的

数据类型:逻辑

请求的组件数,指定为逗号分隔的对,由“NumComponents”和一个标量整数k满足0 <kp,在那里p是原始变量的数量X。当指定时,主成分分析返回第一个k多项式系数分数

例子:'NumComponents',3

数据类型:|

采取行动数据矩阵中的值X,指定为逗号分隔的对,由“行”和下面的一个。

价值 描述
'完成'

违约。观察与值在计算之前被删除。行s重新插入分数tsquared在相应的位置。

“成对”

此选项仅适用于该算法'EIG'。如果你不指定算法“成对”,然后主成分分析其设置为'EIG'。如果您指定“圣言”随着算法,随着选项“行”,“配对”,然后主成分分析返回一条警告消息,设置算法'EIG'和仍在继续。

当您指定“行”,“配对”选项,主成分分析计算(,j)元素的协方差矩阵,使用的行号列中的值jX

注意得到的协方差矩阵可能不是正定的。在这种情况下,主成分分析使用错误消息终止。

“所有”

X预期没有缺失的值。主成分分析使用所有数据,并终止如有的价值发现。

例子:“行”,“配对”

观察权值,由逗号分隔的对组成“重量”和长度向量n包含所有积极因素。

数据类型:|

变量权重,指定为逗号分隔的对,由'VariableWeights'和下面的一个。

价值 描述

行向量

向量的长度p包含所有积极因素。

'方差'

变量权值是样本方差的倒数。如果你也使用“重量”,则变量权重成为加权样本方差的倒数。

如果“中心”被设置为真正的同时,数据矩阵X居中和标准化。在这种情况下,主成分分析返回基于相关矩阵的主成分。

例子:“VariableWeights”、“方差”

数据类型:||字符|字符串

系数矩阵的初值多项式系数,指定为逗号分隔的对,由“Coeff0”p——- - - - - -k矩阵,p为变量的个数,k是请求的主组件的数量。

请注意

您只能在以下情况下使用此名称-值对“算法”“als”

数据类型:|

分数矩阵的初值分数,指定为逗号分隔的对,由“Score0”和一个n——- - - - - -k矩阵,n是观测值的数量和k是请求的主组件的数量。

请注意

您只能在以下情况下使用此名称-值对“算法”“als”

数据类型:|

迭代的选项,指定为逗号分隔的对,由“选项”和一个由statset函数。主成分分析在选项结构中使用以下字段。

字段名 描述
“显示” 显示输出电平。的选择是“关闭”,“最后一次”,“通路”
“麦克斯特” 允许的最大步数。默认值是1000。与优化设置不同,到达麦克斯特值视为收敛。
'TolFun' 给出代价函数的终止公差的正数。默认值为1E-6。
“TolX” 正数来为在左侧和右侧因子矩阵,L和R中的元素的相对变化收敛门限,在ALS算法。默认值为1E-6。

请注意

您只能在以下情况下使用此名称-值对“算法”“als”

您可以更改这些字段的值并在其中指定新的结构主成分分析使用“选项”名称-值对的论点。

例子:选择= statset (pca);opt.MaxIter = 2000;多项式系数= pca (X,“选项”,选择);

数据类型:结构体

输出参数

全部折叠

主成分系数,以a的形式返回p——- - - - - -p矩阵。每一列的多项式系数包含一个主成分的系数。这些列按照分量方差递减的顺序排列,潜在的

主成分得分,返回作为基质。行分数对应于观察值,而列对应于组件。

的协方差矩阵的特征值X,作为列向量返回。

霍特林的丁字尺统计,即每个观测值的标准化得分的平方和,以列向量的形式返回。

总方差的百分比由每个主成分所解释的,返回一个列向量。

变量的估计值X时,作为行向量返回为中心的被设置为真正的。当为中心的,该软件不计算平均值,返回一个0向量。

更多关于

全部折叠

霍特林的丁字尺统计

霍特林(Hotelling)的t平方统计量(T-squared statistic)是对每个观测值与数据集中心之间的多元距离的统计度量。

即使您请求的组件数量少于变量数量,主成分分析使用所有主成分来计算t平方统计量(在全空间中计算)。如果您想要将t平方统计量放入缩减空间或丢弃空间,请执行以下操作之一:

  • 对于约简空间中的t平方统计量,请使用泰姬陵(得分,得分)

  • 对于丢弃空间中的t平方统计,首先使用以下方法计算t平方统计[多项式系数,分数,潜伏,tsquared] = pca (X, NumComponents, k,…)使用计算在减小的空间的T-方统计tsqreduced =泰姬陵(得分,得分),然后取其差值:tsquared-tsqreduced

自由度

自由度,d,等于n- 1、如果数据居中并n否则,地点:

  • n行数是否为空如果你使用“行”,“完成”

  • n行数是否为空■在列对具有的最大行数不如果你使用“行”,“配对”

变量权重

注意,当使用可变权重时,系数矩阵不是标准正交的。假设你使用的可变权向量被调用varwei和主分量系数向量主成分分析返回的wcoeff。然后你可以用这个变换来计算标准正交系数诊断接头(sqrt (varwei)) * wcoeff

参考文献

[1]乔利夫,I. T.主成分分析。第2版​​,Springer,2002。

克扎诺夫斯基,w。多元分析原理。牛津大学出版社,1988年。

[3] Seber,G. A. F.多元意见。威利,1984年。

杰克逊,j.e.。主要组件的用户指南。威利,1988年。

主成分分析和SPCA的EM算法。在1997年神经信息处理系统进展会议的会议记录中。第10卷(NIPS 1997),麻州剑桥:麻省理工学院出版社,1998年,第626-632页。

[6]伊林,A.和T.赖科。“在缺失值存在的情况下进行主成分分析的实用方法。”j·马赫。学习。Res。。第11卷,2010年8月,1957-2000页。

扩展功能

介绍了在R2012b