Lorsque vous construisez un biplot pour une analyse PCA, vous avez les scores PC1 de la composante principale sur l'axe x et les scores PC2 sur l'axe y. Mais quels sont les deux autres axes à droite et en haut de l'écran?
Lorsque vous construisez un biplot pour une analyse PCA, vous avez les scores PC1 de la composante principale sur l'axe x et les scores PC2 sur l'axe y. Mais quels sont les deux autres axes à droite et en haut de l'écran?
Réponses:
Voulez-vous dire, par exemple, dans l'intrigue que la commande suivante retourne?
biplot(prcomp(USArrests, scale = TRUE))
Si oui, alors les axes supérieur et droit sont destinés à être utilisés pour interpréter les flèches rouges (points représentant les variables) dans le graphique.
Si vous savez comment fonctionne l'analyse des composants principaux et que vous pouvez lire le code R, le code ci-dessous vous montre comment les résultats prcomp()
sont initialement traités biplot.prcomp()
avant le traçage final biplot.default()
. Ces deux fonctions sont appelées en arrière-plan lorsque vous tracez avec biplot()
, et l'extrait de code modifié suivant provient de biplot.prcomp()
.
x<-prcomp(USArrests, scale=TRUE)
choices = 1L:2L
scale = 1
pc.biplot = FALSE
scores<-x$x
lam <- x$sdev[choices]
n <- NROW(scores)
lam <- lam * sqrt(n)
lam <- lam^scale
yy<-t(t(x$rotation[, choices]) * lam)
xx<-t(t(scores[, choices])/lam)
biplot(xx,yy)
Brièvement, dans l'exemple ci-dessus, la matrice des chargements variables ( x$rotation
) est mise à l'échelle par l'écart type des principales composantes ( x$sdev
) multiplié par la racine carrée du nombre d'observations. Cela définit l'échelle des axes supérieur et droit sur ce qui est vu sur le tracé.
Il existe également d'autres méthodes pour mettre à l'échelle les charges variables. Celles-ci sont proposées par exemple par le package R vegan.
biplot.default
). Je trouve cela extrêmement déroutant.
J'ai une meilleure visualisation pour le biplot. Veuillez vérifier la figure suivante.
Dans l'expérience, j'essaie de mapper des points 3d en 2d (ensemble de données simulées).
L'astuce pour comprendre le biplot en 2D est de trouver l'angle correct pour voir la même chose en 3D. Tous les points de données sont numérotés, vous pouvez voir clairement la cartographie.
Voici le code pour reproduire les résultats.
require(rgl)
set.seed(0)
feature1=round(rnorm(50)*10+20)
feature2=round(rnorm(50)*10+30)
feature3=round(runif(50)*feature1)
d=data.frame(feature1,feature2,feature3)
head(d)
plot(feature1,feature2)
plot(feature2,feature3)
plot(feature1,feature3)
plot3d(d$feature1, d$feature2, d$feature3, type = 'n')
points3d(d$feature1, d$feature2, d$feature3, color = 'red', size = 10)
shift <- matrix(c(-2, 2, 0), 12, 3, byrow = TRUE)
text3d(d+shift,texts=1:50)
grid3d(c("x", "y", "z"))
pr.out=prcomp(d,scale.=T)
biplot(pr.out)
grid()
biplot
commande en R et reproduit dans votre figure de droite: là le nuage de points est standardisé mais les flèches ont des longueurs correspondant aux variances.
biplot
produit avec scale=0
argument.