主要内容

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

此示例显示如何执行加权主组件分析并解释结果。

加载示例数据。

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

显示类别变量。

负载城市类别
类别=气候住房健康犯罪交通教育艺术娱乐经济学

在总,城市数据集包含三个变量:

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

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

  • 评级,具有329行和9列的数据矩阵

绘制数据。

做一个方框图来看看这个的分布评级数据。

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

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

检查两两相关。

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

C =否(评级,评级);

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

计算主成分。

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

通过使用额定值的逆差为重量来执行主成分分析。

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

或者说:

[wcoeff,分数,潜伏,tsquared解释]= pca(评级,……“VariableWeights”、“方差”);

下面几节解释的5个输出主成分分析

分量系数。

第一个输出,WCOEFF.,包含主分量的系数。

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

C3 = WCOEFF(:,1:3)
C3 = wcoeff(:,1:3) C3 = 1.0e+03 * 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

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

变换系数。

把系数变换成标准正交的。

cofforth = inv(diag(std(routings))* wcoeff;

请注意,如果使用权重向量,w,在进行中主成分分析,然后

coefforth =诊断接头(sqrt (w)) * wcoeff;

检查系数是正常的。

转换的系数现在是正常的。

我= coefforth ' * coefforth;我(1:3,1:3)
ANS = 1.0000 -0.0000 -0.0000 -0.0000 1.0000 -0.0000 -0.0000 -0.0000 1.0000

组件分数。

第二个输出,分数,包含由主组件定义的新坐标系中原始数据的坐标。这分数矩阵与输入数据矩阵大小相同。您也可以通过下面的标准正交系数和标准化评分来获取组件评分。

cscores = zscore(评级)* cofforporth;

cscores分数是相同的矩阵。

情节部分分数。

创建的前两列的图分数

图()图(分数(:1),分数(:,2),“+”)包含(第一主成分的) ylabel ('第二个主要成分'

此图显示了投影到前两个主组件上的居中和缩放的额定值数据。主成分分析计算分数的平均值为零。

以交互方式探索剧情。

注意右半部分的偏远点。您可以以图形方式识别这些点,如下所示。

gname

将光标移动到绘图上,然后单击右侧最右侧的七点。这将其行号标记为以下图中的点数。

标记点后,按下返回

提取观测的名字。

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

Metro = [43 65 179 213 234 270 314];名(地铁:)
波士顿、马萨诸塞州、芝加哥、伊利诺伊州、洛杉矶、长滩、加州、纽约、纽约、费城、宾州、旧金山、加州、华盛顿、哥伦比亚特区、马里兰州、弗吉尼亚州

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

组件差异。

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

潜伏= 3.4083 1.2140 1.1415 0.9209 0.7533 0.6306 0.4930 0.3180 0.1204

百分比方差解释道。

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

解释
解释= 37.8699 13.4886 12.6831 10.2324 8.3698 7.0062 5.4783 3.5338 1.3378

创建Scree Plot。

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

图()帕累托(解释)包含(主成分的) ylabel ('veriance解释(%)'

此Scree图仅显示前七个(而不是总九个)组件,该组件解释了总方差的95%。每个组件占据的差异量的唯一明确的中断在第一和第二组件之间。但是,第一组件本身解释了缺差的少于40%,因此可能需要更多的组件。您可以看到前三个主要成分在标准化额定值中解释大约三分之二的总变异性,因此可能是减少尺寸的合理方法。

霍特林的丁字尺统计。

的最后输出主成分分析司干,这是霍特林的T2,从数据集中的每个观察的多变量距离的统计测量。这是一个分析方法,可以找到数据中最极端的点。

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

纽约的排名与美国城市的平均排名相差最远。

可视化结果。

可视化每个变量的标准正交主成分系数和每个观察的主成分得分在一个单一的plot中。

biplot (coefforth (:, 1:2),“分数”分数(:1:2),'varlabels',分类);轴([ - 。26 0.6 -51 .51]);

所有九个变量都由向量中的该双绘图表示,并且向量的方向和长度表示每个变量如何为图中的两个主组件贡献。例如,水平轴上的第一主组件具有所有九个变量的正系数。这就是为什么九个向量被引导到磅的右半部分。第一主组件中的最大系数是第三和第七元素,对应于变量健康艺术

在垂直轴上的第二主组件具有用于变量的正系数教育健康艺术, 和运输和剩余五个变量的负系数。这表明第二个组件区分了第一组变量的高值的城市,并且具有相反的城市。

这个数字的变量标签有点拥挤。你可以排除varlabels.在绘制绘图时使用名称-值对参数,或者使用图形窗口工具栏中的“编辑绘图”工具选择并拖动一些标签到更好的位置。

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

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

创建一个三维的双情节。

您还可以在三个维度中制作双绘图。

图()双批(Coefforport(:,1:3),“分数”分数(:1:3),“Obslabels”,名称);轴([ - 。 - 。26 0.8 -.51 .51 -.61 .81]);查看([30 40]);

如果前两个主坐标未解释您数据中的方差,则此图是有用的。您还可以通过选择来旋转图形来从不同的角度查看工具>三维旋转

另请参阅

|||||

相关的话题