কেন বিভক্ত ডেটার উপর ভিত্তি করে কোভেরিয়েন্স ম্যাট্রিক্সের ইগেন এবং এসভিডি পচন বিভিন্ন ফলাফল পাচ্ছে?


12

আমি একটি স্পারস / গ্যাপি ডেটা সেটের উপর ভিত্তি করে কোভারিয়েন্স ম্যাট্রিক্সকে পচানোর চেষ্টা করছি। আমি লক্ষ করছি যে ল্যাম্বডা যোগফল (ব্যাখ্যা করা বৈকল্পিক) হিসাবে গণনা করা হয়েছে svd, ক্রমবর্ধমান gappy ডেটা দিয়ে প্রশস্ত করা হচ্ছে। ফাঁক ছাড়াই 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")

এখানে চিত্র বর্ণনা লিখুন


আমি আপনার কোড অনুসরণ করতে সক্ষম না হওয়ায় দুঃখিত (আর জানেন না), তবে এখানে এক বা দুটি ধারণা দেওয়া হয়েছে। নেতিবাচক ইগেনভ্যালুগুলি কোনও কোভের ইগেন-পচনতে উপস্থিত হতে পারে। ম্যাট্রিক্স যদি কাঁচা ডেটাতে অনেকগুলি অনুপস্থিত মান থাকে এবং সেগুলি কোভ গণনা করার সময় সেগুলি যুগলভাবে মুছে ফেলা হয়। এই জাতীয় ম্যাট্রিক্সের এসভিডি সেগুলি নেতিবাচক ইগ্যালভ্যালুগুলি ইতিবাচক হিসাবে রিপোর্ট করবে (বিভ্রান্তিকরভাবে)। আপনার ছবিগুলি দেখায় যে ইগেন এবং এসভিডি পচন উভয়ই একইভাবে আচরণ করে (ঠিক যদি একই না হয়) তবে এটি কেবল নেতিবাচক মানগুলির মধ্যে পার্থক্য।
ttnphns

1
পিএস আশা করি আপনি আমাকে বুঝতে পেরেছেন: ইগেনভ্যালুগুলির যোগফল অবশ্যই কোভের ট্রেস (তির্যক সমষ্টি) এর সমান। ম্যাট্রিক্স। যাইহোক, এসভিডি হ'ল "অন্ধ" যে কিছু ইগন্যালুগুলি নেতিবাচক হতে পারে। এসভিডি খুব কমই নন-গ্রামান কোভ পচানোর জন্য ব্যবহৃত হয়। ম্যাট্রিক্স, এটি সাধারণত জেনেশুনে গ্রামিয়ান (পজিটিভ সেমিডেফাইনেট) ম্যাট্রিক্স বা কাঁচা ডেটা সহ ব্যবহৃত হয়
ttnphns

1
@ttnphns - আপনার অন্তর্দৃষ্টি জন্য ধন্যবাদ। আমার ধারণা আমি svdযদি ফলাফলটি ইগেনভ্যালুগুলির ভিন্ন আকার না রাখি তবে প্রদত্ত ফলাফল সম্পর্কে আমি এতটা উদ্বিগ্ন হব না। ফলাফল স্পষ্টতই চলমান ইগুভ্যালুগুলিকে তার চেয়ে বেশি গুরুত্ব দিচ্ছে।
বক্সে মার্ক করুন

উত্তর:


4

আপনাকে ইগেন মানগুলির পরম মানের অর্থ যোগফল (অ্যাবস (অ্যাব $ মান)) করতে হবে এবং একক মানগুলির যোগফলের সাথে এটি তুলনা করতে হবে। তারা সমান হবে।

কারণটি হ'ল যদি আপনি সাথে নেতিবাচক ইগেনভ্যালুগুলির সাথে সারণী বা কলামগুলি গুন করেন তবে নতুন ম্যাট্রিক্সের ইগেন-মানটি ধনাত্মক হয়ে যায় এবং ইগেন-ভেক্টরের অরথোগোনালটি বিরক্ত হয় না।1

এই সুন্দর উপপাদ্যটির কথোপকথনের প্রমাণ হাজির হয়েছিল বিপ্লবের হাইপারবোলয়েডসের বীজগণিত, জাভিয়ের এফ। ক্যাবেরা, লিনিয়ার বীজগণিত এবং এর প্রয়োগসমূহ, প্রিন্সটন বিশ্ববিদ্যালয় (বর্তমানে রাটজার্সে)।

এটির কারণ হওয়ার অন্য উপায়টি এই যে সত্য যে স্কয়ার্ট (ইগেন (টি (সিজি)% *% সিজি)) সিজি এর একক মানের সাথে সমান। কিন্তু যখন ইগেনভ্যালুগুলি নেতিবাচক হয়, তখন অবশ্যই জটিল প্লেনটিকে বিবেচনায় নিয়ে ডেটাটি হার্মিটিয়ান আকারে উপস্থাপন করতে হবে, যা মূল সূচনায় মিস হয়েছিল, অর্থাৎ নেতিবাচক ইগন সহ ম্যাট্রিক্সের প্রতিসাম্য বর্গমূল দ্বারা গঠিত ডেটা মানগুলিতে জটিল এন্ট্রি থাকবে।


1
এই ব্যাখ্যা জন্য অনেক ধন্যবাদ। আমি ইগেন এবং এসভিডি-র সম্পর্কের বিষয়ে অবহিত ছিলাম, তবে অজানা ছিলাম যে মূল ম্যাট্রিক্সের পঁচানোর ক্ষেত্রে উপরে বর্ণিত পার্থক্যের কারণে তারা এখনও সম্পর্কিত হবে। শুধু কৌতূহলী - যতদূর আমি বলতে পারি, একটি ম্যাট্রিক্স "পজিটিভ সুনির্দিষ্ট" না হলে একটি ইগেন পচন নেতিবাচক মান দেয়। গ্যাপি ডেটার উপর ভিত্তি করে কি সমস্ত সোহাগুলি ম্যাট্রিক্সের ক্ষেত্রে এটিই?
বক্সে মার্ক করুন

1
মার্ক, সত্যিকারের প্রতিসাম্য ম্যাট্রিক্সের ধনাত্মক সুনির্দিষ্টতা সমস্ত ধনাত্মক ইগেনালুয়েস থাকার সমতুল্য। "গ্যাপি ডেটা" এর সাথে কোনও ঘনিষ্ঠ সম্পর্ক নেই যা বোঝা যায় যে অনেকগুলি শূন্য এন্ট্রি সহ স্পার্স ম্যাট্রিক্স বোঝাতে। সর্বোপরি, নোনসিংুলার ম্যাট্রিক্সগুলির মধ্যে খুব কম স্পর্শকাতর (প্রতিসম বা না) হ'ল তির্যক, যা তাদের প্রবেশদ্বার হিসাবে তাদের ইগেনভ্যালুগুলি প্রদর্শন করে।
শুক্র

@ শুভ - আপনার মন্তব্যের জন্য ধন্যবাদ। এই ক্ষেত্রে, আমি "গ্যাপি" আলাদাভাবে "স্পার্স" এর সাথে ব্যাখ্যা করি যে অ-মানগুলি ন্যান হয় এবং 0 (শূন্য) নয়। সুতরাং সমবায় মূল্যবোধগুলি সাধারণ মানের সংখ্যার (যেমন এন -১ দ্বারা বিভক্ত) দ্বারা স্কেল করা হয়। এই সম্মানের সাথে, আমি বিশ্বাস করি না যে কোভারিয়েন্স ম্যাট্রিক্সটিতে আসলে কোনও জিরো ছিল।
বক্সে মার্ক করুন

1
এমনকি এই জাতীয় অনুপস্থিত তথ্য থেকে কোভেরিয়েন্স ম্যাট্রিক্স অনুমান করার উপায় খুঁজে পাওয়া একটি চ্যালেঞ্জ: আমি অনেক আগে একইরকম প্রশ্ন জিজ্ঞাসা করেছি এবং কিছু উত্তেজক উত্তর পেয়েছি।
whuber

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.