एक भूखंड में कई चर कल्पना


25

मैं यह बताना चाहता हूं कि कुछ चर (~ 15) के मूल्य समय के साथ कैसे बदलते हैं, लेकिन मैं यह भी बताना चाहता हूं कि प्रत्येक वर्ष में चर एक दूसरे से कैसे भिन्न होते हैं। इसलिए मैंने यह साजिश रची:

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

लेकिन रंग योजना बदलते समय या अलग लाइन / आकार प्रकार जोड़ने पर भी यह गड़बड़ दिखता है। क्या इस तरह के डेटा की कल्पना करने का एक बेहतर तरीका है?

आर कोड के साथ डेटा का परीक्षण करें:

structure(list(Var = structure(c(1L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 6L, 
6L, 6L, 6L, 6L, 6L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 8L, 8L, 8L, 8L, 
8L, 8L, 8L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 11L, 11L, 11L, 11L, 11L, 
11L, 11L, 12L, 12L, 12L, 12L, 12L, 12L, 13L, 14L, 14L, 14L, 14L, 
14L, 14L, 14L, 16L, 16L, 16L, 16L, 16L, 16L, 17L, 17L, 17L, 17L, 
17L, 17L, 17L, 18L, 18L, 18L, 18L, 18L, 18L, 18L), .Label = c("A", 
"B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", 
"O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"), class = "factor"), 
    Year = c(2015L, 1991L, 1993L, 1996L, 2000L, 2004L, 2011L, 
    2015L, 1991L, 1993L, 1996L, 2000L, 2004L, 2011L, 2015L, 1991L, 
    1993L, 1996L, 2000L, 2004L, 2011L, 2015L, 1993L, 1996L, 2000L, 
    2004L, 2011L, 2015L, 1991L, 1993L, 1996L, 2000L, 2004L, 2011L, 
    2015L, 1991L, 1993L, 1996L, 2000L, 2004L, 2011L, 2015L, 1991L, 
    1993L, 1996L, 2000L, 2004L, 2011L, 2015L, 1991L, 1993L, 1996L, 
    2000L, 2004L, 2011L, 2015L, 1993L, 1996L, 2000L, 2004L, 2011L, 
    2015L, 2015L, 1991L, 1993L, 1996L, 2000L, 2004L, 2011L, 2015L, 
    1991L, 1993L, 1996L, 2000L, 2011L, 2015L, 1991L, 1993L, 1996L, 
    2000L, 2004L, 2011L, 2015L, 1991L, 1993L, 1996L, 2000L, 2004L, 
    2011L, 2015L), Val = c(25.6, 22.93, 20.82, 24.1, 24.5, 29, 
    25.55, 24.5, 24.52, 20.73, 25.8, 25.5, 29.5, 27.7, 25.1, 
    25, 24.55, 26.75, 25, 30.5, 27.25, 25.1, 22.4, 27.07, 26, 
    29, 27.2, 24.2, 23, 24.27, 27.68, 27, 30.5, 28.1, 24.9, 23.75, 
    22.75, 27.25, 25, 29, 28.45, 24, 20.25, 17.07, 24.45, 25, 
    28.5, 26.75, 24.9, 21.25, 20.65, 25.1, 24.5, 26.5, 25.35, 
    23.5, 21.93, 26.5, 24.5, 29, 29.1, 26.4, 28.1, 23.75, 26.5, 
    28.05, 27, 30.5, 25.65, 23.3, 23.25, 24.57, 26.07, 27.5, 
    28.85, 27.7, 22, 23.43, 26.88, 27, 30.5, 29.25, 28.1, 23, 
    23.8, 28.32, 27, 29.5, 29.15, 27.6)), row.names = c(1L, 4L, 
5L, 6L, 7L, 8L, 9L, 10L, 13L, 14L, 15L, 16L, 17L, 18L, 19L, 20L, 
21L, 22L, 23L, 24L, 25L, 26L, 27L, 28L, 29L, 30L, 31L, 32L, 35L, 
36L, 37L, 38L, 39L, 40L, 41L, 44L, 45L, 46L, 47L, 48L, 49L, 50L, 
53L, 54L, 55L, 56L, 57L, 58L, 59L, 62L, 63L, 64L, 65L, 66L, 67L, 
68L, 69L, 70L, 71L, 72L, 73L, 74L, 75L, 78L, 79L, 80L, 81L, 82L, 
83L, 84L, 87L, 88L, 89L, 90L, 91L, 92L, 95L, 96L, 97L, 98L, 99L, 
100L, 101L, 104L, 105L, 106L, 107L, 108L, 109L, 110L), na.action = structure(c(2L, 
3L, 11L, 12L, 33L, 34L, 42L, 43L, 51L, 52L, 60L, 61L, 76L, 77L, 
85L, 86L, 93L, 94L, 102L, 103L), .Names = c("2", "3", "11", "12", 
"33", "34", "42", "43", "51", "52", "60", "61", "76", "77", "85", 
"86", "93", "94", "102", "103"), class = "omit"), class = "data.frame", .Names = c("Var", 
"Year", "Val"))

2
क्या आप डेटा पोस्ट कर सकते हैं? यह काफी हद तक समान उदाहरणों को खोजने के लिए काफी आसान है, लेकिन धागे को एक साथ बांधे रखने के लिए, समान सैंडबॉक्स वाले लोगों को खेलने में मदद मिलेगी। इसके अलावा, ग्रीन जोन का क्या महत्व है?
निक कॉक्स


@NickCox ज़रूर, पहले ऐसा सोचना चाहिए था! मैंने ग्रीन ज़ोन छोड़ दिया क्योंकि यह आवश्यक नहीं है (यह केवल "पर्याप्त" माना जाता है) मानों की सीमा दिखाता है

जवाबों:


42

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

एक मानक विकल्प अलग समूहों को अलग-अलग पैनल में दिखाने के लिए है, लेकिन यह बदले में सटीक समूह-से-समूह की तुलना को मुश्किल बना सकता है; प्रत्येक समूह को अन्य समूहों के संदर्भ से अलग किया जाता है।

तो क्यों नहीं दोनों विचारों को मिलाएं: प्रत्येक समूह के लिए एक अलग पैनल, लेकिन अन्य समूहों को भी पृष्ठभूमि के रूप में दिखाएं? यह उस समूह को उजागर करने पर महत्वपूर्ण रूप से टिका है, जो फोकस में है और दूसरों को नीचा दिखा रहा है, जो इस उदाहरण में काफी आसान है, जो लाइन कलर, मोटाई आदि के कुछ उपयोग को दिया गया है। अन्य उदाहरणों में, मार्कर या बिंदु प्रतीक विकल्प इसके बजाय स्वाभाविक हो सकते हैं।

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

इस मामले में, संभावित व्यावहारिक या वैज्ञानिक महत्व या रुचि के विवरण पर प्रकाश डाला गया है:

  1. हमारे पास A और M के लिए केवल एक मूल्य है।

  2. हमारे पास अन्य सभी मामलों में दिए गए वर्षों के लिए सभी मूल्य नहीं हैं।

  3. कुछ समूह उच्च साजिश करते हैं, कुछ निम्न, और बहुत आगे।

मैं यहां एक व्याख्या का प्रयास नहीं करूंगा: डेटा अनाम हैं, लेकिन यह किसी भी मामले में शोधकर्ता की चिंता है।

आपके सॉफ़्टवेयर में क्या आसान या संभव है, इस पर निर्भर करते हुए, यहां छोटे विवरणों को बदलने की गुंजाइश है, जैसे कि अक्ष लेबल और शीर्षक दोहराए जाते हैं (इसके लिए और खिलाफ दोनों सरल तर्क हैं)।

बड़ा मुद्दा यह है कि यह रणनीति आम तौर पर कितनी अधिक कारगर होगी। समूहों की संख्या प्रमुख चालक है, प्रत्येक समूह में अंकों की संख्या से अधिक है। मोटे तौर पर, दृष्टिकोण लगभग 25 समूहों (5 x 5 प्रदर्शन, कह सकता है) तक काम कर सकता है: अधिक समूहों के साथ, न केवल ग्राफ छोटे और अधिक कठिन हो जाते हैं, बल्कि शोधकर्ता भी सभी को स्कैन करने के लिए झुकाव खो देता है। पैनलों। यदि समूहों के सैकड़ों (हजारों, ...) थे, तो आमतौर पर दिखाने के लिए समूहों की एक छोटी संख्या का चयन करना आवश्यक होगा। कुछ "विशिष्ट" और कुछ "चरम" पैनलों का चयन करने के लिए कुछ मापदंडों का मिश्रण आवश्यक होगा; कि परियोजना लक्ष्यों और प्रत्येक डाटासेट के लिए क्या मतलब है के कुछ विचार द्वारा संचालित किया जाना चाहिए। एक और दृष्टिकोण जो कुशल हो सकता है वह है प्रत्येक पैनल में श्रृंखला की एक छोटी संख्या पर जोर देना। इसलिए, यदि 25 व्यापक समूह थे, तो प्रत्येक व्यापक समूह को अन्य सभी लोगों के साथ पृष्ठभूमि के रूप में दिखाया जा सकता है। वैकल्पिक रूप से, कुछ औसत या अन्य संक्षेप हो सकते हैं। (जैसे) प्रमुख या स्वतंत्र घटकों का उपयोग करना भी एक अच्छा विचार हो सकता है।

हालांकि उदाहरण लाइन भूखंडों के लिए कहता है, सिद्धांत स्वाभाविक रूप से बहुत सामान्य है। उदाहरण गुणा, स्कैटर प्लॉट, मॉडल डायग्नोस्टिक प्लॉट आदि हो सकते हैं।

इस दृष्टिकोण के लिए कुछ संदर्भ [अन्य सबसे स्वागत योग्य हैं]:

कॉक्स, एनजे 2010. रेखांकन सबसेट। स्टाटा जर्नल 10: 670-681।

Knaflic, CN 2015. डेटा के साथ कहानी: व्यावसायिक पेशेवरों के लिए एक डेटा विज़ुअलाइज़ेशन गाइड। होबोकेन, एनजे: विली।

कोएन्कर, आर। 2005. क्वांटाइल रिग्रेशन। कैम्ब्रिज: कैम्ब्रिज यूनिवर्सिटी प्रेस। Pp.12-13 देखें।

श्वाबिश, जेए 2014। डेटा की कल्पना करने के लिए एक अर्थशास्त्री का मार्गदर्शक। जर्नल ऑफ इकोनॉमिक पर्सपेक्टिव्स 28: 209-234।

Unwin, A. 2015. आर। बोका रैटन, FL: CRC प्रेस के साथ ग्राफिकल डेटा विश्लेषण

वालग्रीन, ए।, बी। वॉलग्रेन, आर। पर्सन, यू। जोर्नर, और जे। ए। Haaland। 1996. रेखांकन सांख्यिकी और डेटा: बेहतर चार्ट बनाना। न्यूबरी पार्क, सीए: सेज।

नोट: ग्राफ Stata में बनाया गया था। subsetplotपहले स्थापित होना चाहिए ssc inst subsetplot। डेटा को कॉपी किया गया और आर से चिपकाया गया और वर्षों के रूप में दिखाने के लिए मूल्य लेबल परिभाषित किए गए 90 95 00 05 10 15। मुख्य आज्ञा है

subsetplot connected Val Year, by(Var) c(L) lcolor(gs12) backdrop(line) xtitle("") combine(imargin(small)) subset(lcolor(blue) mcolor(blue))

EDIT अतिरिक्त संदर्भ मई, सितंबर, दिसंबर 2016; अप्रैल, जून 2017, दिसंबर 2018, अप्रैल 2019:

काहिरा, ए। 2016. द ट्रूथफुल आर्ट: डेटा, चार्ट्स, एंड मैप्स फॉर कम्युनिकेशन। सैन फ्रांसिस्को, CA: न्यू राइडर्स। p.211

Cames, J. 2016. डेटा एट वर्क: माइक्रोसॉफ्ट एक्सेल में प्रभावी चार्ट और सूचना ग्राफिक्स बनाने के लिए सर्वश्रेष्ठ अभ्यास । सैन फ्रांसिस्को, CA: न्यू राइडर्स। p.354

Carr, DB और अचार, LW 2010. माइक्रोप्रैप्स के साथ डेटा पैटर्न की कल्पना करना। बोका रैटन, FL: CRC प्रेस। p.85।

अनुदान, R. 2019. डेटा विज़ुअलाइज़ेशन: चार्ट, मैप्स और इंटरएक्टिव ग्राफिक्स। बोका रैटन, FL: CRC प्रेस। p.52।

कोपोनन, जे। और हिल्डेन, जे। 2019। डेटा विज़ुअलाइज़ेशन हैंडबुक। एस्पू: ऑल्टो एआरटीएस बुक्स। पृ .101 देखें।

Kriebel, A. और Murray, E. 2018. #MakeoverMonday: हम एक बार में डेटा, एक चार्ट की कल्पना और विश्लेषण कैसे करें। होबोकेन, एनजे: जॉन विली। p.303।

रॉजियर, एनपी, ड्रोट्बूम, एम। और बॉर्न, पीई 2014। बेहतर आंकड़ों के लिए दस सरल नियम। PLOS कम्प्यूटेशनल बायोलॉजी 10 (9): e1003833। doi: 10.1371 / journal.pcbi.1003833 यहां लिंक करें

श्वाबिश, जे। 2017. बेहतर प्रस्तुतियाँ: ए गाइड फॉर स्कॉलर्स, रिसर्चर्स, एंड वोंक्स। न्यूयार्क, कोलंबिया विश्वविद्यालय प्रेस। P.98 देखें।

विकम, एच। 2016. ggplot2: डेटा विश्लेषण के लिए सुरुचिपूर्ण ग्राफिक्स। चम: स्प्रिंगर। पी .१.1५ देखें।


+1, अद्भुत, क्या कोई R या SAS फ़ंक्शन है जो इस प्रकार का चार्ट करने में सक्षम है? यह वास्तव में बहुत अच्छा है।
फोरकास्टर

मुझे सचमुच यह विचार पसंद है! Ggplot2 का उपयोग करके R में इसे प्लॉट करने के सर्वोत्तम तरीके के बारे में सोच रहे हैं। जवाब स्वीकार करने से पहले मैं थोड़ा इंतजार करूंगा, उम्मीद है कि यह ठीक है।

2
क्षमा करें, मुझे इस बारे में कोई जानकारी नहीं है कि एसएएस में कुछ भी कैसे किया जाए। निश्चित रूप से स्टाटा कुछ भी कर सकता है, आर भी उतना ही अच्छा या बेहतर कर सकता है, या इसलिए इसके उपयोगकर्ता मुझे बताते रहते हैं ....
निक कॉक्स

@ नाइकॉक्स एक समस्या नहीं है, मुझे यह पता चला, यह वास्तव में अच्छा लग रहा है और मेरे उद्देश्य के लिए एकदम सही है।

@ नाइकॉक्स, दो और संदर्भ हैं 1. डब्ल्यूएस क्लीवलैंड द्वारा रेखांकन डेटा के तत्व । एक नई किताब, 2. डेटा के साथ कहानी: कोल न्यूसबूमर कानाफिलिक द्वारा व्यावसायिक पेशेवरों के लिए एक डेटा विज़ुअलाइज़ेशन गाइड । इस पुस्तक (# 2) में एक केस स्टडी है। "स्पेगेटी ग्राफ से बचने के लिए रणनीतियाँ" नामक अध्याय।
फोरकास्टर

22

निक के जवाब के पूरक के रूप में, यहाँ कुछ आर कोड को नकली डेटा का उपयोग करके एक समान प्लॉट बनाने के लिए दिया गया है:

library(ggplot2)

get_df <- function(label="group A", n_obs=10, drift=runif(1)) {
    df <- data.frame(time=seq(1, n_obs), label=label)
    df$y <- df$time * drift + cumsum(rnorm(n_obs))
    return(df)
}
df_list <- lapply(sprintf("group %s", toupper(letters[1:9])),
                  function(label) { get_df(label) })
df <- do.call(rbind, df_list)
df$label2 <- df$label

p <- (ggplot(df, aes(x=time, y=y, group=label2)) +
      geom_line(size=0.9, alpha=0.8,
                data=df[, c("time", "y", "label2")], color="grey") +
      geom_line(size=1.1, color="black") +
      ylab("") +
      theme_bw() +
      theme(panel.border=element_blank()) +
      theme(strip.background=element_blank()) +
      facet_wrap(~ label))
p
ggsave("example_facet.png", p, width=10, height=8)

उदाहरण की साजिश


6

ggplot2आर में एक दृष्टिकोण का उपयोग करने के इच्छुक लोगों के लिए facetshadeपैकेज में फ़ंक्शन पर विचार करें extracat। यह एक सामान्य दृष्टिकोण प्रदान करता है, न कि केवल लाइन भूखंडों के लिए। यहाँ बिखराव के साथ एक उदाहरण है ( इस पृष्ठ के पैर से ):

data(olives, package="extracat")
library(scales)
fs1 <- facetshade(data = olives,
                  aes(x = palmitic, y = palmitoleic), f = .~Area)
fs1 + geom_point(colour = alpha("black", 0.05)) +
      geom_point(data = olives, colour = "red") +
      facet_wrap(f=~Area, nrow=3) + theme(legend.position="none")

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


EDIT: एड्रियन के नकली डेटासेट का उपयोग अपने पहले के उत्तर से:

library(extracat)
facetshade(df, aes(x=time, y=y), f = .~label, bg.all = FALSE, keep.orig = TRUE) +
           geom_line(aes(x=time, y=y, group=orig.label),colour = alpha(1,0.3)) +
           geom_line(data=df, aes(colour=label), size = 1.2) + xlab("") + ylab("")

एक और दृष्टिकोण दो अलग-अलग परतों को आकर्षित करना है, एक पृष्ठभूमि के लिए और एक हाइलाइट किए गए मामलों के लिए। चाल को फेसिंग वेरिएबल के बिना डेटासेट का उपयोग करके बैकग्राउंड लेयर खींचना है। जैतून का तेल डाटासेट के लिए कोड है:

data(olives, package="extracat")
ggplot(olives, aes(palmitic, palmitoleic)) + 
  facet_wrap(~Area, nrow=3) + 
  geom_point(data=olives %>% select(-Area), colour=alpha("black", 0.05)) + 
  geom_point(data=olives, colour="red") + 
  theme(legend.position="none")

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

@ स्मार्टिन वास्तव में यह है और वह भी एड्रियन का समाधान है। ध्यान दें कि वह दो समान लेबलिंग चर का उपयोग करता है ताकि एक को पृष्ठभूमि परत में गिरा दिया जा सके। कोडिंग विचार नीचे स्पष्ट रूप से संकेतन के साथ अधिक स्पष्ट है और अक्सर, ग्राफिक्स के सुरुचिपूर्ण स्वरूपण कोड के महत्वपूर्ण भागों को मुखौटा बना सकते हैं। ggplot(df %>% select(-label), aes(x=time, y=y, group=label2)) + geom_line(alpha=0.8, color="grey") + labs(y=NULL) + geom_line(data=df, color="red") + facet_wrap(~ label)
एंटनी अनविन

5

यहाँ एक समाधान Ch से प्रेरित है। 11.3, "टेक्सास हाउसिंग डेटा" पर अनुभाग, ggplot2 पर हैडली विकम की पुस्तक में । यहां मैं हर बार श्रृंखला के लिए एक रेखीय मॉडल फिट करता हूं, अवशिष्ट (जो मीन 0 के आसपास केंद्रित होता है) ले जाता हूं, और एक अलग रंग में एक सारांश रेखा खींचता हूं।

library(ggplot2)
library(dplyr)
#works with dplyr version 0.4.3.9000 from Github (hadley/dplyr@4f2d7f8), or higher

df1 <- as.data.frame(list(Var = structure(c(1L, 2L, 2L, 2L, 2L, 2L, 2L, 
                                 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 6L, 
                                 6L, 6L, 6L, 6L, 6L, 7L, 7L, 7L, 7L, 7L, 7L, 7L, 8L, 8L, 8L, 8L, 
                                 8L, 8L, 8L, 9L, 9L, 9L, 9L, 9L, 9L, 9L, 11L, 11L, 11L, 11L, 11L, 
                                 11L, 11L, 12L, 12L, 12L, 12L, 12L, 12L, 13L, 14L, 14L, 14L, 14L, 
                                 14L, 14L, 14L, 16L, 16L, 16L, 16L, 16L, 16L, 17L, 17L, 17L, 17L, 
                                 17L, 17L, 17L, 18L, 18L, 18L, 18L, 18L, 18L, 18L), .Label = c("A", 
                                                                                               "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", 
                                                                                               "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"), class = "factor"), 
               Year = c(2015L, 1991L, 1993L, 1996L, 2000L, 2004L, 2011L, 
                        2015L, 1991L, 1993L, 1996L, 2000L, 2004L, 2011L, 2015L, 1991L, 
                        1993L, 1996L, 2000L, 2004L, 2011L, 2015L, 1993L, 1996L, 2000L, 
                        2004L, 2011L, 2015L, 1991L, 1993L, 1996L, 2000L, 2004L, 2011L, 
                        2015L, 1991L, 1993L, 1996L, 2000L, 2004L, 2011L, 2015L, 1991L, 
                        1993L, 1996L, 2000L, 2004L, 2011L, 2015L, 1991L, 1993L, 1996L, 
                        2000L, 2004L, 2011L, 2015L, 1993L, 1996L, 2000L, 2004L, 2011L, 
                        2015L, 2015L, 1991L, 1993L, 1996L, 2000L, 2004L, 2011L, 2015L, 
                        1991L, 1993L, 1996L, 2000L, 2011L, 2015L, 1991L, 1993L, 1996L, 
                        2000L, 2004L, 2011L, 2015L, 1991L, 1993L, 1996L, 2000L, 2004L, 
                        2011L, 2015L), 
               Val = c(25.6, 22.93, 20.82, 24.1, 24.5, 29, 
                       25.55, 24.5, 24.52, 20.73, 25.8, 25.5, 29.5, 27.7, 25.1, 
                       25, 24.55, 26.75, 25, 30.5, 27.25, 25.1, 22.4, 27.07, 26, 
                       29, 27.2, 24.2, 23, 24.27, 27.68, 27, 30.5, 28.1, 24.9, 23.75, 
                       22.75, 27.25, 25, 29, 28.45, 24, 20.25, 17.07, 24.45, 25, 
                       28.5, 26.75, 24.9, 21.25, 20.65, 25.1, 24.5, 26.5, 25.35, 
                       23.5, 21.93, 26.5, 24.5, 29, 29.1, 26.4, 28.1, 23.75, 26.5, 
                       28.05, 27, 30.5, 25.65, 23.3, 23.25, 24.57, 26.07, 27.5, 
                       28.85, 27.7, 22, 23.43, 26.88, 27, 30.5, 29.25, 28.1, 23, 
                       23.8, 28.32, 27, 29.5, 29.15, 27.6)), 
               row.names = c(1L, 4L, 
                           5L, 6L, 7L, 8L, 9L, 10L, 13L, 14L, 15L, 16L, 17L, 18L, 19L, 20L, 
                           21L, 22L, 23L, 24L, 25L, 26L, 27L, 28L, 29L, 30L, 31L, 32L, 35L, 
                           36L, 37L, 38L, 39L, 40L, 41L, 44L, 45L, 46L, 47L, 48L, 49L, 50L, 
                           53L, 54L, 55L, 56L, 57L, 58L, 59L, 62L, 63L, 64L, 65L, 66L, 67L, 
                           68L, 69L, 70L, 71L, 72L, 73L, 74L, 75L, 78L, 79L, 80L, 81L, 82L, 
                           83L, 84L, 87L, 88L, 89L, 90L, 91L, 92L, 95L, 96L, 97L, 98L, 99L, 
                           100L, 101L, 104L, 105L, 106L, 107L, 108L, 109L, 110L), 
               na.action = structure(c(2L, 
                          3L, 11L, 12L, 33L, 34L, 42L, 43L, 51L, 52L, 60L, 61L, 76L, 77L, 
                          85L, 86L, 93L, 94L, 102L, 103L), 
                .Names = c("2", "3", "11", "12","33", "34", "42", "43", "51", "52", "60", 
                           "61", "76", "77", "85", "86", "93", "94", "102", "103"), class = "omit"), 
                class = "data.frame", .Names = c("Var","Year", "Val"))


df1 %>%
        group_by(Var) %>%
        do(mutate(.,resid = resid(lm(Val ~ Year, data=., na.action = na.exclude)))) %>%
        ggplot(aes(Year, resid)) +
        labs(y=paste0("Val "), x="Year") +
        geom_line(aes(group = Var), alpha = 1/5) +
        geom_line(stat = "summary", fun.y = "mean", colour = "red")

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


1
यहां मुख्य विचार यह प्रतीत होता है कि आप आंख और दिमाग की मदद के लिए किसी प्रकार का सारांश वक्र जोड़ सकते हैं। सहमत थे, लेकिन आप अपने जवाब में मूल इकाइयों और मूल्यों को छोड़ने के बजाय मतलब (या संदर्भ स्तर) 0 पर स्थानांतरित करने पर व्यापार बंद कर सकते थे। विषय-वस्तु के विशेषज्ञ और / या ग्राहक 24 या 28 या जो भी मान हैं, के संदर्भ में अच्छी तरह से सोच सकते हैं। स्वाभाविक रूप से यहां डेटा केवल चर्चा के लिए एक वाहन है, लेकिन बिंदु अत्यधिक सामान्य है।
निक कॉक्स
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.