เหตุใดจึงมีการสลายตัว eigen และ svd ของเมทริกซ์ความแปรปรวนร่วมที่อิงจากข้อมูลที่กระจัดกระจายซึ่งให้ผลลัพธ์ที่แตกต่างกัน?


12

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

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

###Make complete and gappy data set
set.seed(1)
x <- 1:100
y <- 1:100
grd <- expand.grid(x=x, y=y)

#complete data
z <- matrix(runif(dim(grd)[1]), length(x), length(y))
image(x,y,z, col=rainbow(100))

#gappy data
zg <- replace(z, sample(seq(z), length(z)*0.5), NaN)
image(x,y,zg, col=rainbow(100))


###Covariance matrix decomposition
#complete data
C <- cov(z, use="pair")
E <- eigen(C)
S <- svd(C)

sum(E$values)
sum(S$d)
sum(diag(C))


#gappy data (50%)
Cg <- cov(zg, use="pair")
Eg <- eigen(Cg)
Sg <- svd(Cg)

sum(Eg$values)
sum(Sg$d)
sum(diag(Cg))



###Illustration of amplification of Lambda
set.seed(1)
frac <- seq(0,0.5,0.1)
E.lambda <- list()
S.lambda <- list()
for(i in seq(frac)){
    zi <- z
    NA.pos <- sample(seq(z), length(z)*frac[i])
    if(length(NA.pos) > 0){
        zi <- replace(z, NA.pos, NaN)
    }
    Ci <- cov(zi, use="pair")
    E.lambda[[i]] <- eigen(Ci)$values
	S.lambda[[i]] <- svd(Ci)$d
}


x11(width=10, height=5)
par(mfcol=c(1,2))
YLIM <- range(c(sapply(E.lambda, range), sapply(S.lambda, range)))

#eigen
for(i in seq(E.lambda)){
    if(i == 1) plot(E.lambda[[i]], t="n", ylim=YLIM, ylab="lambda", xlab="", main="Eigen Decomposition")
    lines(E.lambda[[i]], col=i, lty=1)
}
abline(h=0, col=8, lty=2)
legend("topright", legend=frac, lty=1, col=1:length(frac), title="fraction gaps")

    #svd
for(i in seq(S.lambda)){
    if(i == 1) plot(S.lambda[[i]], t="n", ylim=YLIM, ylab="lambda", xlab="", main="Singular Value Decomposition")
    lines(S.lambda[[i]], col=i, lty=1)
}
abline(h=0, col=8, lty=2)
legend("topright", legend=frac, lty=1, col=1:length(frac), title="fraction gaps")

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


ฉันขอโทษที่ไม่สามารถทำตามรหัสของคุณ (ไม่ทราบว่า R) แต่นี่เป็นแนวคิดหนึ่งหรือสองข้อ ค่าลักษณะเฉพาะเชิงลบสามารถปรากฏใน eigen-decomposition ของ cov เมทริกซ์หากข้อมูลดิบมีค่าที่ขาดหายไปจำนวนมากและข้อมูลนั้นถูกลบออกเป็นคู่เมื่อคำนวณ cov SVD ของเมทริกซ์ดังกล่าวจะรายงาน (ทำให้เข้าใจผิด) ค่าลักษณะเชิงลบเหล่านั้นเป็นค่าบวก รูปภาพของคุณแสดงให้เห็นว่าการย่อยสลาย eigen และ svd ทำงานในลักษณะเดียวกัน (หากไม่เหมือนกันทุกประการ) นอกจากนั้นความแตกต่างเพียงอย่างเดียวเกี่ยวกับค่าลบ
ttnphns

1
ป.ล. หวังว่าคุณจะเข้าใจฉัน: ผลรวมของค่าลักษณะเฉพาะต้องเท่ากับร่องรอย (ผลรวมในแนวทแยง) ของวัว มดลูก อย่างไรก็ตาม SVD เป็น "blind" ต่อข้อเท็จจริงที่ว่าค่าลักษณะเฉพาะบางอย่างอาจเป็นค่าลบ SVD ไม่ค่อยถูกนำมาใช้เพื่อย่อยสลายโคที่ไม่ใช่แกรมเมีย เมทริกซ์ก็มักจะใช้อย่างใดอย่างหนึ่งกับ gramian รู้เท่าทัน (semidefinite บวก) เมทริกซ์หรือข้อมูลดิบ
ttnphns

1
@ttnphns - ขอบคุณสำหรับความเข้าใจของคุณ ฉันเดาว่าฉันจะไม่เป็นห่วงเกี่ยวกับผลลัพธ์ที่ได้รับจากsvdถ้ามันไม่ได้สำหรับค่าลักษณะเฉพาะที่แตกต่างกัน ผลที่ได้คือให้ความสำคัญกับค่าลักษณะเฉพาะต่อท้ายมากกว่าที่ควร
Marc ในกล่อง

คำตอบ:


4

คุณต้องทำการหาผลรวมของค่าสัมบูรณ์ของค่าไอเกนเช่นผลรวม (abs (เช่นค่า $)) และเปรียบเทียบกับผลรวมของค่าเอกพจน์ พวกเขาจะเท่ากัน

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

หลักฐานการสนทนาของทฤษฎีบทที่สวยงามนี้ปรากฏในพีชคณิตของไฮเปอร์โบลด์แห่งการปฏิวัติ Javier F. Cabrera, พีชคณิตเชิงเส้นและการประยุกต์, Princeton University (ตอนนี้ที่ Rutgers)

อีกวิธีหนึ่งในการให้เหตุผลนี้คือความจริงที่ว่า sqrt (eigen (t (Cg)% *% Cg)) เท่ากับค่าเอกพจน์ของ Cg แต่เมื่อค่าลักษณะเฉพาะเป็นค่าลบข้อมูลจะต้องแสดงในรูปแบบของเฮอร์ทีเมียด้วยระนาบเชิงซ้อนที่นำมาพิจารณาซึ่งเป็นสิ่งที่พลาดในสูตรดั้งเดิมนั่นคือข้อมูลที่เกิดขึ้นจากสแควร์รูทแบบสมมาตรของเมทริกซ์ ค่าจะมีรายการที่ซับซ้อน


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

1
Marc ความแน่นอนเชิงบวกของเมทริกซ์สมมาตรที่แท้จริงเทียบเท่ากับการมีค่าลักษณะเฉพาะทั้งหมด ไม่มีความสัมพันธ์ใกล้ชิดกับ "gappy data" การทำความเข้าใจว่าหมายถึงเมทริกซ์กระจัดกระจายกับรายการศูนย์จำนวนมาก ท้ายที่สุดแล้วการกระจัดกระจายมากที่สุดในกลุ่มเมทริกซ์แบบไม่สมมาตร (สมมาตรหรือไม่นั้น) เป็นเส้นทแยงมุมซึ่งแสดงค่าลักษณะเฉพาะของพวกมันเป็นรายการ
whuber

@whuber - ขอบคุณสำหรับความคิดเห็นของคุณ ในกรณีนี้ฉันตีความ "ยินดี" แตกต่างกับ "กระจัดกระจาย" ซึ่งไม่ใช่ค่าเป็น NaNs และไม่ใช่ 0 (ศูนย์) ดังนั้นค่าความแปรปรวนร่วมจะถูกลดขนาดตามจำนวนของค่าทั่วไป (เช่นหารด้วย n-1) ในแง่นั้นฉันไม่เชื่อว่าเมทริกซ์ความแปรปรวนร่วมนั้นมีค่าศูนย์ใด ๆ
Marc ในกล่อง

1
การหาวิธีที่จะประเมินเมทริกซ์ความแปรปรวนร่วมจากข้อมูลที่หายไปนั้นเป็นสิ่งที่ท้าทาย: ฉันถามคำถามที่คล้ายกันมานานแล้วและได้รับคำตอบที่กระตุ้น
whuber

ฉันได้ถามคำถามเพิ่มเติมอย่างละเอียดเกี่ยวกับความสนใจของฉันในเรื่องการใช้งานการวิเคราะห์เชิงประจักษ์ฟังก์ชัน (EOF) ที่นี่: stats.stackexchange.com/questions/34832/ …
ทำเครื่องหมายในช่อง
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.