कैसे करें आइसोमेट्रिक लॉग-अनुपात परिवर्तन


18

मेरा मूवमेंट बिहेवियर (समय बिताना, नींद आना, गतिहीन होना और शारीरिक गतिविधि करना) पर डेटा है, जो लगभग 24 (जैसा कि प्रति दिन घंटों में) होता है। मैं एक ऐसा वैरिएबल बनाना चाहता हूं, जो इनमें से प्रत्येक व्यवहार में खर्च किए गए सापेक्ष समय को पकड़ता है - मुझे बताया गया है कि एक आइसोमेट्रिक लॉग-अनुपात परिवर्तन इसे पूरा करेगा।

ऐसा लगता है कि मुझे आर में आईएलआर फ़ंक्शन का उपयोग करना चाहिए, लेकिन कोड के साथ कोई वास्तविक उदाहरण नहीं मिल सकता है। मैं कहाँ से शुरू करूँ?

जिन चरों के लिए मैंने समय व्यतीत किया है वे सोते समय, औसत गतिहीन समय, औसत औसत हल्की शारीरिक गतिविधि, औसत मध्यम शारीरिक गतिविधि और औसत शारीरिक गतिविधि करते हैं। नींद की सूचना स्वयं थी, जबकि अन्य एक्सीलरोमीटर डेटा के वैध दिनों से औसत हैं। इसलिए इन चरों के लिए, मामलों का योग बिल्कुल 24 तक नहीं है।

मेरा अनुमान है: मैं एसएएस में काम कर रहा हूं, लेकिन ऐसा लगता है कि आर इस हिस्से के लिए उपयोग करना बहुत आसान होगा। इसलिए पहले केवल ब्याज के चर के साथ डेटा आयात करें। तब acomp () फ़ंक्शन का उपयोग करें। तब मैं ilr () फ़ंक्शन के लिए सिंटैक्स का पता नहीं लगा सकता। कोई भी सहायताकाफी प्रशंसनीय होगी।

जवाबों:


21

ILR (आइसोमेट्रिक लॉग-अनुपात) संरचना डेटा के विश्लेषण में उपयोग किया जाता है। किसी भी दिया गया अवलोकन एकता के लिए सकारात्मक मूल्यों का एक सेट है, जैसे कि मिश्रण में रसायनों का अनुपात या विभिन्न गतिविधियों में खर्च किए गए कुल समय का अनुपात। योग करने वाली एकता अपरिवर्तनीय का तात्पर्य है कि यद्यपि वहाँ हो सकता है k2 प्रत्येक अवलोकन करने के लिए घटकों, वहाँ केवल हैं k1 कार्यात्मक स्वतंत्र मान। (ज्यामितीय, टिप्पणियों एक पर झूठ k1 आयामी सिंप्लेक्स में k आयामी इयूक्लिडियन स्थान Rk। यह सरल प्रकृति नीचे दिखाए गए सिम्युलेटेड डेटा के बिखराव के त्रिकोणीय आकार में प्रकट होती है।)

आमतौर पर, जब लॉग तब्दील होते हैं तो घटकों के वितरण "अच्छे" हो जाते हैं। यह परिवर्तन लॉग लेने से पहले सभी मानों को उनके ज्यामितीय माध्य से अवलोकन में विभाजित करके बढ़ाया जा सकता है। (समान रूप से, किसी भी अवलोकन में डेटा का लॉग उनके मतलब को घटाकर केंद्रित किया जाता है।) इसे "केंद्रित लॉग-अनुपात" परिवर्तन या सीएलआर के रूप में जाना जाता है। जिसके परिणामस्वरूप मूल्यों अभी भी में एक hyperplane के भीतर स्थित Rk , क्योंकि स्केलिंग लॉग की राशि का कारण बनता है शून्य होने के लिए। ILR में इस हाइपरप्लेन के लिए कोई भी अलौकिक आधार चुनने की क्षमता है: प्रत्येक परिवर्तित अवलोकन का k1 निर्देशांक इसका नया डेटा बन जाता है। समान रूप से, हाइपरप्लेन को लुप्त हो जाता है (या परिलक्षित होता है) विमान के साथ गायब होने kth समन्वय और एक पहलेk1 निर्देशांकका उपयोग करता है। (क्योंकि घुमाव और परावर्तन दूरी कोसममितकरते हैं,वेइस प्रक्रिया का नाम बताते हैं।)

Tsagris, प्रेस्टन, और लकड़ी का कहना है कि "का एक मानक विकल्प [रोटेशन मैट्रिक्स] H Helmert उप मैट्रिक्स Helmert मैट्रिक्स से पहली पंक्ति को हटाने के द्वारा प्राप्त की है।"

ऑर्डर k का हेल्मर्ट मैट्रिक्स एक सरल तरीके से बनाया गया है (उदाहरण के लिए हार्विल पी। 86 देखें)। इसकी पहली पंक्ति सभी 1 s है। अगली पंक्ति सबसे सरल में से एक है जिसे पहली पंक्ति में ऑर्थोगोनल बनाया जा सकता है, जिसका नाम है (1,1,0,,0) । पंक्ति j सबसे सरल है जो सभी पूर्ववर्ती पंक्तियों के लिए रूढ़िवादी है: इसकी पहली j1 प्रविष्टियां 1 s हैं, जो यह गारंटी देती है कि यह पंक्तियों 2 , 3 , , j - 1 के लिए orthogonal है2,3,,j1, और इसकी jth प्रविष्टि को पहली पंक्ति के लिए orthogonal बनाने के लिए 1j पर सेट किया गया है (अर्थात, इसकी प्रविष्टियाँ शून्य के बराबर होनी चाहिए)। सभी पंक्तियों को फिर इकाई लंबाई में बदल दिया जाता है।

यहाँ, पैटर्न को स्पष्ट करने के लिए, 4×4 हैल्मर्ट मैट्रिक्स है इससे पहले कि इसकी पंक्तियों को फिर से जोड़ा गया है:

(1111110011201113).

(संपादित अगस्त 2017 को जोड़ा गया) इन "कंट्रास्ट्स" (जो पंक्ति द्वारा पंक्ति को पढ़ा जाता है) का एक विशेष रूप से अच्छा पहलू उनकी व्याख्या है। पहली पंक्ति को गिरा दिया जाता है, जो डेटा का प्रतिनिधित्व करने के लिए k1 शेष पंक्तियों को छोड़ देता है । दूसरी पंक्ति दूसरे चर और पहले के बीच के अंतर के लिए आनुपातिक है। तीसरी पंक्ति तीसरे चर और पहले दो के बीच के अंतर के लिए आनुपातिक है। आम तौर पर, पंक्ति j ( 2jk ) चर के बीच अंतर को दर्शाता है j और उन सभी कि यह पूर्व में होना, चर 1,2,,j1। यह पहले चर j=1 को सभी विरोधाभासों के लिए "आधार" के रूप में छोड़ता है । प्रिंसिपल कम्पोनेंट्स एनालिसिस (पीसीए) द्वारा ILR का पालन करने पर मुझे ये व्याख्याएँ मददगार लगी हैं: यह मूल चर के बीच तुलना के मामले में लोडिंग की व्याख्या करने में सक्षम बनाता है, कम से कम मोटे तौर पर। मैंने नीचे दिए गए Rकार्यान्वयन में एक पंक्ति सम्मिलित की ilrहै जो आउटपुट चर को इस नाम की मदद से उपयुक्त नाम देता है। (संपादन का अंत)

चूंकि इस तरह के मेट्रिसेस बनाने के लिए Rएक फ़ंक्शन प्रदान करता है contr.helmert(यद्यपि स्केलिंग के बिना, और पंक्तियों और स्तंभों के साथ नकारात्मक और ट्रांसपोज़्ड), आपको इसे करने के लिए सरल (सरल) कोड लिखना भी नहीं है। इसका उपयोग करते हुए, मैंने ILR लागू किया (नीचे देखें)। व्यायाम करने और इसका परीक्षण करने के लिए, मैंने एक डिरिचलेट वितरण (मापदंडों 1 , 2 , 3 , 4 ) के साथ 1000 स्वतंत्र ड्रॉ उत्पन्न किए और उनके स्कैपट्लॉट मैट्रिक्स को प्लॉट किया। यहाँ, के = 41,2,3,4k=4

आकृति 1

सभी बिंदु निचले बाएं कोनों के पास से टकराते हैं और उनके प्लॉटिंग क्षेत्रों के त्रिकोणीय पैच को भरते हैं, जैसा कि संरचना संबंधी डेटा की विशेषता है।

उनके ILR में सिर्फ तीन वैरिएबल हैं, जिन्हें फिर से स्कैटलप्लॉट मैट्रिक्स के रूप में प्लॉट किया गया है:

चित्र 2

यह वास्तव में अच्छा लग रहा है: स्कैप्लेट्स ने अधिक विशिष्ट "अण्डाकार बादल" आकृतियों का अधिग्रहण किया है, जो रैखिक क्रम और पीसीए जैसे दूसरे क्रम के विश्लेषण के लिए बेहतर हैं।

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)

1
@ एलेक्स मुझे समझ नहीं आ रहा है कि "स्प्रिचुअल" सहसंबंधों से आपका क्या मतलब है। हां, चर निर्भर होना चाहिए - लेकिन पीसीए का काम आपको उन निर्भरताओं की विशेषता और मात्रा निर्धारित करने में मदद करना है। ध्यान दें, भी, कि सीएलआर का योग स्थिर नहीं है (भले ही सीएलआर उन मूल्यों पर आधारित हैं जो एकता के लिए योग हैं)।
व्हिबर

1
@ एएक्सए सिर्फ पीसीए आउटपुट का अध्ययन क्यों नहीं करता है? यदि यह जटिल है और आप सिर्फ दो चर पर ध्यान केंद्रित करना चाहते हैं, तो उन दो चर का पीसीए करें। उनमें से एक स्कैल्प्लॉट किसी भी कोलिनियरिटी की प्रकृति और सीमा को प्रकट करेगा।
whuber

1
@ एलेक्स श्योर - यही कारण है कि मैं आईएलआर को चित्रित करने के लिए इस उत्तर में स्कैप्लेट्स का उपयोग करता हूं!
नोव

2
@ एलेक्स एक दिलचस्प उद्धरण है। यह एक दर्शन को दर्शाता है जो ईडीए (अन्य चीजों के बीच) में उड़ता है, जो बताता है कि जब कोई उपयोगी या सूचनात्मक संबंध बनाने वाले चर की फिर से अभिव्यक्ति पा सकता है, तो यह एक अच्छी बात है, समस्या नहीं। EDA के समर्थकों (जैसे जॉन टुके) का तर्क है कि जिस रूप में डेटा को मूल रूप से व्यक्त किया जाता है, जरूरी नहीं कि जिस रूप में उनका विश्लेषण किया जाना चाहिए, जबकि यह उद्धरण केवल विपरीत का अर्थ रखता है। मैं आपको यह तय करने के लिए छोड़ दूँगा कि कौन सा अधिक उपयोगी दृष्टिकोण है।
whuber

1
@ उस टिप्पणी का उद्देश्य सामान्यीकृत सीएलआर का संदर्भ देना था। जैसा कि मैंने इस उत्तर के शरीर में लिखा है, "स्केलिंग से लॉग का योग शून्य हो जाता है।"
whuber

5

आपके उपयोग के मामले के लिए, शायद सब कुछ एक के नीचे रखना ठीक है। तथ्य यह है कि संख्याओं को ठीक से 24 तक नहीं जोड़ा जाता है, इससे डेटा में थोड़ा अतिरिक्त शोर आएगा, लेकिन यह चीजों को इतना गड़बड़ नहीं करना चाहिए।

RD1D

एक तरफ तकनीकी विवरण के सभी, यह जानना महत्वपूर्ण है कि ilr रूपांतरित डेटा की ठीक से व्याख्या कैसे करें। अंत में, ilr ट्रांसफॉर्म सिर्फ समूहों के लॉग अनुपात को संदर्भित करता है। लेकिन यह इसे कुछ पूर्वनिर्धारित पदानुक्रम के संबंध में परिभाषित करता है। यदि आप एक पदानुक्रम को इस प्रकार परिभाषित करते हैं

यहाँ छवि विवरण दर्ज करें

प्रत्येक रूपांतरित चर की गणना इस प्रकार की जा सकती है

bi=rsr+slng(Ri)g(Si)

मैंRiiSiig(...)

तो अगला सवाल यह है कि आप चर के अपने पदानुक्रम को कैसे परिभाषित करते हैं? यह वास्तव में आप पर निर्भर है, लेकिन अगर आपके पास तीन चर हैं, तो गड़बड़ करने के लिए बहुत अधिक संयोजन नहीं हैं। उदाहरण के लिए, आप सिर्फ पदानुक्रम को परिभाषित कर सकते हैं

                        /-A
            /(A|B)-----|
-(AB|C)----|            \-B
           |
            \-C

ABC(A|B)A B12lnAB(AB|C)ABC23lnABसी

लेकिन अपने मूल प्रश्न पर वापस जाते हुए, आप इस जानकारी का उपयोग वास्तव में आईएलआर परिवर्तन करने के लिए कैसे कर सकते हैं?

यदि आप आर का उपयोग कर रहे हैं, तो मैं रचना पैकेज की जांच करूँगा

उस पैकेज का उपयोग करने के लिए, आपको यह समझना होगा कि अनुक्रमिक बाइनरी विभाजन (एसबीपी) कैसे बनाया जाए, जो कि आप पदानुक्रम को कैसे परिभाषित करते हैं। ऊपर परिभाषित पदानुक्रम के लिए, आप निम्नलिखित मैट्रिक्स के साथ SBP का प्रतिनिधित्व कर सकते हैं।

        A  B  C
(A|B)   1 -1  0
(AB|C)  1  1 -1

जहाँ पॉजिटिव मान अंश में चर का प्रतिनिधित्व करते हैं, ऋणात्मक मान भाजक में चर का प्रतिनिधित्व करते हैं, और शून्य संतुलन में उस चर की अनुपस्थिति का प्रतिनिधित्व करते हैं। आप balanceBaseएसबीपी से परिभाषित ऑर्थोनॉमिक आधार का निर्माण कर सकते हैं जिसे आपने परिभाषित किया था।
एक बार जब आपके पास यह हो जाता है, तो आपको उस अनुपात के साथ अपनी तालिका में पारित करने में सक्षम होना चाहिए, जिस आधार पर आपने गणना की थी।

मैं शेष राशि की मूल परिभाषा के लिए इस संदर्भ की जाँच करूँगा


4

उपरोक्त पोस्ट इस सवाल का जवाब देते हैं कि कैसे एक ILR आधार का निर्माण करें और अपने ILR शेष राशि प्राप्त करें। इसे जोड़ने के लिए, किस आधार का चुनाव आपके परिणामों की व्याख्या को आसान बना सकता है।

आपको निम्नलिखित विभाजन में रुचि हो सकती है:

(१) (शयन, गतिहीन | भौतिक_क्रियात्मकता) (२) (शयन | गतिहीन)।

चूंकि आपकी रचना में तीन भाग हैं, इसलिए आपको विश्लेषण के लिए दो ILR शेष मिलेंगे। ऊपर के रूप में विभाजन की स्थापना करके, आप "सक्रिय या नहीं" (1) और "निष्क्रियता के किस रूप" के अनुरूप संतुलन प्राप्त कर सकते हैं (2)।

यदि आप प्रत्येक ILR शेष राशि का अलग-अलग विश्लेषण करते हैं, उदाहरण के लिए, दिन-प्रतिदिन या समय-वर्ष के विरुद्ध प्रतिगमन करने के लिए यह देखने के लिए कि क्या कोई परिवर्तन हैं, तो आप परिणामों को "सक्रिय या नहीं" में परिवर्तनों के संदर्भ में व्याख्या कर सकते हैं और में परिवर्तन कर सकते हैं "निष्क्रियता का कौन सा रूप है"।

यदि, दूसरी ओर, आप पीसीए जैसी तकनीकों का प्रदर्शन करेंगे जो ILR अंतरिक्ष में एक नया आधार प्राप्त करते हैं, तो आपके परिणाम विभाजन की आपकी पसंद पर निर्भर नहीं करेंगे। ऐसा इसलिए है क्योंकि आपका डेटा सीएलआर-स्पेस में मौजूद है, डी -1 प्लेन ऑर्थोगोनल टू वन-वेक्टर और आईएलआर बैलेंस सीएलआर प्लेन में डेटा की पोजिशन का वर्णन करने के लिए यूनिट-स्टैंडर्ड एक्सिस के अलग-अलग विकल्प हैं।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.