आर में बहुभिन्नरूपी परिणामों का अनुकरण कैसे करें?


10

अधिकांश स्थितियों में, हम केवल एक परिणाम / प्रतिक्रिया चर के साथ सौदा करते हैं जैसे कि y=a+bx+ε। हालांकि, कुछ परिदृश्यों में, विशेष रूप से नैदानिक ​​डेटा में, परिणाम चर उच्च-आयामी / बहुभिन्नरूपी हो सकते हैं। जैसे किY=βx+ε, कहाँ पे Y शामिल Y1, Y2 तथा Y3चर और ये परिणाम सभी सहसंबद्ध हैं। अगरएक्स उपचार प्राप्त करने का प्रतिनिधित्व करता है (हां / नहीं), मैं आर में इस प्रकार के डेटा का अनुकरण कैसे कर सकता हूं?

एक वास्तविक जीवन उदाहरण, प्रत्येक रोगी को बाईपास सर्जरी के 2 प्रकारों में से एक प्राप्त होता है और शोधकर्ता प्रत्येक रोगियों को बाईपास सर्जरी (प्रत्येक लक्षण दर 0 से 10 तक) के बाद दर्द, सूजन, थकान ... आदि को मापते हैं। मैं "मान" परिणाम (लक्षण गंभीरता) बहुभिन्नरूपी सामान्य हैं। आशा है कि यह वास्तविक उदाहरण मेरे प्रश्न को स्पष्ट कर सकता है। अग्रिम में बहुत धन्यवाद।


क्या वितरण करता है Yहै? यदि यह मल्टीवेरिएट सामान्य है, आर में mnormt पुस्तकालय पर एक नजर है
मैक्रो

यह सवाल इसलिए व्यापक है क्योंकि "मल्टीवेरेट डेटा" बहुत सारे ग्राउंड को कवर करता है । आपके पास क्या विशिष्ट आवेदन है?
whuber

मैं सिर्फ एक वास्तविक उदाहरण जोड़ता हूं, जो सहायक होना चाहिए। धन्यवाद
Tu.2

जवाबों:


9

साथ बहुभिन्नरूपी सामान्य मूल्यों का अनुकरण करें mvtnorm::rmvnorm। यह काफी हद तक यूनीवार्केट रैंडम नंबर जनरेटर की तरह काम नहीं करता है, जो आपको मापदंडों के वैक्टर निर्दिष्ट करने की अनुमति देता है, लेकिन यह सीमा काम करने के लिए सीधी है।

उदाहरण के लिए, मॉडल पर विचार करें

(y1,y2,y3)=(-1+एक्स,2एक्स,1-3एक्स)

कहाँ पे y एक बहुभिन्नरूपी सामान्य वितरण है और वार(yमैं)=1, cov(y1,y2)=cov(y2,y3)=0.5, तथा cov(y1,y3)=0। आइए इस covariance मैट्रिक्स को R में निर्दिष्ट करें:

sigma <- matrix(c(1,   0.5, 0,  
                  0.5, 1,   0.5,
                  0,   0.5, 1  ), 3, 3)

प्रयोग करने के लिए, आइए इस मॉडल के लिए कुछ डेटा उत्पन्न करते हैं एक्स से भिन्न 1 के माध्यम से 10, हर बार तीन प्रतिकृति के साथ। हमें निरंतर शब्द भी शामिल करने होंगे:

data <- cbind(rep(1,10*3), rep(1:10,3))

मॉडल साधन निर्धारित करता है:

beta <- matrix(c(-1,1,  0,2,  1,-3), 2, 3)
means <- data %*% beta

एकाधिक बहुभिन्नरूपी परिणाम बनाने के लिए वर्कअराउंड का उपयोग करना है apply:

library(mvtnorm) # Contains rmvnorm
sample <- t(apply(means, 1, function(m) rmvnorm(1, mean=m, sigma=sigma)))

2

बायेसियन नेटवर्क (बीएन) आमतौर पर आपके द्वारा वर्णित संदर्भ में उपयोग किया जाता है। एक जेनेरेटिव मॉडल के रूप में , एक बीएन आपको अपने डोमेन चर के बीच सांख्यिकीय निर्भरता का प्रतिनिधित्व करने की अनुमति देगा, जो आपके मामले में 1) पूर्व-उपचार, 2) उपचार, और 3) पोस्ट-ट्रीटमेंट चर के रूप में उप-समूहित किया जा सकता है। आप अपने मौजूदा रोगी डेटा पर अपने मॉडल को प्रशिक्षित कर सकते हैं, और फिर एक विशिष्ट रोगी के लिए यह जांचने के लिए कि किसी अन्य रोगी को कैसे प्रभावित करते हैं (जैसे कि आप परिणाम के रूप में लेबल किए गए हैं, अर्थात् पोस्ट-ट्रीटमेंट सहित) साक्ष्य दर्ज करें।

एक स्वच्छ चाल यह है कि आप वास्तव में अपने परिणाम चर पर विभिन्न उपचार प्रकारों के प्रभाव का आश्वासन दे सकते हैं। इसे एक हस्तक्षेप कहा जाता है । यदि रुचि है, तो हमारे पास यहां एक प्रासंगिक पेपर है

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