आर में मल्टीवेरिएट परिणामों के दोहराए गए उपायों का अनुकरण कैसे करें?


9

@whuber ने एक समय बिंदु के लिए बहुभिन्नरूपी परिणामों ( , और ) का अनुकरण करने का तरीका प्रदर्शित किया है ।y1y2y3

जैसा कि हम जानते हैं, अनुदैर्ध्य डेटा अक्सर चिकित्सा अध्ययनों में होता है। मेरा सवाल यह है कि आर में बार-बार होने वाले बहुउद्देशीय परिणामों का अनुकरण कैसे किया जाए? उदाहरण के लिए, हम दो अलग-अलग उपचार समूहों के लिए 5 विभिन्न समय बिंदुओं पर बार-बार , और को हैं।y1y2y3

जवाबों:


2

एक निर्दिष्ट सहसंबंध संरचना के साथ बहुभिन्नरूपी सामान्य डेटा उत्पन्न करने के लिए, आपको cholफ़ंक्शन का उपयोग करके विचरण सहसंयोजक मैट्रिक्स का निर्माण करने और इसके चोल्स्की अपघटन की गणना करने की आवश्यकता है। वांछित vcov मैट्रिक्स के चोल्स्की अपघटन के उत्पाद और टिप्पणियों के स्वतंत्र यादृच्छिक सामान्य वैक्टर उस विचरण सहसंयोजक मैट्रिक्स के साथ यादृच्छिक सामान्य डेटा प्राप्त करेंगे।

v <- matrix(c(2,.3,.3,2), 2)
cv <- chol(v)

o <- replicate(1000, {
  y <- cv %*% matrix(rnorm(100),2)

  v1 <- var(y[1,])
  v2 <- var(y[2,])
  v3 <- cov(y[1,], y[2,])

  return(c(v1,v2,v3))
})

## MCMC means should estimate components of v
rowMeans(o)

2

Rmvnorm () फ़ंक्शन का उपयोग करें, इसमें 3 तर्क होते हैं: प्रसरण सहसंयोजक मैट्रिक्स, साधन और पंक्तियों की संख्या।

सिग्मा में 3 * 5 = 15 पंक्तियां और कॉलम होंगे। प्रत्येक चर के प्रत्येक अवलोकन के लिए एक। इन 15 ^ 2 मापदंडों (जैसे, द्विपक्षीय समरूपता, असंरचित ...) को स्थापित करने के कई तरीके हैं। हालाँकि आप इस मैट्रिक्स को भरते हैं मान्यताओं के बारे में जानते हैं, खासकर जब आप एक सहसंबंध / सहसंयोजक को शून्य पर सेट करते हैं, या जब आप दो वेरिएंस को समान होने के लिए सेट करते हैं। एक शुरुआती बिंदु के लिए एक सिग्मा मैट्रिक्स कुछ इस तरह दिख सकता है:

 sigma=matrix(c(
    #y1             y2             y3 
    3 ,.5, 0, 0, 0, 0, 0, 0, 0, 0,.5,.2, 0, 0, 0,
    .5, 3,.5, 0, 0, 0, 0, 0, 0, 0,.2,.5,.2, 0, 0,
    0 ,.5, 3,.5, 0, 0, 0, 0, 0, 0, 0,.2,.5,.2, 0,
    0 , 0,.5, 3,.5, 0, 0, 0, 0, 0, 0, 0,.2,.5,.2,
    0 , 0, 0,.5, 3, 0, 0, 0, 0, 0, 0, 0, 0,.2,.5,
    0 ,0 ,0 ,0 , 0, 3,.5, 0, 0, 0, 0, 0, 0, 0, 0,
    0 ,0 ,0 ,0 ,0 ,.5, 3,.5, 0, 0, 0, 0, 0, 0, 0,
    0 ,0 ,0 ,0 ,0 ,0 ,.5, 3,.5, 0, 0, 0, 0, 0, 0,
    0 ,0 ,0 ,0 ,0 ,0 ,0 ,.5, 3,.5, 0, 0, 0, 0, 0,
    0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,.5, 3, 0, 0, 0, 0, 0,
    .5,.2,0 ,0 ,0 ,0 ,0 ,0 ,0 , 0, 3,.5, 0, 0, 0,
    .2,.5,.2,0 ,0 ,0 ,0 ,0 ,0 ,0 ,.5, 3,.5, 0, 0,
    0 ,.2,.5,.2,0 ,0 ,0 ,0 ,0 ,0 ,0 ,.5, 3,.5, 0,
    0 ,0 ,.2,.5,.2,0 ,0 ,0 ,0 ,0 ,0 ,0 ,.5, 3,.5,
    0 ,0 ,0 ,.2,.5,0 ,0 ,0 ,0 ,0 ,0 ,0 ,0 ,.5, 3

    ),15,15)

तो सिग्मा [1,12] है ।2 और इसका मतलब है कि Y1 के पहले अवलोकन और Y3 के दूसरे अवलोकन के बीच सहसंयोजक है ।2, अन्य सभी 13 चर पर सशर्त। विकर्ण पंक्तियों में सभी को समान संख्या में नहीं होना चाहिए: यह एक सरल धारणा है जिसे मैंने बनाया है। कभी-कभी यह समझ में आता है, कभी-कभी यह नहीं होता है। सामान्य तौर पर इसका मतलब है कि एक तीसरे अवलोकन और 4 वें के बीच संबंध 1 और दूसरे के बीच संबंध के समान है।

आपको साधन भी चाहिए। यह जितना सरल हो सकता है

 meanTreat=c(1:5,51:55,101:105)
 meanControl=c(1,1,1,1,1,50,50,50,50,50,100,100,100,100,100)

यहाँ पहले 5 Y1 की 5 टिप्पणियों के लिए साधन हैं, ..., अंतिम 5 Y3 के अवलोकन हैं

उसके बाद अपने डेटा का 2000 अवलोकन प्राप्त करें:

sampleT=rmvnorm(1000,meanTreat,sigma)
sampleC=rmvnorm(1000,meanControl,sigma)
 sample=data.frame(cbind(sampleT,sampleC) )
  sample$group=c(rep("Treat",1000),rep("Control",1000) )

colnames(sample)=c("Y11","Y12","Y13","Y14","Y15",
                   "Y21","Y22","Y23","Y24","Y25",
                   "Y31","Y32","Y33","Y34","Y35")

जहां Y11 Y1 का 1 अवलोकन है, ..., Y15 Y1 का 5 वां अवलोकन है ...


1
पहले उदाहरण के रूप में मैट्रिस बनाने के लिए, सेठ, यह प्रयास करें n <- 3*5; sigma <- diag(1, nrow=n, ncol=n); sigma[rbind(cbind(1:n-1,1:n),cbind(1:n,1:n-1))] <- 1/2:। एक समान दृष्टिकोण दूसरा उदाहरण उत्पन्न करेगा। हालांकि, उनके पास एक आम समस्या है: आपने कोवरियों को खो दिया हैyप्रत्येक अवधि के दौरान-- ये
whuber

@ आपकी सिंटैक्स सहायक है, लेकिन मैंने जो लिखा है, उससे अलग है। मुझे लगता है कि अंतर थोड़ा महत्वपूर्ण है। मुझे लगता है कि मैंने एआर (1) के रूप में क्या लिखा है और आपके पास एक चर के अंतिम अवलोकन और अगले चर के पहले अवलोकन के बीच क्रॉस सहसंबंध में एक प्रविष्टि है। दूसरे शब्दों में, मुझे लगता है कि सिग्मा [५,६]
सेठ

आह, अब मैं देख रहा हूं कि आप क्या कर रहे हैं: आप पहले उदाहरण में तीन एआर (1) श्रृंखला बना रहे हैं। मुझे यह याद आया क्योंकि मेरा मानना ​​है कि ओपी श्रृंखला के बीच संबंध के बारे में भी चिंतित है : इसका मतलब "बहुभिन्नरूपी परिणामों" से है। उस दृष्टिकोण से ऐसा लगता है जैसे आप इन सहसंबंधों को परिपक्व होने के रूप में देखना चाहते हैं5 द्वारा 5 प्रत्येक प्रविष्टि के साथ ब्लॉक मेट्रिसेस a 3 द्वारा 3 मैट्रिक्स, बजाय एक के रूप में 3 द्वारा 3 साथ मैट्रिक्स को ब्लॉक करें 5 द्वारा 5ब्लॉक।
whuber

मुझे लगा कि मेरी दूसरी सिग्मा Y1 और Y3 के बीच विचरण को सकारात्मक बनाने की अनुमति देने का एक सरल उदाहरण है। मैंने उत्तर को थोड़ा स्पष्ट किया कि डेटा बनाने की प्रक्रिया के आधार पर मैट्रिक्स को कॉन्फ़िगर किया जाना है। इस बिल्ली की त्वचा के लिए निश्चित रूप से कई तरीके हैं।
सेठ

पर्याप्त रूप से उचित है, लेकिन आपका दृष्टिकोण कठिनाइयों का निर्माण करता है, क्योंकि यह बहुभिन्नरूपी सहसंबंध को आपस में जोड़ने के लिए तुच्छ नहीं है yiएक एआर मॉडल के साथ। उदाहरण के लिए, क्या आप जानते हैं कि दूसरा मैट्रिक्स सकारात्मक निश्चित होने में विफल रहता है? (C (-102, 177, -204, 177, -102, 0, 0, 0, 0, 0, 102, -177, 204, -177, 102) का "विचरण" नकारात्मक है।)
व्हूबेर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.