主要内容

使用PCA分析美国城市的生活质量

这个例子展示了如何执行加权主成分分析和解释结果。

加载样例数据

加载样例数据。该数据包括美国329个城市9项不同生活质量指标的评级。包括气候、住房、健康、犯罪、交通、教育、艺术、娱乐和经济。对于每个类别,评分越高越好。例如,犯罪率的评级越高,犯罪率就越低。

显示类别变量。

负载城市类别
类别=9x14字符数组气候、住房、健康、犯罪、交通、教育、艺术、娱乐、经济

总的来说,城市数据集包含三个变量:

  • 类别,一个包含索引名称的字符矩阵

  • 的名字,一个包含329个城市名称的字符矩阵

  • 评级为329行9列的数据矩阵

图数据

做一个箱形图来看看的分布评级数据。

图()箱线图(评级,“定位”“水平”“标签”、类别)

图中包含一个轴对象。axis对象包含63个line类型的对象。

对艺术和住房的评级比对犯罪和气候的评级有更多的可变性。

检查成对相关性

检查变量之间的成对相关性。

C = corr(收视率,收视率);

部分变量之间的相关性高达0.85。主成分分析构造独立的新变量,这些新变量是原变量的线性组合。

计算主成分

当所有变量都在同一单位时,计算原始数据的主成分是合适的。当变量的单位不同或不同列的方差差异很大时(如本例),通常更可取的是缩放数据或使用权重。

使用评级的逆方差作为权重进行主成分分析。

W = 1./var(评级);[wcoeff,得分,潜在,tsquared,解释]= pca(评级,...“VariableWeights”, w);

或者说:

[wcoeff,得分,潜在,tsquared,解释]= pca(评级,...“VariableWeights”“方差”);

的5个输出主成分分析

分量系数

第一个输出wcoeff包含主成分的系数。

前三个主成分系数向量为:

C3 = wcoeff(:,1:3)
c3 =9×3103.× 0.0249 -0.0263 -0.0834 0.8504 -0.5978 -0.4965 0.4616 0.3004 -0.0073 0.1005 -0.1269 0.0661 0.5096 0.2606 0.2124 0.0883 0.1551 0.0737 2.1496 0.9043 -0.1229 0.2649 -0.3106 -0.0411 0.1469 -0.5111 0.6586

这些系数是加权的,因此系数矩阵不是标准正交的。

变换系数

变换系数,使它们是标准正交的。

coeffort = diag(std(ratings))\wcoeff;

注意,如果你使用权重向量,w,同时进行主成分分析,然后

系数= diag(平方根(w))*wcoeff;

检查系数

变换后的系数现在是标准正交的。

I = coefforth'*coefforth;我(1:3,1:3)
ans =3×31.0000 -0.0000 -0.0000 -0.0000 1.0000 -0.0000 -0.0000 1.0000

组件的分数

第二个输出分数包含原始数据在主成分定义的新坐标系中的坐标。的分数矩阵的大小与输入数据矩阵相同。您还可以使用标准正交系数和标准化评分获得组件分数,如下所示。

Cscores = zscore(评分)*努力度;

cscores而且分数是相同的矩阵。

Plot Component评分

的前两列创建一个图分数

图绘制(分数(:1),得分(:,2),“+”)包含(“第一主成分”) ylabel (“第二主成分”

图中包含一个轴对象。axis对象包含一个line类型的对象。

该图显示了投射到前两个主要成分上的居中和缩放的评级数据。主成分分析计算分数的平均值为零。

互动探索剧情

注意图右半部分的外围点。您可以像下面这样图形化地识别这些点。

gname

将光标移动到图上,在最右边的7个点附近单击一次。这将按行号标记点,如下图所示。

gname_identify_outliers.png

贴标点后按返回

提取观测名称

创建一个索引变量,其中包含您选择的所有城市的行号,并获得城市的名称。

地铁= [43 65 179 213 234 270 314];名(地铁:)
ans =7x43字符数组“波士顿,马萨诸塞州”“芝加哥,伊利诺伊州”“洛杉矶,长滩,加利福尼亚州”“纽约,纽约州”“费城,PA-NJ”“旧金山,加利福尼亚州”“华盛顿,DC-MD-VA”

这些被标注的城市是美国最大的人口中心,它们看起来比其他数据更极端。

组件差异

第三输出潜在的是一个包含由相应主成分解释的方差的向量。的每一列分数样本方差是否等于对应的行潜在的

潜在的
潜在的=9×13.4083 1.2140 1.1415 0.9209 0.7533 0.6306 0.4930 0.3180 0.1204

百分比方差解释

第五输出解释是一个包含由相应主成分解释的方差百分比的向量。

解释
解释了=9×137.8699 13.4886 12.6831 10.2324 8.3698 7.0062 5.4783 3.5338 1.3378

创建Scree Plot

制作一个由每个主成分解释的变异性百分比的碎石图。

图pareto(已解释)xlabel(主成分的) ylabel ('方差解释(%)'

图中包含2个轴对象。坐标轴对象1包含两个类型为bar、line的对象。坐标轴对象2为空。

该图只显示了解释95%总方差的前7个(而不是全部9个)成分。每个组成部分的方差量中唯一明显的断点是在第一个和第二个组成部分之间。然而,第一个分量本身解释了不到40%的方差,因此可能需要更多的分量。您可以看到,前三个主要成分解释了标准化评级中大约三分之二的总可变性,因此这可能是减少维度的合理方法。

霍特林t平方统计

的最后输出主成分分析tsquared这是霍特林的 T 2 ,是每个观测值到数据集中心的多元距离的统计度量。这是一种找到数据中最极端点的分析方法。

[st2,index] = sort(tsquared,“下”);%按降序排序极值=指数(1);名称(极端,:)
ans = '纽约,纽约'

纽约的评级与美国城市平均水平相差最大。

可视化的结果

将每个变量的标准正交主成分系数和每个观察结果的主成分得分可视化。

图biplot (coefforth (:, 1:2),“分数”分数(:1:2),“Varlabels”、类别)轴([-。26 . 0.6 -。51 .51]);

图中包含一个轴对象。axis对象包含29个类型为line, text的对象。

在这个双线图中,所有9个变量都用一个矢量表示,矢量的方向和长度表示每个变量对图中两个主要成分的贡献。例如,横轴上的第一个主成分,所有九个变量的系数都是正的。这就是为什么9个向量指向图的右半部分。第一主成分中系数最大的是第三和第七个元素,对应变量健康而且艺术

第二个主成分,在纵轴上,变量的系数为正教育健康艺术,运输,其余5个变量的系数为负。这表明,第二个组成部分区分了第一组变量值高而第二组变量值低的城市,以及相反的城市。

该图中的变量标签有些拥挤。你可以排除VarLabelsname-value参数,或者从图形窗口工具栏中使用Edit plot工具选择并拖动一些标签到更好的位置。

这个2-D双线图还包括329个观测值中的每个点,坐标表示图中两个主要成分的每个观测值的得分。例如,该图左边缘附近的点的第一个主成分得分最低。这些点是相对于最大分数值和最大系数长度进行缩放的,因此只能从图中确定它们的相对位置。

您可以通过选择来识别图中的项目工具>数据提示在图形窗口中。通过单击变量(向量),可以读取每个主成分的变量标签和系数。通过单击观测值(点),可以读取每个主成分的观测值名称和分数。你可以指定“ObsLabels”,名字在数据游标显示中显示观测值名称,而不是观测值编号。

创建三维双线图。

你也可以在三维空间中做一个双线图。

图biplot (coefforth (: 1:3),“分数”分数(:1:3),“ObsLabels”、名称)轴([-。26 0.8 -。51 .51 -。61 .81]) view([30 . 40])

图中包含一个轴对象。axis对象包含20个line类型的对象。

如果前两个主要坐标不能充分解释数据中的方差,则此图表是有用的。控件,还可以旋转图形以从不同角度查看工具>三维旋转

另请参阅

|||||

相关的话题