繁体   English   中英

PCA:双标图中的得分与负荷

[英]PCA: scores vs loadings in biplot

在这个问题中,我正在调查双标图的解释和PCA中的负荷/分数的含义: 主要成分分数是多少?

根据第一个答案的作者,得分是:

      x       y
John  -44.6  33.2
Mike  -51.9   48.8
Kate  -21.1   44.35

根据关于“双极四轴的解释”的第二个答案

左轴和下轴显示[标准化]主成分分数; 顶部和右侧轴显示负载。

因此,理论上在绘制了“什么是主要成分得分”的双标图后,我应该在左下轴上得分:

      x       y
John  -44.6  33.2
Mike  -51.9   48.8
Kate  -21.1   44.35

并在右侧和顶部装载。

我输入他在R中提供的数据:

DF<-data.frame(Maths=c(80, 90, 95), Science=c(85, 85, 80), English=c(60, 70, 40), Music=c(55, 45, 50))
pca = prcomp(DF, scale = FALSE)
biplot(pca)

这是我得到的情节:首先,左下轴代表主要成分的负荷。 顶部和右侧轴代表分数,但它们与作者从帖子中提供的分数不对应(3个名称Kate在情节上有正分数但在PC1上有一个负数,根据Tony Breyal在问题的第一个答案中这个帖子)。

如果我正在做或理解错误,我的错误在哪里?

在此输入图像描述

你错过了一些细微差别:

  1. biplot.princomp功能

出于某种原因, biplot.princomp以不同的方式缩放加载和得分轴。 所以你看到的分数会被改变。 要获得实际值,您可以调用biplot函数,如下所示:

biplot(pca, scale=0)

请参阅help(biplot.princomp)了解更多信息。

现在这些值是实际分数。 您可以通过将图表与pca$x进行比较来确认。

  1. 定心。

但是,结果仍然与您在交叉验证的SO中找到的答案不同。

这是因为Tony Breyal手动计算得分并且他正在使用非中心数据。 prcomp函数默认居中,然后使用居中数据来获得分数。

所以你可以先把数据集中在一起:

> scale(DF, scale=FALSE)
         Maths   Science    English Music
[1,] -8.333333  1.666667   3.333333     5
[2,]  1.666667  1.666667  13.333333    -5
[3,]  6.666667 -3.333333 -16.666667     0

现在使用这些数字来得到答案的分数:

           x                                                   y
John 0.28*(-8.3) + -0.17*1.6    + -0.94*3     + 0.07*5     0.77*(-8.3) + -0.08*1.6    + 0.19*3     + -0.60*5 
Mike 0.28*1.6    + -0.17*1.6    + -0.94*13    + 0.07*(-5)  0.77*1.6    + -0.08*1.6    + 0.19*13    + -0.60*(-5)
Kate 0.28*6.6    + -0.17*(-3.3) + -0.94*(-16) + 0.07*0     0.77*6.6    + -0.08*(-3.3) + 0.19*(-16) + -0.60*0

完成此操作后,您应获得与biplot(pca, scale=0)绘制的相同分数biplot(pca, scale=0)

希望这可以帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM