uv
maxcov(Xu,Yv).(1)
Ycov(Xu,y)≡Var(Xu)1/2×cor(Xu,y)×Var(y)1/2,st.∥u∥=1.
ตั้งแต่ไม่ขึ้นอยู่กับเราจะต้องเพิ่มy) ลองมาดูกันว่าข้อมูลมีมาตรฐานที่ไหนบ้าง (เริ่มแรกฉันทำผิดพลาดในการปรับขนาดชุดค่าผสมเชิงเส้นของคุณแทนที่จะเป็นและแยกต่างหาก!) ดังนั้น ; แต่และขึ้นอยู่กับยูโดยสรุปแล้วการ
เพิ่มความสัมพันธ์ระหว่างส่วนประกอบแฝงกับตัวแปรตอบกลับจะไม่ให้ผลลัพธ์ที่เหมือนกันVar(y)uVar(Xu)1/2×cor(Xu,y)X=[x_1;x_2]
x1x2Var(x1)=Var(x2)=1Var(Xu)≠1u.
ฉันควรขอบคุณArthur Tenenhausที่ชี้ให้ฉันไปในทิศทางที่ถูกต้อง
การใช้เวกเตอร์น้ำหนักหน่วยไม่ จำกัด และบางแพคเกจ ( pls. regression
ในplsgenomicsตามรหัสจากแพคเกจก่อนหน้าของ Wehrens pls.pcr
) จะส่งคืนน้ำหนักเวกเตอร์ที่ไม่ได้มาตรฐาน (แต่ด้วยส่วนประกอบแฝงยังคงเป็นบรรทัดฐาน 1) หากมีการร้องขอ แต่แพ็คเกจส่วนใหญ่ของ PLS จะส่งคืนมาตรฐานของรวมถึงแพ็คเกจที่คุณใช้โดยเฉพาะอย่างยิ่งแพ็คเกจที่ใช้ SIMPLS หรืออัลกอริทึม NIPALS ฉันพบภาพรวมที่ดีของทั้งสองวิธีในการนำเสนอของ Barry M. Wise คุณสมบัติของการถดถอยบางส่วนน้อยที่สุด (PLS) และความแตกต่างระหว่างอัลกอริทึมแต่เคมีuบทความสั้นเสนอการสนทนาที่ดีเช่นกัน (หน้า 26-29) ความสำคัญอย่างยิ่งเช่นกันคือความจริงที่ว่ากิจวัตร PLS ส่วนใหญ่ (อย่างน้อยที่ฉันรู้ใน R) สมมติว่าคุณให้ตัวแปรที่ไม่ได้มาตรฐานเนื่องจากการจัดกึ่งกลางและ / หรือการปรับเป็นการจัดการภายใน (สิ่งนี้สำคัญอย่างยิ่งเมื่อทำการตรวจสอบข้าม )
เมื่อพิจารณาถึงข้อ จำกัดเวกเตอร์พบว่าเป็นu′u=1u
u=X′y∥X′y∥.
ด้วยการจำลองเพียงเล็กน้อยก็สามารถรับได้ดังนี้:
set.seed(101)
X <- replicate(2, rnorm(100))
y <- 0.6*X[,1] + 0.7*X[,2] + rnorm(100)
X <- apply(X, 2, scale)
y <- scale(y)
# NIPALS (PLS1)
u <- crossprod(X, y)
u <- u/drop(sqrt(crossprod(u))) # X weights
t <- X%*%u
p <- crossprod(X, t)/drop(crossprod(t)) # X loadings
คุณสามารถเปรียบเทียบผลลัพธ์ข้างต้น ( u=[0.5792043;0.8151824]
โดยเฉพาะ) กับแพ็คเกจ R ที่จะให้ ตัวอย่างเช่นการใช้ NIPALS จากแพ็คเกจchemometrics (การใช้งานอีกอย่างที่ฉันรู้ว่ามีอยู่ในแพ็คเกจmixOmics ) เราจะได้รับ:
library(chemometrics)
pls1_nipals(X, y, 1)$W # X weights [0.5792043;0.8151824]
pls1_nipals(X, y, 1)$P # X loadings
ผลลัพธ์ที่คล้ายกันจะได้รับพร้อมกับplsr
อัลกอริทึม PLS เคอร์เนลเริ่มต้น:
> library(pls)
> as.numeric(loading.weights(plsr(y ~ X, ncomp=1)))
[1] 0.5792043 0.8151824
ในทุกกรณีเราสามารถตรวจสอบว่ามีความยาว 1u
ให้คุณเปลี่ยนฟังก์ชั่นของคุณเพื่อปรับให้เหมาะกับการอ่าน
f <- function(u) cov(y, X%*%(u/sqrt(crossprod(u))))
และทำให้ปกติu
หลังจากนั้น ( u <- u/sqrt(crossprod(u))
) คุณควรเข้าใกล้โซลูชันข้างต้น
Sidenote : เนื่องจากเกณฑ์ (1) เทียบเท่ากับ
จะพบว่าเวกเตอร์เอกพจน์ด้านซ้ายจาก SVD ของสอดคล้องกับค่าลักษณะเฉพาะที่ใหญ่ที่สุด:
maxu′X′Yv,
uX′Y
svd(crossprod(X, y))$u
ในกรณีทั่วไปมากขึ้น (PLS2) วิธีการสรุปข้างต้นคือการกล่าวว่าเวกเตอร์ที่เป็นที่ยอมรับของ PLS แรกนั้นเป็นการประมาณที่ดีที่สุดของเมทริกซ์ความแปรปรวนร่วมของ X และ Y ในทั้งสองทิศทาง
อ้างอิง
- Tenenhaus, M (1999) L'approche PLS Revue de Statistique Appliquée , 47 (2), 5-40
- ter Braak, CJF และ de Jong, S (1993) ฟังก์ชั่นบางส่วนวัตถุประสงค์ของการถดถอยน้อยสี่เหลี่ยม วารสารเคมี, 12, 41–54
- Abdi, H (2010) บางส่วนอย่างน้อยสี่เหลี่ยมถดถอยและประมาณการเกี่ยวกับการถดถอยโครงสร้างแฝง (PLS ถดถอย) ความคิดเห็นแบบสหวิทยาการไวลีย์: สถิติการคำนวณ , 2, 97-106
- Boulesteix, AL และ Strimmer, K (2007) กำลังสองน้อยที่สุดบางส่วน: เครื่องมืออเนกประสงค์สำหรับการวิเคราะห์ข้อมูลจีโนมมิติสูง การบรรยายสรุปในชีวสารสนเทศศาสตร์ , 8 (1), 32-44
pls
แพ็คเกจและการถดถอย PLS ในกระดาษ JSSนี้