एक विशाल विरल आकस्मिक तालिका की कल्पना कैसे करें?


24

मेरे पास दो चर हैं: ड्रग नाम (डीएन) और इसी प्रतिकूल घटना (एई), जो कई-से-कई संबंधों में हैं। 33,556 दवा के नाम और 9,516 प्रतिकूल घटनाएं हैं। नमूना का आकार लगभग 5.8 मिलियन अवलोकन है।

मैं डीएन और एई के बीच संबंध / संबंध का अध्ययन और समझना चाहता हूं। मैं आर में इस सेट को देखने के तरीके के बारे में सोच रहा हूं क्योंकि यह चित्रों को देखने के लिए बेहतर है। मुझे यकीन नहीं है कि इसके बारे में कैसे जाना जाए ...


3
(+1) इन टिप्पणियों में प्रस्तुत अतिरिक्त जानकारी के प्रकाश में (क्योंकि हटाए गए, क्योंकि जानकारी अब प्रश्न में ही प्रकट होती है), यह एक दिलचस्प और चुनौतीपूर्ण समस्या बन गई है। मैं पिछले downvoters को इस मान्यता में अपना वोट बदलने के लिए प्रोत्साहित करता हूं (और यदि आप मेरे साथ सहमत हैं तो दूसरों को इस सवाल से उबरने के लिए!)।
whuber

1
क्या डेटा सार्वजनिक रूप से उपलब्ध हैं?
कार्डिनल

5
@ कार्डिनल, हाँ .. एफडीए से प्राप्त डेटा, इसे AERS कहा जाता है। लिंक देखें: fda.gov/Drugs/GuidanceComplianceRegulatoryInformation/…
user9292

यह एक बड़े साहित्य के साथ एक ज्ञात समस्या है: आप पर एक नज़र डाल सकते हैं, उदाहरण के लिए (चिकित्सा में आँकड़े, डाउनलोड करने योग्य): "बायेसियन फ़ार्माकोविजिलेंस सिग्नल डिटेक्शन विधियों ने कई तुलनात्मक सेटिंग में परिकल्पित किया" और संदर्भ में।
kjetil b halvorsen

यह एक दिलचस्प पेपर की तरह लगता है (यह सुनिश्चित नहीं है कि यह स्वतंत्र रूप से उपलब्ध है, लेकिन एक आर पैकेज है )। अब, आप किस ग्राफिकल समाधान का सुझाव देंगे?
chl

जवाबों:


11

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

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

यहाँ संपादित करें कि मैं यह कैसे करूँगा (मुझे दी गई पर्याप्त रैम उपलब्ध है ...)

  1. वांछित आयामों का एक विरल मैट्रिक्स बनाएँ (दवा के नाम x प्रभाव)
  2. स्वतंत्रता लॉगलाइनियर मॉडल से अवशिष्टों की गणना करें
  3. न्यूनतम से अवशिष्ट (जैसे hsv कलरस्पेस के साथ) के लिए ठीक संकल्प में एक रंग ढाल का उपयोग करें
  4. विरल मैट्रिक्स में स्थिति के अनुसार अवशिष्ट परिमाण के रंग मूल्य को सम्मिलित करें
  5. एक छवि साजिश के साथ मैट्रिक्स प्लॉट करें।

फिर आप कुछ इस तरह से समाप्त होते हैं (निश्चित रूप से आप चित्र बहुत बड़ा हो जाएगा और बहुत कम पिक्सेल आकार होगा लेकिन आपको यह विचार प्राप्त होगा। रंग के चतुर उपयोग के साथ आप स्वतंत्रता से संघों / प्रस्थानों की कल्पना कर सकते हैं जो आप सबसे अधिक हैं। इसमें दिलचस्पी है)।

100x100 मैट्रिक्स के साथ एक त्वरित और गंदा उदाहरण। यह सिर्फ एक खिलौना उदाहरण है जिसमें -10 से लेकर 10 तक के अवशेष हैं जैसा कि आप किंवदंती में देख सकते हैं। सफेद शून्य है, नीले रंग की अपेक्षा कम अक्सर होती है, लाल की अपेक्षा अधिक होती है। आपको विचार प्राप्त करने और वहां से इसे लेने में सक्षम होना चाहिए। संपादित करें: मैंने प्लॉट के सेट को तय किया और अहिंसक रंगों का इस्तेमाल किया।

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

यह imageफ़ंक्शन और cm.colors()निम्न फ़ंक्शन का उपयोग करके किया गया था :

ImagePlot <- function(x, ...){
 min <- min(x)
 max <- max(x)
 layout(matrix(data=c(1,2), nrow=1, ncol=2), widths=c(1,7), heights=c(1,1))

 ColorLevels <- cm.colors(255)

 # Color Scale
 par(mar = c(1,2.2,1,1))
 image(1, seq(min,max,length=255),
  matrix(data=seq(min,max,length=255), ncol=length(ColorLevels),nrow=1),
  col=ColorLevels,
  xlab="",ylab="",
  xaxt="n")


 # Data Map
 par(mar = c(0.5,1,1,1))
 image(1:dim(x)[1], 1:dim(x)[2], t(x), col=ColorLevels, xlab="",
 ylab="", axes=FALSE, zlim=c(min,max))

layout(1)
}

#100x100 example
x <- c(seq(-10,10,length=255),rep(0,600))
mat <- matrix(sample(x,10000,replace=TRUE),nrow=100,ncol=100)
ImagePlot(mat)

यहाँ से विचारों का उपयोग कर http://www.phaget4.org/R/image_matrix.html । यदि आपका मैट्रिक्स इतना बड़ा है कि imageफ़ंक्शन धीमा हो जाता है, तो useRaster=TRUEतर्क का उपयोग करें (आप भी विरल मैट्रिक्स ऑब्जेक्ट्स का उपयोग करना चाह सकते हैं; ध्यान दें कि imageयदि आप ऊपर से कोड का उपयोग करना चाहते हैं, तो एक विधि होनी चाहिए । SparseM पैकेज देखें।)

यदि आप ऐसा करते हैं, तो पंक्तियों / स्तंभों के कुछ चतुर आदेश काम में आ सकते हैं, जिन्हें आप अभिलेख पैकेज (चेक पेज 17 और 18 या तो) के साथ गणना कर सकते हैं । मैं आमतौर पर इस प्रकार के डेटा और समस्या (न केवल विज़ुअलाइज़ेशन, बल्कि पैटर्न खोजने के लिए) के लिए भी अर्क यूटिलिटीज की सिफारिश करूंगा। वहां आपको उन स्तरों के बीच सहयोग के उपाय भी मिलेंगे जिनका उपयोग आप अवशिष्ट छायांकन के बजाय कर सकते हैं।

तुम भी को देखने के लिए चाहते हो सकता है tableplots की आप बाद में केवल प्रतिकूल प्रभाव की एक जोड़ी की जाँच करना चाहते।


1
जाहिरा तौर पर यह आजकल एक "रजाई साजिश" plosone.org/article/info:doi/10.1371/journal.pone.0085047
मोमो

मैं इस तरह की पंक्तियों और स्तंभों के साथ हीट मैप्स देखने के लिए उपयोग किया जाता हूं, जैसे कि पदानुक्रमित क्लस्टरिंग। हालांकि 33556 x 9516 इस तरह से कल्पना करने के लिए बहुत कुछ करने जैसा लगता है।
आर ग्रेग स्टेसी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.