मेरे पास एक ही प्रकार के डेटा का 92 सेट है।
मैं किसी भी दो संयोजन के लिए सहसंबंध मैट्रिक्स बनाना चाहता हूं।
यानी मुझे 92 x92 का मैट्रिक्स चाहिए।
इस तरह के तत्व (ci, cj) को ci और cj के बीच सहसंबंध होना चाहिए।
मैं उसको कैसे करू?
मेरे पास एक ही प्रकार के डेटा का 92 सेट है।
मैं किसी भी दो संयोजन के लिए सहसंबंध मैट्रिक्स बनाना चाहता हूं।
यानी मुझे 92 x92 का मैट्रिक्स चाहिए।
इस तरह के तत्व (ci, cj) को ci और cj के बीच सहसंबंध होना चाहिए।
मैं उसको कैसे करू?
जवाबों:
एक उदाहरण,
d <- data.frame(x1=rnorm(10),
x2=rnorm(10),
x3=rnorm(10))
cor(d) # get correlations (returns matrix)
आप 'भ्रष्ट' पैकेज का उपयोग कर सकते हैं।
d <- data.frame(x1=rnorm(10),
x2=rnorm(10),
x3=rnorm(10))
M <- cor(d) # get correlations
library('corrplot') #package corrplot
corrplot(M, method = "circle") #plot matrix
अधिक जानकारी यहाँ: http://cran.r-project.org/web/packages/corrplot/vignettes/corrplot-intro.html
कोर समारोह सहसंबंध की गणना में मैट्रिक्स के कॉलम का उपयोग करेगा। तो, आपके मैट्रिक्स x और मैट्रिक्स y के बीच पंक्तियों की संख्या समान होनी चाहिए । पूर्व .:
set.seed(1)
x <- matrix(rnorm(20), nrow=5, ncol=4)
y <- matrix(rnorm(15), nrow=5, ncol=3)
COR <- cor(x,y)
COR
image(x=seq(dim(x)[2]), y=seq(dim(y)[2]), z=COR, xlab="x column", ylab="y column")
text(expand.grid(x=seq(dim(x)[2]), y=seq(dim(y)[2])), labels=round(c(COR),2))
यहां एक एकल मैट्रिक्स के साथ गणना की गई सहसंबंध मैट्रिक्स पर कस्टम रो और कॉलम लेबल का एक उदाहरण दिया गया है:
png("corplot.png", width=5, height=5, units="in", res=200)
op <- par(mar=c(6,6,1,1), ps=10)
COR <- cor(iris[,1:4])
image(x=seq(nrow(COR)), y=seq(ncol(COR)), z=cor(iris[,1:4]), axes=F, xlab="", ylab="")
text(expand.grid(x=seq(dim(COR)[1]), y=seq(dim(COR)[2])), labels=round(c(COR),2))
box()
axis(1, at=seq(nrow(COR)), labels = rownames(COR), las=2)
axis(2, at=seq(ncol(COR)), labels = colnames(COR), las=1)
par(op)
dev.off()
image(x=seq(dim(x)[2]), y=seq(dim(y)[2]), z=COR, col=rev(heat.colors(20)), xlab="x column", ylab="y column")
image
समारोह स्वचालित रूप से पंक्ति और स्तंभ नाम नहीं ले करता है, तो यह जोड़ा जाना चाहिए।
इसे प्राप्त करने के अन्य तरीके हैं: ( प्लॉट सहसंबंध मैट्रिक्स में एक ग्राफ ), लेकिन मुझे आपके संस्करण को बक्से में सहसंबंध के साथ पसंद है। क्या केवल उन अनुक्रमणिका संख्याओं के बजाय x और y स्तंभ में चर नाम जोड़ने का कोई तरीका है? मेरे लिए, यह एक संपूर्ण समाधान होगा। धन्यवाद!
संपादित करें: मैं [बॉक्स में मार्क] द्वारा पोस्ट पर टिप्पणी करने की कोशिश कर रहा था, लेकिन मैं स्पष्ट रूप से नहीं जानता कि मैं क्या कर रहा हूं। हालाँकि, मैंने अपने लिए इस प्रश्न का उत्तर देने का प्रबंधन किया।
यदि d मैट्रिक्स है (या मूल डेटा फ़्रेम) और स्तंभ नाम वही हैं जो आप चाहते हैं, तो निम्न कार्य करता है:
axis(1, 1:dim(d)[2], colnames(d), las=2)
axis(2, 1:dim(d)[2], colnames(d), las=2)
लास = 0 नाम वापस अपनी सामान्य स्थिति में लाएंगे, मेरा लंबा था, इसलिए मैंने अक्ष पर लंबवत बनाने के लिए लास = 2 का उपयोग किया।
edit2: ग्रिड पर इमेज () फंक्शन प्रिंटिंग नंबर्स को दबाने के लिए (अन्यथा वे आपके वैरिएबल लेबल को ओवरलैप करते हैं), xaxt = 'n', उदा:
image(x=seq(dim(x)[2]), y=seq(dim(y)[2]), z=COR, col=rev(heat.colors(20)), xlab="x column", ylab="y column", xaxt='n')
cor
समारोह में, या पैकेजrcorr
में समारोह के लिए एक नज़र हैHmisc