ILR (आइसोमेट्रिक लॉग-अनुपात) संरचना डेटा के विश्लेषण में उपयोग किया जाता है। किसी भी दिया गया अवलोकन एकता के लिए सकारात्मक मूल्यों का एक सेट है, जैसे कि मिश्रण में रसायनों का अनुपात या विभिन्न गतिविधियों में खर्च किए गए कुल समय का अनुपात। योग करने वाली एकता अपरिवर्तनीय का तात्पर्य है कि यद्यपि वहाँ हो सकता है k≥2 प्रत्येक अवलोकन करने के लिए घटकों, वहाँ केवल हैं k−1 कार्यात्मक स्वतंत्र मान। (ज्यामितीय, टिप्पणियों एक पर झूठ k−1 आयामी सिंप्लेक्स में k आयामी इयूक्लिडियन स्थान Rk। यह सरल प्रकृति नीचे दिखाए गए सिम्युलेटेड डेटा के बिखराव के त्रिकोणीय आकार में प्रकट होती है।)
आमतौर पर, जब लॉग तब्दील होते हैं तो घटकों के वितरण "अच्छे" हो जाते हैं। यह परिवर्तन लॉग लेने से पहले सभी मानों को उनके ज्यामितीय माध्य से अवलोकन में विभाजित करके बढ़ाया जा सकता है। (समान रूप से, किसी भी अवलोकन में डेटा का लॉग उनके मतलब को घटाकर केंद्रित किया जाता है।) इसे "केंद्रित लॉग-अनुपात" परिवर्तन या सीएलआर के रूप में जाना जाता है। जिसके परिणामस्वरूप मूल्यों अभी भी में एक hyperplane के भीतर स्थित Rk , क्योंकि स्केलिंग लॉग की राशि का कारण बनता है शून्य होने के लिए। ILR में इस हाइपरप्लेन के लिए कोई भी अलौकिक आधार चुनने की क्षमता है: प्रत्येक परिवर्तित अवलोकन का k−1 निर्देशांक इसका नया डेटा बन जाता है। समान रूप से, हाइपरप्लेन को लुप्त हो जाता है (या परिलक्षित होता है) विमान के साथ गायब होने kth समन्वय और एक पहलेk−1 निर्देशांकका उपयोग करता है। (क्योंकि घुमाव और परावर्तन दूरी कोसममितकरते हैं,वेइस प्रक्रिया का नाम बताते हैं।)
Tsagris, प्रेस्टन, और लकड़ी का कहना है कि "का एक मानक विकल्प [रोटेशन मैट्रिक्स] H Helmert उप मैट्रिक्स Helmert मैट्रिक्स से पहली पंक्ति को हटाने के द्वारा प्राप्त की है।"
ऑर्डर k का हेल्मर्ट मैट्रिक्स एक सरल तरीके से बनाया गया है (उदाहरण के लिए हार्विल पी। 86 देखें)। इसकी पहली पंक्ति सभी 1 s है। अगली पंक्ति सबसे सरल में से एक है जिसे पहली पंक्ति में ऑर्थोगोनल बनाया जा सकता है, जिसका नाम है (1,−1,0,…,0) । पंक्ति j सबसे सरल है जो सभी पूर्ववर्ती पंक्तियों के लिए रूढ़िवादी है: इसकी पहली j−1 प्रविष्टियां 1 s हैं, जो यह गारंटी देती है कि यह पंक्तियों 2 , 3 , … , j - 1 के लिए orthogonal है2,3,…,j−1, और इसकी jth प्रविष्टि को पहली पंक्ति के लिए orthogonal बनाने के लिए 1−j पर सेट किया गया है (अर्थात, इसकी प्रविष्टियाँ शून्य के बराबर होनी चाहिए)। सभी पंक्तियों को फिर इकाई लंबाई में बदल दिया जाता है।
यहाँ, पैटर्न को स्पष्ट करने के लिए, 4×4 हैल्मर्ट मैट्रिक्स है इससे पहले कि इसकी पंक्तियों को फिर से जोड़ा गया है:
⎛⎝⎜⎜⎜11111−11110−21100−3⎞⎠⎟⎟⎟.
(संपादित अगस्त 2017 को जोड़ा गया) इन "कंट्रास्ट्स" (जो पंक्ति द्वारा पंक्ति को पढ़ा जाता है) का एक विशेष रूप से अच्छा पहलू उनकी व्याख्या है। पहली पंक्ति को गिरा दिया जाता है, जो डेटा का प्रतिनिधित्व करने के लिए k−1 शेष पंक्तियों को छोड़ देता है । दूसरी पंक्ति दूसरे चर और पहले के बीच के अंतर के लिए आनुपातिक है। तीसरी पंक्ति तीसरे चर और पहले दो के बीच के अंतर के लिए आनुपातिक है। आम तौर पर, पंक्ति j ( 2≤j≤k ) चर के बीच अंतर को दर्शाता है j और उन सभी कि यह पूर्व में होना, चर 1,2,…,j−1। यह पहले चर j=1 को सभी विरोधाभासों के लिए "आधार" के रूप में छोड़ता है । प्रिंसिपल कम्पोनेंट्स एनालिसिस (पीसीए) द्वारा ILR का पालन करने पर मुझे ये व्याख्याएँ मददगार लगी हैं: यह मूल चर के बीच तुलना के मामले में लोडिंग की व्याख्या करने में सक्षम बनाता है, कम से कम मोटे तौर पर। मैंने नीचे दिए गए R
कार्यान्वयन में एक पंक्ति सम्मिलित की ilr
है जो आउटपुट चर को इस नाम की मदद से उपयुक्त नाम देता है। (संपादन का अंत)
चूंकि इस तरह के मेट्रिसेस बनाने के लिए R
एक फ़ंक्शन प्रदान करता है contr.helmert
(यद्यपि स्केलिंग के बिना, और पंक्तियों और स्तंभों के साथ नकारात्मक और ट्रांसपोज़्ड), आपको इसे करने के लिए सरल (सरल) कोड लिखना भी नहीं है। इसका उपयोग करते हुए, मैंने ILR लागू किया (नीचे देखें)। व्यायाम करने और इसका परीक्षण करने के लिए, मैंने एक डिरिचलेट वितरण (मापदंडों 1 , 2 , 3 , 4 ) के साथ 1000 स्वतंत्र ड्रॉ उत्पन्न किए और उनके स्कैपट्लॉट मैट्रिक्स को प्लॉट किया। यहाँ, के = 4 ।1,2,3,4k=4
सभी बिंदु निचले बाएं कोनों के पास से टकराते हैं और उनके प्लॉटिंग क्षेत्रों के त्रिकोणीय पैच को भरते हैं, जैसा कि संरचना संबंधी डेटा की विशेषता है।
उनके ILR में सिर्फ तीन वैरिएबल हैं, जिन्हें फिर से स्कैटलप्लॉट मैट्रिक्स के रूप में प्लॉट किया गया है:
यह वास्तव में अच्छा लग रहा है: स्कैप्लेट्स ने अधिक विशिष्ट "अण्डाकार बादल" आकृतियों का अधिग्रहण किया है, जो रैखिक क्रम और पीसीए जैसे दूसरे क्रम के विश्लेषण के लिए बेहतर हैं।
Tsagris एट अल। एक बॉक्स-कॉक्स परिवर्तन का उपयोग करके सीएलआर को सामान्य करें, जो लघुगणक को सामान्य करता है। (लॉग पैरामीटर 0 साथ एक बॉक्स-कॉक्स परिवर्तन है ।) यह उपयोगी है क्योंकि, जैसा कि लेखकों (सही ढंग से आईएमएचओ) का तर्क है, कई अनुप्रयोगों में डेटा को उनके परिवर्तन को निर्धारित करने के लिए चाहिए। इन Dirichlet डेटा की एक पैरामीटर के लिए 1/2 (जो कोई परिवर्तन और एक लॉग परिवर्तन के बीच आधे रास्ते है) खूबसूरती से काम करता है:
1/2
यह सामान्यीकरण ilr
नीचे फ़ंक्शन में लागू किया गया है। इन "Z" वेरिएबल्स को बनाने का कमांड बस था
z <- ilr(x, 1/2)
बॉक्स-कॉक्स परिवर्तन का एक फायदा यह है कि टिप्पणियों में इसकी विश्वसनीयता है जिसमें सच्चे शून्य शामिल हैं: यह अभी भी परिभाषित है बशर्ते पैरामीटर सकारात्मक हो।
संदर्भ
मिशैल टी। त्साग्रिस, साइमन प्रेस्टन और एंड्रयू टीए वुड, कम्पोजिशन डेटा के लिए डेटा-आधारित बिजली परिवर्तन । arXiv: 1106.1451v2 [स्टेट। एमई] 16 जून 2011।
डेविड ए। हरविल, एक सांख्यिकीविद के दृष्टिकोण से मैट्रिक्स बीजगणित । स्प्रिंगर साइंस एंड बिजनेस मीडिया, जून 27, 2008।
यहाँ R
कोड है।
#
# ILR (Isometric log-ratio) transformation.
# `x` is an `n` by `k` matrix of positive observations with k >= 2.
#
ilr <- function(x, p=0) {
y <- log(x)
if (p != 0) y <- (exp(p * y) - 1) / p # Box-Cox transformation
y <- y - rowMeans(y, na.rm=TRUE) # Recentered values
k <- dim(y)[2]
H <- contr.helmert(k) # Dimensions k by k-1
H <- t(H) / sqrt((2:k)*(2:k-1)) # Dimensions k-1 by k
if(!is.null(colnames(x))) # (Helps with interpreting output)
colnames(z) <- paste0(colnames(x)[-1], ".ILR")
return(y %*% t(H)) # Rotated/reflected values
}
#
# Specify a Dirichlet(alpha) distribution for testing.
#
alpha <- c(1,2,3,4)
#
# Simulate and plot compositional data.
#
n <- 1000
k <- length(alpha)
x <- matrix(rgamma(n*k, alpha), nrow=n, byrow=TRUE)
x <- x / rowSums(x)
colnames(x) <- paste0("X.", 1:k)
pairs(x, pch=19, col="#00000040", cex=0.6)
#
# Obtain the ILR.
#
y <- ilr(x)
colnames(y) <- paste0("Y.", 1:(k-1))
#
# Plot the ILR.
#
pairs(y, pch=19, col="#00000040", cex=0.6)