ฉันมักใช้ในการวิเคราะห์ข้อมูลหลายตัวแปรโดยใช้ PCA (ข้อมูล omics ที่มีตัวแปรนับแสนและตัวอย่างหลายสิบหรือหลายร้อย) ข้อมูลมักมาจากการทดลองกับตัวแปรอิสระหลายหมวดหมู่ที่กำหนดกลุ่มและฉันมักจะต้องผ่านองค์ประกอบบางอย่างก่อนที่ฉันจะสามารถหาคนที่แสดงการแยกระหว่างกลุ่มที่น่าสนใจ ฉันได้ค้นพบวิธีการดั้งเดิมในการค้นหาส่วนประกอบที่แบ่งแยกเช่นนั้นและฉันสงสัยว่า
- ขอบเขตนี้สมเหตุสมผล / สมเหตุสมผลและ
- ไม่ว่าจะมีวิธีที่ดีกว่าในการบรรลุเป้าหมายเดียวกัน
โปรดทราบว่านี่คือการสำรวจ ก่อนที่จะโน้มน้าวใจคนอื่นฉันต้องการโน้มน้าวตัวเอง ถ้าฉันเห็นว่ามีส่วนประกอบที่แยกความแตกต่างของกลุ่มผลประโยชน์ (เช่นการควบคุมกับการรักษา) อย่างชัดเจนแม้ว่าพวกเขาจะรับผิดชอบส่วนย่อยของความแปรปรวนของการตอบสนองฉันก็เชื่อว่ามันเป็นผลมาจากการพูด การเรียนรู้
นี่คือแนวทางของฉัน ฉันจะใช้ชุดข้อมูลตัวอย่าง "metabo" จาก pca3d ใน R
แนวคิดคือการประเมินความแปรปรวนของแต่ละองค์ประกอบที่สามารถอธิบายได้โดยตัวแปรอิสระ สำหรับสิ่งนี้ฉันคำนวณแบบจำลองอย่างง่ายสำหรับแต่ละองค์ประกอบและใช้เป็นตัวชี้วัดในการสั่งซื้อส่วนประกอบจาก "ที่น่าสนใจที่สุด" ถึง "น่าสนใจน้อยที่สุด"
require( pca3d )
# data on metabolic profiles of TB patients and controls
data( metabo )
# first column is the independent variable
pca <- prcomp( metabo[,-1], scale.= T )
# create a model for each component
lm.m <- lm( pca$x ~ metabo[,1] )
lm.s <- summary( lm.m )
lm.r2 <- sapply( lm.s, function( x ) x$r.squared )
plot( lm.r2, type= "l" )
text( 1:length( lm.r2 ), lm.r2, 1:length( lm.r2 ), pos= 3 )
นี่คือผลลัพธ์ metabo[,1]
พล็อตการแสดงร้อยละของความแปรปรวนของแต่ละองค์ประกอบอธิบายโดยตัวแปรอิสระ
เราสามารถเรียงลำดับส่วนประกอบโดยเพื่อค้นหาว่าจะแสดงองค์ประกอบใดด้วย; สามองค์ประกอบแรกคือ 2, 1 และ 7order( lm.r2, decreasing= TRUE )
pca3d( pca, components= c( 1, 2, 7 ), group= metabo[,1] )
นี่คือพล็อต:
(หมวดหมู่สีแดงและสีเขียวเป็นกลุ่มอาสาสมัครสองกลุ่มที่ไม่ใช่ผู้ป่วยและคาดว่าจะไม่สามารถแยกแยะได้)
เพื่อปฏิรูปคำถามของฉัน
- วิธีนี้เหมาะสมกับคุณหรือไม่? ปัญหาของฉันคือดูเหมือนว่าการขุดลอกข้อมูลมากเกินไป ยิ่งไปกว่านั้นฉันคิดว่าบางทีฉันควรพลิกตารางและถามว่าส่วนใดของความแปรปรวนในตัวแปรอิสระอธิบายโดยตัวแปรแต่ละตัว ในที่สุดฉัน (เกือบ) แน่ใจว่าฉันได้คิดค้นล้อใหม่ไม่ดีดังนั้นคำถามที่สองของฉันคือ
- มีอะไรที่ดีกว่านี้อีกไหม
โปรดทราบว่าฉันไม่ต้องการเปลี่ยนเป็นสี่เหลี่ยมจัตุรัสที่น้อยที่สุดบางส่วนหรืออะไรทำนองนี้ในขั้นตอนนี้ ฉันแค่ต้องการที่จะวินิจฉัย PCA ในบริบทของการจำแนกของฉัน
to find out what share of the overall variance in the data matrix is explained by a given classification
หากต้องการทราบเพียงแค่นี้คุณไม่จำเป็นต้องมี PCA เพียงคำนวณสัดส่วนของผลรวมระหว่างกลุ่มกับจำนวนรวมของช่องสี่เหลี่ยม(SStotal-SSwithin)/SStotal
โดยที่ SSwithin เป็นกลุ่มภายในผลรวมของกลุ่มของสี่เหลี่ยมจัตุรัส
Is there anything better?
ได้