สี่แกนใน PCA biplot คืออะไร


18

เมื่อคุณสร้าง biplot สำหรับการวิเคราะห์ PCA คุณจะได้คะแนนองค์ประกอบหลัก PC1 จากคะแนน x-axis และ PC2 บนแกน y แต่อีกสองแกนทางด้านขวาและด้านบนของหน้าจอคืออะไร?


1
เราจะทราบได้อย่างไรว่าหน้าจอใดที่คุณกำลังพูดถึง?
FairMiles

@ttnphns มีคำตอบที่ยอดเยี่ยมที่นี่
Haitao Du

คำตอบ:


12

คุณหมายถึงเช่นในพล็อตที่คำสั่งต่อไปนี้กลับมา?

biplot(prcomp(USArrests, scale = TRUE))

biplot การจับกุมในสหรัฐอเมริกา

ถ้าใช่จะใช้แกนด้านบนและด้านขวาเพื่อแปลความหมายของลูกศรสีแดง (ชี้ให้เห็นตัวแปร) ในพล็อต

ถ้าคุณรู้วิธีการวิเคราะห์องค์ประกอบหลักทำงานและคุณสามารถอ่านรหัส R รหัสด้านล่างแสดงให้คุณเห็นว่าผลที่ได้จากprcomp()ได้รับการปฏิบัติในขั้นแรกโดยก่อนที่จะมีพล็อตสุดท้ายbiplot.prcomp() biplot.default()ทั้งสองฟังก์ชั่นที่เรียกว่าในพื้นหลังเมื่อคุณวางแผนด้วยและต่อไปนี้ตัดตอนรหัสการปรับเปลี่ยนจากbiplot()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)

ไม่นานในตัวอย่างข้างต้นเมทริกซ์ของการโหลดตัวแปร ( x$rotation) จะถูกปรับอัตราส่วนโดยส่วนเบี่ยงเบนมาตรฐานขององค์ประกอบหลัก ( x$sdev) คูณรากที่สองของจำนวนการสังเกต ชุดนี้ปรับสเกลสำหรับแกนด้านบนและด้านขวาเป็นสิ่งที่เห็นบนโครง

มีวิธีการอื่น ๆ ในการปรับขนาดการโหลดตัวแปรเช่นกัน สิ่งเหล่านี้มีให้เช่นโดยแพ็คเกจ R มังสวิรัติ


5
+1 ฉันเอาเสรีภาพในการแทรกตัวเลขลงในคำตอบของคุณ
อะมีบาพูดว่า Reinstate Monica

นอกจากนี้ฉันคิดว่ามันจะมีประโยชน์มากสำหรับการอ้างอิงในอนาคตหากคุณสามารถเพิ่มคำตอบของคุณว่าคะแนน PC (แกนด้านซ้ายและด้านล่าง) จะถูกปรับอัตราส่วนเป็นหน่วยรวมของสี่เหลี่ยมจัตุรัส: ไม่ใช่ "ดิบ" คะแนนพีซี
อะมีบาพูดว่า Reinstate Monica

0.8biplot.default

1
ให้ดียิ่งขึ้นนอกจากนี้ยังเห็นนี้ด้ายหลังการวางตำแหน่งลูกศรบน biplot
อะมีบาพูดว่า Reinstate Monica

11

ฉันมีภาพที่ดีขึ้นสำหรับ biplot กรุณาตรวจสอบรูปต่อไปนี้

ในการทดสอบฉันพยายามแมปคะแนนสามมิติเป็น 2d (ชุดข้อมูลจำลอง)

เคล็ดลับที่จะเข้าใจ biplot ใน 2d คือการหามุมที่ถูกต้องเพื่อดูสิ่งเดียวกันในแบบ 3 มิติ จุดข้อมูลทั้งหมดจะถูกกำหนดหมายเลขคุณสามารถดูการแมปได้อย่างชัดเจน

ป้อนคำอธิบายรูปภาพที่นี่

นี่คือรหัสในการทำซ้ำผลลัพธ์

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()

2
+1 อย่างไรก็ตามโปรดทราบว่าในรูปแบบ 3 มิติที่หมุนของคุณเมฆของจุดมีความแปรปรวนที่เก็บรักษาไว้ (การฉายในแนวนอนเช่น PC1 มีความแปรปรวนที่ใหญ่กว่าแนวตั้งในแนวตั้งเช่น PC2) ในขณะที่ลูกศรสีแดงทั้งหมดมีความยาวหน่วย นี่ไม่ใช่กรณีใน biplot ที่สร้างโดยbiplotคำสั่งใน R และทำซ้ำในรูปของคุณทางด้านขวา: มีคลาวด์ของจุดที่เป็นมาตรฐาน แต่ลูกศรมีความยาวที่สอดคล้องกับความแปรปรวน
อะมีบาพูดว่า Reinstate Monica

@ จุดที่ดี Amoeba ฉันเพียงแค่วาดลูกศรด้วยตนเองและลืมความยาวของลูกศรที่มีความหมายเฉพาะ
Haitao Du

ฉันคิดว่า "biplot" แบบ 3D / 2D ของคุณสอดคล้องกับสิ่งที่ฟังก์ชั่นbiplotสร้างขึ้นด้วยการscale=0โต้แย้ง
อะมีบาพูดว่า Reinstate Monica
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.