在这个问题中,我正在调查双标图的解释和PCA中的负荷/分数的含义:What are the principal components scores?
根据第一个答案的作者,分数是:
x y
John -44.6 33.2
Mike -51.9 48.8
Kate -21.1 44.35
根据second answer关于"对双极的四轴的解释":
左轴和下轴显示[标准化]主成分 分数;顶部和右侧轴显示负载。
因此,从理论上来说,绘制了双标图"什么是主成分得分"我应该在左下轴上得分:
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在问题的第一个答案中帖子)。
如果我正在做或理解错误,我的错误在哪里?
答案 0 :(得分:3)
你错过了一些细微差别:
出于某种原因biplot.princomp
不同地缩放加载和得分轴。所以你看到的分数会被改变。要获得实际值,您可以调用biplot函数,如下所示:
biplot(pca, scale=0)
请参阅help(biplot.princomp)
了解更多信息。
现在价值是实际分数。您可以通过将情节与pca$x
进行比较来确认这一点。
但是,结果仍然与您在交叉验证的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)
希望这有帮助。