ตัวแปรใดอธิบายถึงส่วนประกอบ PCA และในทางกลับกัน


15

ใช้ข้อมูลนี้:

head(USArrests)
nrow(USArrests)

ฉันสามารถทำ PCA เป็นเช่นนี้:

plot(USArrests)
otherPCA <- princomp(USArrests)

ฉันสามารถรับส่วนประกอบใหม่ได้

otherPCA$scores

และสัดส่วนของความแปรปรวนที่อธิบายโดยส่วนประกอบด้วย

summary(otherPCA)

แต่ถ้าฉันต้องการรู้ว่าตัวแปรใดที่อธิบายส่วนใหญ่โดยองค์ประกอบหลัก? และในทางกลับกัน: เป็นเช่น PC1 หรือ PC2 ส่วนใหญ่อธิบายโดยmurder? ฉันจะทำสิ่งนี้ได้อย่างไร

ฉันสามารถพูดได้เช่นว่า PC1 นั้นสามารถอธิบายได้ 80% โดยmurderหรือassault?

ฉันคิดว่าการโหลดช่วยฉันที่นี่ แต่พวกเขาแสดงทิศทางที่ไม่อธิบายความแปรปรวนตามที่ฉันเข้าใจเช่น

otherPCA$loadings

Loadings:
         Comp.1 Comp.2 Comp.3 Comp.4
Murder                         0.995
Assault  -0.995                     
UrbanPop        -0.977 -0.201       
Rape            -0.201  0.974   

2
โปรดทราบว่าสัญญาณของการโหลดเป็นไปโดยพลการ ตัวแปรอาชญากรรมทั้งสามนั้นมีความสัมพันธ์เชิงบวกกับกัน แต่คุณจะฉลาดในการทำงานนั้นจากสัญญาณของการโหลดด้านบน
Nick Cox

น่าเสียดายที่ฉันเชื่อว่าคำตอบที่ยอมรับสำหรับคำถามนี้ไม่ถูกต้อง ฉันโพสต์คำตอบของฉันเองด้านล่าง
อะมีบาพูดว่า Reinstate Monica

คำตอบ:


11

คุณพูดถูกการโหลดสามารถช่วยคุณได้ที่นี่ สามารถใช้เพื่อคำนวณความสัมพันธ์ระหว่างตัวแปรและองค์ประกอบหลัก ยิ่งกว่านั้นผลรวมของการโหลดยกกำลังสองของหนึ่งตัวแปรเหนือส่วนประกอบหลักทั้งหมดเท่ากับ 1 ดังนั้นการโหลดยกกำลังสองจะบอกสัดส่วนของความแปรปรวนของตัวแปรหนึ่งที่อธิบายโดยองค์ประกอบหลักหนึ่งตัว

ปัญหาของ princomp คือมันแสดงให้เห็นถึงการโหลด "สูงมาก" เท่านั้น แต่เนื่องจากการโหลดเป็นเพียง eigenvector ของเมทริกซ์ความแปรปรวนร่วมจึงสามารถรับการโหลดทั้งหมดโดยใช้eigenคำสั่งใน R:

 loadings <- eigen(cov(USArrests))$vectors
 explvar <- loadings^2

explvarตอนนี้คุณมีข้อมูลที่ต้องการในเมทริกซ์


ขอบคุณผู้ชายที่สุ่มคุณอาจแสดงตัวอย่างให้ฉันassaultหรือurban popเราสามารถทำสิ่งนี้ได้? สับสนบางส่วนเนื่องจากมีเพียงหนึ่งสหสัมพันธ์ในเมทริกซ์สำหรับassault
1320502

1
ขออภัยฉันปรับปรุงคำตอบของฉันและไม่ได้สังเกตเห็นว่าคุณแสดงความคิดเห็นโพสต์ของฉันแล้ว โหลดการโจมตีด้วย -0.995 บน PC1 ดังนั้นเราสามารถสรุปได้หลังจากยกกำลังสองค่านี้ PC1 อธิบาย 99% ของความแปรปรวนของตัวแปรโจมตี หลังจากยกกำลังสองของค่าป๊อปในเมืองคุณสามารถสรุป PC3 อธิบาย 4% และ PC2 95.5% ของความแปรปรวนของ Urban Pop
random_guy

1
OP ไม่ถามว่า PCA สามารถประกอบกับตัวแปรได้เท่าใด คำตอบของคุณเกี่ยวกับตัวแปรที่สามารถอธิบายได้โดย CPA
Heisenberg

2
กลับไปที่คำถามนี้ฉันคิดว่าคำตอบนี้ผิด พิจารณาตัวแปร 10 ตัวที่มีความสัมพันธ์สูง (99%) ซึ่งมีความสัมพันธ์ระหว่างกันและถูกปรับสัดส่วนให้เป็นความแปรปรวนของหน่วย พีซีเครื่องแรกโดยทั่วไปจะเป็นค่าเฉลี่ยระหว่างพวกเขา ดังนั้นวิคเตอร์แรกจะเป็นที่มีความยาวและ eigenvalue แรกคือเกือบพูด9.9ตอนนี้ตัวแปรแต่ละตัวนั้นเกือบจะอธิบายอย่างสมบูรณ์โดยพีซีเครื่องแรก และพีซีเครื่องแรกนั้นเกือบจะอธิบายอย่างสมบูรณ์โดยตัวแปรแต่ละตัว แต่วิธีการที่คุณจะสรุปอย่างใดอย่างหนึ่งหรืออีกจากองค์ประกอบ Squared ของซึ่งมีทั้งหมด ? w=(0.3,0.3,...0.3)1109.9w0.1
อะมีบาพูดว่า Reinstate Monica

2
ขออภัยที่จะยืนยัน แต่คุณคิดว่าฉันผิดในความคิดเห็นของฉันข้างต้น? ถ้าไม่เช่นนั้นคุณสามารถแก้ไขคำตอบเพื่อลบความสับสนที่อาจเกิดขึ้นได้ซึ่งจะเป็นประโยชน์อย่างมากสำหรับผู้อ่านในอนาคต ฉันเพิ่งโพสต์คำตอบด้วยตนเองพยายามอธิบายปัญหาเหล่านี้อย่างละเอียด
อะมีบาพูดว่า Reinstate Monica

9

ฉันคิดว่าคำตอบที่ยอมรับอาจทำให้เข้าใจผิดอย่างอันตราย (-1) มีอย่างน้อยสี่คำถามที่แตกต่างกันรวมกันใน OP ฉันจะพิจารณาพวกเขาทีละคน


  • ไตรมาสที่ 1 ความแปรปรวนของพีซีที่ระบุมีการอธิบายโดยตัวแปรดั้งเดิมที่ให้มาเท่าใด พีซีที่ให้มามีการอธิบายความแปรปรวนของเท่าใด

ทั้งสองคำถามเทียบเท่าและคำตอบที่จะได้รับจากตารางของค่าสัมประสิทธิ์สหสัมพันธ์ระหว่างตัวแปรและพีซี หาก PCA จะทำบนความสัมพันธ์แล้วค่าสัมประสิทธิ์สหสัมพันธ์จะได้รับ ( ดูที่นี่ ) โดยองค์ประกอบที่สอดคล้องกันของแรง พีซีเกี่ยวข้องกับ eigenvectorของเมทริกซ์สหสัมพันธ์และ eigenvalueเกี่ยวข้อง แรงเวกเตอร์จะได้รับจากV_i องค์ประกอบมันเป็นความสัมพันธ์ของพีซีนี้กับตัวแปรดั้งเดิมที่เกี่ยวข้องr2riVisiLiLi=(si)1/2Vi

โปรดทราบว่า eigenvectorsและการโหลดเป็นสองสิ่งที่แตกต่างกัน! ใน R, eigenvectors ถูกเรียกอย่างสับสนว่า "การบรรทุก"; หนึ่งควรระวัง: องค์ประกอบของพวกเขาไม่ได้เป็นสหสัมพันธ์ที่ต้องการ [คำตอบที่ได้รับการยอมรับในหัวข้อนี้ทำให้สับสนทั้งสอง]ViLi

นอกจากนี้หากทำ PCA กับ covariances (และไม่เกี่ยวข้องกับ correlations) การโหลดจะทำให้คุณมี covariances ไม่ใช่ correlations ในการรับความสัมพันธ์เราจำเป็นต้องคำนวณด้วยตนเองตามด้วย PCA [คำตอบที่ยอมรับในปัจจุบันยังไม่ชัดเจนเกี่ยวกับเรื่องนั้น]

  • ไตรมาสที่ 2 ความแปรปรวนของตัวแปรดั้งเดิมที่ระบุมีการอธิบายไว้อย่างไรโดยชุดย่อยของพีซี วิธีการเลือกชุดย่อยนี้เพื่ออธิบายเช่นของความแปรปรวน?80%

เพราะเครื่องคอมพิวเตอร์เป็นมุมฉาก (เช่น uncorrelated) หนึ่งก็สามารถเพิ่มขึ้นแต่ละค่า (ดูไตรมาสที่ 1) เพื่อให้ได้ทั่วโลกคุ้มค่าr2R2

ในการเลือกชุดย่อยหนึ่งสามารถเพิ่มพีซีที่มีความสัมพันธ์สูงสุด ( ) พร้อมกับตัวแปรดั้งเดิมที่กำหนดจนกว่าจะถึงจำนวนความแปรปรวนที่อธิบาย ( ) ที่ต้องการr2R2

  • ไตรมาสที่ 3 ความแตกต่างของพีซีที่ระบุมีการอธิบายโดยชุดย่อยของตัวแปรดั้งเดิมเท่าใด? วิธีการเลือกชุดย่อยนี้เพื่ออธิบายเช่นของความแปรปรวน?80%

PCA ไม่ได้รับคำตอบสำหรับคำถามนี้โดยอัตโนมัติ! เช่นถ้าตัวแปรเดิมทั้งหมดจะรุนแรงมากระหว่างความสัมพันธ์กับคู่แล้วความสัมพันธ์ระหว่างเครื่องคอมพิวเตอร์เป็นครั้งแรกและตัวแปรทั้งหมดจะอยู่ที่ประมาณrหนึ่งไม่สามารถเพิ่มเหล่านี้หมายเลขในการคำนวณสัดส่วนของความแปรปรวนของเครื่องคอมพิวเตอร์นี้อธิบายได้ด้วยการพูด, ห้าตัวแปรเดิม (ซึ่งจะส่งผลให้ไร้สาระผล ) แต่หนึ่งจะต้องถอยหลังพีซีนี้บนตัวแปรเหล่านี้และได้รับหลายคุ้มค่าr = 0.9 r 2 R 2 = 0.9 0.9 5 > 1 R 2r=0.9r=0.9r2R2=0.90.95>1R2

วิธีเลือกชุดย่อยที่อธิบายจำนวนความแปรปรวนตามที่กำหนดถูกแนะนำโดย @FrankHarrell (+1)


+1 นี่ควรเป็นคำตอบที่ยอมรับได้
ยืนยันเมื่อ

8

คุณสามารถเลือกตัวแปรขั้นตอนไปข้างหลังหรือไปข้างหน้าทำนายองค์ประกอบหรือการรวมกันเชิงเส้นของส่วนประกอบจากตัวแปรองค์ประกอบ จะเป็น 1.0 ที่ขั้นตอนแรกถ้าคุณใช้ย้อนกลับ stepdown แม้ว่าการถดถอยแบบขั้นตอนนั้นค่อนข้างจะเป็นหายนะเมื่อทำนายมันสามารถทำงานได้ดีเมื่อการคาดการณ์เป็นกลไกเช่นในกรณีนี้ คุณสามารถเพิ่มหรือลบตัวแปรได้จนกว่าคุณจะอธิบายข้อมูล 0.8 หรือ 0.9 (ตัวอย่าง) ในส่วนประกอบหลัก YR2Y


6

ข้อมูลการจับกุมของสหรัฐพร้อมกับ R เป็นเพียงตัวอย่างที่นี่ แต่ผมทราบว่าการคำนวณภาระในคำถามที่มาจาก PCA ของที่เมทริกซ์ความแปรปรวน นั่นคือที่ใดที่หนึ่งระหว่างกฎเกณฑ์และไร้สาระเนื่องจากตัวแปรวัดในระดับที่แตกต่างกัน

ประชากรในเมืองดูเหมือนว่าร้อยละ แคลิฟอร์เนียเป็น 91% และสูงสุด

ตัวแปรอาชญากรรมทั้งสามนั้นดูเหมือนจะเป็นจำนวนการจับกุมสำหรับอาชญากรรมที่แสดงถึงขนาดของประชากร (น่าจะเป็นช่วงระยะเวลาหนึ่ง) สันนิษฐานว่าเป็นเอกสารที่ไม่ว่าจะมีการจับกุมต่อ 1,000 หรือ 10,000 หรืออะไรก็ตาม

ค่าเฉลี่ยของตัวแปรจู่โจมในหน่วยที่กำหนดคือประมาณ 171 และค่าเฉลี่ยการสังหารอยู่ที่ประมาณ 8 ดังนั้นคำอธิบายของการโหลดของคุณคือส่วนใหญ่รูปแบบเป็นสิ่งประดิษฐ์: ขึ้นอยู่กับตัวแปรที่แตกต่างกันมาก

ดังนั้นแม้ว่าจะมีความรู้สึกในข้อมูลที่ว่ามีการจับกุมอีกหลายครั้งสำหรับการถูกทำร้ายร่างกายมากกว่าการฆาตกรรม ฯลฯ ความจริงที่รู้ (หรือไม่น่าแปลกใจ) ที่เป็นที่รู้จักนั้นครอบงำการวิเคราะห์

สิ่งนี้แสดงให้เห็นว่าคุณต้องคิดเกี่ยวกับสิ่งที่คุณทำใน PCA

หากคุณทำสิ่งนี้เพิ่มเติม:

  1. ฉันขอยืนยันว่าเปอร์เซ็นต์ในเมืองดีกว่าจากการวิเคราะห์ มันไม่ใช่อาชญากรรมที่ต้องเป็นคนในเมือง แน่นอนมันอาจใช้พร็อกซีสำหรับตัวแปรที่มีอิทธิพลต่ออาชญากรรม

  2. PCA ที่ใช้เมทริกซ์สหสัมพันธ์จะทำให้เข้าใจได้ง่ายขึ้นในมุมมองของฉัน ความเป็นไปได้อีกอย่างคือการทำงานกับลอการิทึมของอัตราการจับกุมไม่ใช่อัตราการจับกุม (ค่าทั้งหมดเป็นค่าบวก; ดูด้านล่าง)

หมายเหตุ: คำตอบ @ random_guy ของจงใจใช้เมทริกซ์ความแปรปรวนร่วม

นี่คือสถิติสรุปบางส่วน ฉันใช้ Stata แต่มันก็ไม่สำคัญ

    Variable |       Obs        Mean    Std. Dev.       Min        Max
-------------+--------------------------------------------------------
   urban_pop |        50       65.54    14.47476         32         91
      murder |        50       7.788     4.35551         .8       17.4
        rape |        50      21.232    9.366384        7.3         46
     assault |        50      170.76    83.33766         45        337
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.