ดังที่ @amoeba กล่าวไว้ในความคิดเห็น PCA จะดูข้อมูลเพียงชุดเดียวและจะแสดงรูปแบบการแปรผัน (เชิงเส้น) ที่สำคัญของตัวแปรเหล่านั้นความสัมพันธ์หรือความแปรปรวนร่วมระหว่างตัวแปรเหล่านั้นและความสัมพันธ์ระหว่างตัวอย่าง (แถว ) ในชุดข้อมูลของคุณ
สิ่งหนึ่งที่ปกติทำกับชุดข้อมูลสปีชีส์และชุดของตัวแปรอธิบายที่เป็นไปได้คือให้เหมาะสมกับการบวช ใน PCA ส่วนประกอบหลักคือแกนบน PCA biplot นั้นได้มาจากการรวมกันเชิงเส้นที่เหมาะสมที่สุดของตัวแปรทั้งหมด หากคุณทำสิ่งนี้บนชุดข้อมูลของเคมีของดินที่มีตัวแปร pH, , TotalCarbon คุณอาจพบว่าองค์ประกอบแรกคือCa2+
0.5×pH+1.4×Ca2++0.1×TotalCarbon
และองค์ประกอบที่สอง
2.7×pH+0.3×Ca2+−5.6×TotalCarbon
ส่วนประกอบเหล่านี้สามารถเลือกได้อย่างอิสระจากตัวแปรที่วัดได้และสิ่งที่ได้รับเลือกคือสิ่งที่อธิบายความผันแปรจำนวนมากที่สุดในชุดข้อมูลและชุดค่าผสมเชิงเส้นแต่ละชุดเป็นแบบฉาก (ไม่มีส่วนเกี่ยวข้อง)
ในการกำหนดที่ จำกัด เรามีชุดข้อมูลสองชุด แต่เราไม่สามารถเลือกชุดค่าผสมเชิงเส้นของชุดข้อมูลชุดแรก (ข้อมูลชุดดินเคมีด้านบน) ที่เราต้องการ แต่เราต้องเลือกชุดค่าผสมเชิงเส้นของตัวแปรในชุดข้อมูลที่สองซึ่งอธิบายการเปลี่ยนแปลงได้ดีที่สุดในชุดแรก นอกจากนี้ในกรณีของ PCA ชุดข้อมูลเดียวคือเมทริกซ์การตอบสนองและไม่มีตัวทำนาย (คุณสามารถนึกถึงการตอบสนองเป็นการทำนายตัวเอง) ในกรณีที่มีข้อ จำกัด เรามีชุดข้อมูลการตอบกลับซึ่งเราต้องการอธิบายด้วยชุดของตัวแปรอธิบาย
แม้ว่าคุณจะยังไม่ได้อธิบายว่าตัวแปรใดเป็นคำตอบ แต่โดยปกติแล้วเราต้องการอธิบายความแปรปรวนของความอุดมสมบูรณ์หรือองค์ประกอบของสปีชีส์เหล่านั้น (เช่นคำตอบ) โดยใช้ตัวแปรอธิบายสิ่งแวดล้อม
PCA รุ่นที่มีข้อ จำกัด คือสิ่งที่เรียกว่าการวิเคราะห์ความซ้ำซ้อน (RDA) ในแวดวงนิเวศวิทยา สิ่งนี้ถือว่าเป็นโมเดลการตอบสนองเชิงเส้นพื้นฐานสำหรับสปีชีส์ซึ่งไม่เหมาะสมหรือเหมาะสมเฉพาะในกรณีที่คุณมีการไล่ระดับสีสั้น ๆ ตามสปีชีส์ที่ตอบสนอง
PCA ทางเลือกคือสิ่งที่เรียกว่าการวิเคราะห์การติดต่อ (CA) นี่เป็นข้อ จำกัด แต่มันก็มีต้นแบบการตอบสนองแบบ unimodal ซึ่งค่อนข้างสมจริงมากกว่าในแง่ของการตอบสนองของเผ่าพันธุ์ในการไล่ระดับสีที่ยาวขึ้น โปรดทราบว่าแบบจำลอง CA นั้นมีความอุดมสมบูรณ์หรือองค์ประกอบที่เกี่ยวข้องกัน PCA เป็นตัวจำลองความสมบูรณ์แบบดิบ
มีรุ่นที่มีข้อ จำกัด ของ CA หรือที่เรียกว่าการวิเคราะห์การติดต่อแบบบังคับหรือแบบบัญญัติ (CCA) - เพื่อไม่ให้สับสนกับแบบจำลองทางสถิติที่เป็นทางการมากขึ้นที่รู้จักกันในชื่อการวิเคราะห์ความสัมพันธ์แบบบัญญัติ
ทั้งใน RDA และ CCA จุดมุ่งหมายคือการสร้างแบบจำลองการเปลี่ยนแปลงในความอุดมสมบูรณ์ของสายพันธุ์หรือองค์ประกอบเป็นชุดของการรวมกันเชิงเส้นของตัวแปรอธิบาย
จากคำอธิบายดูเหมือนว่าภรรยาของคุณต้องการที่จะอธิบายการเปลี่ยนแปลงในองค์ประกอบสายพันธุ์กิ้งกือ (หรือความอุดมสมบูรณ์) ในแง่ของตัวแปรอื่น ๆ ที่วัดได้
คำเตือนบางคำ; RDA และ CCA เป็นถดถอยหลายตัวแปร; CCA เป็นเพียงการถดถอยหลายตัวแปรแบบถ่วงน้ำหนัก สิ่งที่คุณได้เรียนรู้เกี่ยวกับการถดถอยใช้และมี gotchas อื่น ๆ อีกสองสาม:
- เมื่อคุณเพิ่มจำนวนของตัวแปรอธิบายข้อ จำกัด จริง ๆ แล้วจะน้อยลงเรื่อย ๆ และคุณไม่ได้แยกส่วนประกอบ / แกนที่อธิบายองค์ประกอบสปีชีส์อย่างเหมาะสมที่สุดและ
- ด้วย CCA ในขณะที่คุณเพิ่มจำนวนปัจจัยอธิบายคุณมีความเสี่ยงที่จะทำให้เกิดการโค้งของสิ่งประดิษฐ์ในการกำหนดค่าจุดในพล็อต CCA
- ทฤษฎีพื้นฐานของ RDA และ CCA นั้นพัฒนาน้อยกว่าวิธีการทางสถิติที่เป็นทางการมากกว่า เราสามารถเลือกได้ว่าจะให้ตัวแปรอธิบายใดที่จะใช้การเลือกทีละขั้นตอน (ซึ่งไม่เหมาะสำหรับเหตุผลทั้งหมดที่เราไม่ชอบเป็นวิธีการเลือกในการถดถอย) และเราต้องใช้การทดสอบการเปลี่ยนรูปเพื่อทำเช่นนั้น
ดังนั้นคำแนะนำของฉันก็เหมือนกับการถดถอย คิดล่วงหน้าว่าสมมติฐานของคุณคืออะไรและรวมตัวแปรที่สะท้อนถึงสมมติฐานเหล่านั้น อย่าเพิ่งโยนตัวแปรอธิบายทั้งหมดลงในส่วนผสม
ตัวอย่าง
บวชไม่มีข้อ จำกัด
PCA
ฉันจะแสดงตัวอย่างการเปรียบเทียบ PCA, CA และ CCA โดยใช้แพคเกจวีแก้นสำหรับ R ที่ฉันช่วยบำรุงรักษาและที่ออกแบบมาเพื่อให้เหมาะกับวิธีการบวชเหล่านี้:
library("vegan") # load the package
data(varespec) # load example data
## PCA
pcfit <- rda(varespec)
## could add `scale = TRUE` if variables in different units
pcfit
> pcfit
Call: rda(X = varespec)
Inertia Rank
Total 1826
Unconstrained 1826 23
Inertia is variance
Eigenvalues for unconstrained axes:
PC1 PC2 PC3 PC4 PC5 PC6 PC7 PC8
983.0 464.3 132.3 73.9 48.4 37.0 25.7 19.7
(Showed only 8 of all 23 unconstrained eigenvalues)
วีแก้นไม่ได้สร้างมาตรฐานความเฉื่อยซึ่งแตกต่างจาก Canoco ดังนั้นความแปรปรวนทั้งหมดคือ 1826 และค่าลักษณะเฉพาะอยู่ในหน่วยเดียวกันและรวมเป็น 1826
> cumsum(eigenvals(pcfit))
PC1 PC2 PC3 PC4 PC5 PC6 PC7 PC8
982.9788 1447.2829 1579.5334 1653.4670 1701.8853 1738.8947 1764.6209 1784.3265
PC9 PC10 PC11 PC12 PC13 PC14 PC15 PC16
1796.6007 1807.0361 1816.3869 1819.1853 1821.5128 1822.9045 1824.1103 1824.9250
PC17 PC18 PC19 PC20 PC21 PC22 PC23
1825.2563 1825.4429 1825.5495 1825.6131 1825.6383 1825.6548 1825.6594
เรายังเห็นว่าค่าไอเกนแรกนั้นประมาณครึ่งหนึ่งของความแปรปรวนและด้วยสองแกนแรกเราได้อธิบาย ~ 80% ของความแปรปรวนทั้งหมด
> head(cumsum(eigenvals(pcfit)) / pcfit$tot.chi)
PC1 PC2 PC3 PC4 PC5 PC6
0.5384240 0.7927453 0.8651851 0.9056821 0.9322031 0.9524749
biplot สามารถดึงออกมาจากคะแนนของตัวอย่างและสปีชีส์ในสององค์ประกอบหลักแรก
> plot(pcfit)
มีสองประเด็นที่นี่
- การบรรพชานั้นมีสามสายพันธุ์ - สปีชีส์เหล่านี้อยู่ไกลจากแหล่งกำเนิดมากที่สุด - เนื่องจากเป็นอนุกรมวิธานที่สมบูรณ์ที่สุดในชุดข้อมูล
- มีส่วนโค้งที่แข็งแกร่งของเส้นโค้งในการอุปสมบทซึ่งเป็นการชี้นำของการไล่ระดับสีเดี่ยวหรือยาวที่โดดเด่นซึ่งแบ่งออกเป็นสององค์ประกอบหลักหลักเพื่อรักษาคุณสมบัติของตัวชี้วัด
CA
CA อาจช่วยในประเด็นทั้งสองนี้เนื่องจากสามารถจัดการกับการไล่ระดับสีที่ยาวกว่าได้ดีกว่าเนื่องจากรูปแบบการตอบสนองแบบ unimodal และเป็นแบบจำลององค์ประกอบที่สัมพันธ์กันของสปีชีส์ที่ไม่ได้อุดมสมบูรณ์
รหัสมังสวิรัติ / Rที่ทำเช่นนี้คล้ายกับรหัส PCA ที่ใช้ด้านบน
cafit <- cca(varespec)
cafit
> cafit <- cca(varespec)
> cafit
Call: cca(X = varespec)
Inertia Rank
Total 2.083
Unconstrained 2.083 23
Inertia is mean squared contingency coefficient
Eigenvalues for unconstrained axes:
CA1 CA2 CA3 CA4 CA5 CA6 CA7 CA8
0.5249 0.3568 0.2344 0.1955 0.1776 0.1216 0.1155 0.0889
(Showed only 8 of all 23 unconstrained eigenvalues)
ที่นี่เราอธิบายประมาณ 40% ของการเปลี่ยนแปลงระหว่างไซต์ต่างๆในองค์ประกอบที่สัมพันธ์กัน
> head(cumsum(eigenvals(cafit)) / cafit$tot.chi)
CA1 CA2 CA3 CA4 CA5 CA6
0.2519837 0.4232578 0.5357951 0.6296236 0.7148866 0.7732393
พล็อตร่วมของสายพันธุ์และคะแนนเว็บไซต์ตอนนี้ครอบงำน้อยกว่าไม่กี่ชนิด
> plot(cafit)
PCA หรือ CA ที่คุณเลือกควรพิจารณาจากคำถามที่คุณต้องการถามข้อมูล โดยปกติแล้วกับข้อมูลสปีชีส์เรามักจะสนใจในความแตกต่างของชุดสปีชีส์ดังนั้น CA จึงเป็นตัวเลือกยอดนิยม ถ้าเรามีชุดข้อมูลของตัวแปรด้านสิ่งแวดล้อมกล่าวว่าน้ำหรือทางเคมีของดินเราจะไม่คาดหวังเหล่านั้นเพื่อตอบสนองในลักษณะรูปแบบเดียวพร้อมการไล่ระดับสีเพื่อ CA จะไม่เหมาะสมและ PCA (ของเมทริกซ์ความสัมพันธ์โดยใช้scale = TRUE
ในrda()
การโทร) จะเป็น เหมาะสมกว่า
บวช จำกัด ; มะเร็งท่อน้ำดี
ตอนนี้ถ้าเรามีข้อมูลชุดที่สองซึ่งเราต้องการใช้เพื่ออธิบายรูปแบบในชุดข้อมูลสปีชีส์แรกเราต้องใช้การกำหนดแบบ จำกัด บ่อยครั้งที่ตัวเลือกที่นี่คือ CCA แต่ RDA เป็นทางเลือกเช่นเดียวกับ RDA หลังจากการเปลี่ยนแปลงของข้อมูลเพื่อให้สามารถจัดการกับข้อมูลสปีชีส์ได้ดีขึ้น
data(varechem) # load explanatory example data
เราใช้cca()
ฟังก์ชันอีกครั้งแต่เราจัดหาเฟรมข้อมูลสองชุด ( X
สำหรับสปีชีส์และY
สำหรับตัวแปรอธิบาย / ตัวทำนาย) หรือสูตรโมเดลที่แสดงรายการรูปแบบของโมเดลที่เราต้องการให้พอดี
หากต้องการรวมตัวแปรทั้งหมดที่เราสามารถใช้varechem ~ ., data = varechem
เป็นสูตรเพื่อรวมตัวแปรทั้งหมด - แต่อย่างที่ฉันได้กล่าวไว้ข้างต้นนี่ไม่ใช่ความคิดที่ดีโดยทั่วไป
ccafit <- cca(varespec ~ ., data = varechem)
> ccafit
Call: cca(formula = varespec ~ N + P + K + Ca + Mg + S + Al + Fe + Mn +
Zn + Mo + Baresoil + Humdepth + pH, data = varechem)
Inertia Proportion Rank
Total 2.0832 1.0000
Constrained 1.4415 0.6920 14
Unconstrained 0.6417 0.3080 9
Inertia is mean squared contingency coefficient
Eigenvalues for constrained axes:
CCA1 CCA2 CCA3 CCA4 CCA5 CCA6 CCA7 CCA8 CCA9 CCA10 CCA11
0.4389 0.2918 0.1628 0.1421 0.1180 0.0890 0.0703 0.0584 0.0311 0.0133 0.0084
CCA12 CCA13 CCA14
0.0065 0.0062 0.0047
Eigenvalues for unconstrained axes:
CA1 CA2 CA3 CA4 CA5 CA6 CA7 CA8 CA9
0.19776 0.14193 0.10117 0.07079 0.05330 0.03330 0.01887 0.01510 0.00949
triplot ของการบวชข้างต้นผลิตโดยใช้plot()
วิธีการ
> plot(ccafit)
แน่นอนตอนนี้งานคือการหาว่าตัวแปรใดที่สำคัญจริง ๆ โปรดทราบว่าเราได้อธิบายเกี่ยวกับความแปรปรวนของสปีชีส์ประมาณ 2/3 โดยใช้เพียง 13 ตัวแปร หนึ่งในปัญหาของการใช้ตัวแปรทั้งหมดในการอุปสมบทนี้คือเราได้สร้างการกำหนดค่าแบบโค้งในตัวอย่างและคะแนนสปีชีส์ซึ่งล้วนเป็นสิ่งประดิษฐ์ที่ใช้ตัวแปรที่มีความสัมพันธ์มากเกินไป
หากคุณต้องการทราบข้อมูลเพิ่มเติมเกี่ยวกับเรื่องนี้โปรดดูเอกสารประกอบของมังสวิรัติหรือหนังสือดี ๆ เกี่ยวกับการวิเคราะห์ข้อมูลเชิงนิเวศหลายตัวแปร
ความสัมพันธ์กับการถดถอย
มันง่ายที่สุดในการแสดงลิงก์กับ RDA แต่ CCA นั้นเหมือนกันยกเว้นทุกอย่างเกี่ยวข้องกับผลรวมของแถวและคอลัมน์แบบสองทางตารางเป็นน้ำหนัก
ที่เป็นหัวใจของมัน RDA นั้นเทียบเท่ากับการประยุกต์ใช้ PCA กับเมทริกซ์ของค่าติดตั้งจากการถดถอยเชิงเส้นแบบหลายเส้นที่พอดีกับค่าแต่ละชนิด (การตอบสนอง) (มากมายพูด) ด้วยการทำนายที่ได้จากเมทริกซ์ของตัวแปรอธิบาย
ใน R เราทำได้เช่นนี้
## centre the responses
spp <- scale(data.matrix(varespec), center = TRUE, scale = FALSE)
## ...and the predictors
env <- as.data.frame(scale(varechem, center = TRUE, scale = FALSE))
## fit a linear model to each column (species) in spp.
## Suppress intercept as we've centred everything
fit <- lm(spp ~ . - 1, data = env)
## Collect fitted values for each species and do a PCA of that
## matrix
pclmfit <- prcomp(fitted(fit))
ค่าลักษณะเฉพาะสำหรับสองแนวทางนี้มีค่าเท่ากัน:
> (eig1 <- unclass(unname(eigenvals(pclmfit)[1:14])))
[1] 820.1042107 399.2847431 102.5616781 47.6316940 26.8382218 24.0480875
[7] 19.0643756 10.1669954 4.4287860 2.2720357 1.5353257 0.9255277
[13] 0.7155102 0.3118612
> (eig2 <- unclass(unname(eigenvals(rdafit, constrained = TRUE))))
[1] 820.1042107 399.2847431 102.5616781 47.6316940 26.8382218 24.0480875
[7] 19.0643756 10.1669954 4.4287860 2.2720357 1.5353257 0.9255277
[13] 0.7155102 0.3118612
> all.equal(eig1, eig2)
[1] TRUE
ด้วยเหตุผลบางอย่างฉันไม่สามารถรับคะแนนแกน (การบรรจุ) เพื่อจับคู่ แต่สิ่งเหล่านี้จะถูกปรับขนาด (หรือไม่) ดังนั้นฉันจึงต้องดูว่าสิ่งเหล่านี้ทำที่นี่ได้อย่างไร
เราไม่ได้ทำ RDA ผ่านrda()
อย่างที่ฉันได้พบกับlm()
ฯลฯ แต่เราใช้การย่อยสลาย QR สำหรับส่วนเชิงเส้นและจากนั้น SVD สำหรับส่วน PCA แต่ขั้นตอนสำคัญนั้นเหมือนกัน