यह आपको यह महसूस करने में मदद कर सकता है कि ऊर्ध्वाधर अक्ष को संभाव्यता घनत्व के रूप में मापा जाता है । इसलिए यदि क्षैतिज अक्ष को किमी में मापा जाता है, तो ऊर्ध्वाधर अक्ष को "प्रति किमी" संभावना घनत्व के रूप में मापा जाता है। मान लीजिए कि हम ऐसे ग्रिड पर एक आयताकार तत्व खींचते हैं, जो 5 "किमी" चौड़ा और 0.1 "प्रति किमी" ऊंचा है (जिसे आप "किमी - 1 " के रूप में लिखना पसंद कर सकते हैं )। इस आयत का क्षेत्रफल 5 किमी x 0.1 किमी - 1 = 0.5 है। इकाइयाँ रद्द हो जाती हैं और हम केवल एक आधे की संभावना के साथ रह जाते हैं।−1−1
यदि आपने क्षैतिज इकाइयों को "मीटर" में बदल दिया है, तो आपको ऊर्ध्वाधर इकाइयों को "प्रति मीटर" में बदलना होगा। आयत अब 5000 मीटर चौड़ा होगा, और इसका घनत्व (ऊंचाई) 0.0001 प्रति मीटर होगा। आप अभी भी एक आधे की संभावना के साथ बचे हैं। आप इस बात से हैरान हो सकते हैं कि ये दोनों ग्राफ़ एक दूसरे की तुलना में पृष्ठ पर कितने अजीब दिखेंगे (किसी को एक दूसरे की तुलना में बहुत व्यापक और छोटा नहीं होना चाहिए?), लेकिन जब आप शारीरिक रूप से उन भूखंडों को खींच रहे हैं जो आप उपयोग कर सकते हैं जो भी हो? आपको पसंद है। देखने के लिए नीचे देखें कि किस तरह से कम विचित्रता की आवश्यकता है।
संभावना घनत्व घटता पर आगे बढ़ने से पहले आपको हिस्टोग्राम पर विचार करना उपयोगी हो सकता है। कई मायनों में वे अनुरूप हैं। हिस्टोग्राम की ऊर्ध्वाधर अक्ष आवृत्ति घनत्व है [प्रति इकाई]x और क्षेत्र बार-बार आवृत्तियों का प्रतिनिधित्व करते हैं, क्योंकि क्षैतिज और ऊर्ध्वाधर इकाइयां गुणा पर रद्द हो जाती हैं। पीडीएफ वक्र एक हिस्टोग्राम के निरंतर संस्करण का एक प्रकार है, जिसमें कुल आवृत्ति एक के बराबर है।
सम समरूप सादृश्य एक सापेक्ष आवृत्ति हिस्टोग्राम है - हम कहते हैं कि इस तरह के हिस्टोग्राम को "सामान्यीकृत" किया गया है, जिससे कि क्षेत्र तत्व अब कच्चे आवृत्तियों के बजाय आपके मूल डेटा सेट के अनुपात का प्रतिनिधित्व करते हैं , और सभी सलाखों का कुल क्षेत्र एक है। ऊंचाइयों अब कर रहे हैं सापेक्ष आवृत्ति घनत्व [प्रति इकाई]x । यदि एक रिश्तेदार आवृत्ति हिस्टोग्राम में एक पट्टी होती है जो x के साथ चलती हैxमान 20 किमी से 25 किमी तक (इसलिए बार की चौड़ाई 5 किमी है) और 0.1 किमी प्रति किमी के सापेक्ष आवृत्ति घनत्व है, तो उस बार में डेटा का 0.5 अनुपात होता है। यह इस विचार से बिल्कुल मेल खाता है कि आपके डेटा सेट से एक बेतरतीब ढंग से चुनी गई वस्तु में उस पट्टी में झूठ बोलने की 50% संभावना है। इकाइयों में परिवर्तनों के प्रभाव के बारे में पिछला तर्क अभी भी लागू होता है: इन दो भूखंडों के लिए 20,000 किमी से 25,000 मीटर की दूरी पर 20 किमी में 25 किमी बार में पड़े आंकड़ों के अनुपात की तुलना करें। आप अंकगणितीय रूप से यह भी पुष्टि कर सकते हैं कि सभी पट्टियों के क्षेत्र दोनों मामलों में एक के बराबर हैं।
मेरे दावे से मेरा क्या मतलब हो सकता है कि पीडीएफ "हिस्टोग्राम के निरंतर संस्करण का एक प्रकार है"? के, एक प्रायिकता घनत्व वक्र के तहत एक छोटी सी पट्टी ले साथ चलो अंतराल में मूल्यों [ एक्स , एक्स + δ x ] , इसलिए पट्टी है δ एक्स विस्तृत, और वक्र की ऊंचाई लगभग स्थिर है च ( एक्स ) । हम उस ऊंचाई की पट्टी खींच सकते हैं, जिसका क्षेत्रफल f ( x )x[x,x+δx]δxf(x) उस पट्टी में झूठ बोलने की अनुमानित संभावना का प्रतिनिधित्व करता है।f(x)δx
और x = b के बीच की वक्र के नीचे का क्षेत्र हमें कैसे मिल सकता है ? हम छोटे अंतरालों में उस अंतराल को घटा सकते हैं और सलाखों के क्षेत्रों का योग ले सकते हैं, ( f ( x )x=ax=b , जो अंतराल [ ए , बी ] में झूठ बोलने की अनुमानित संभावना के अनुरूप होगा। हम देखते हैं कि वक्र और बार ठीक से संरेखित नहीं होते हैं, इसलिए हमारे सन्निकटन में एक त्रुटि है। करके δ एक्स छोटे और प्रत्येक बार के लिए छोटे, हम अधिक से संकरा सलाखों, जिसका साथ अंतराल को भरने Σ च ( एक्स )∑f(x)δx[a,b]δx क्षेत्र का एक बेहतर अनुमान प्रदान करता है।∑f(x)δx
बल्कि यह सोचते हैं की तुलना में ठीक क्षेत्रफल की गणना करने के लिए, प्रत्येक पट्टी, हम अभिन्न मूल्यांकन भर में लगातार था ∫ ख एक च ( एक्स ) घ एक्स , और अंतराल में झूठ बोल की सच्ची संभावना को यह मेल खाती है [ एक , ख ] । पूरे वक्र पर एकीकरण एक कुल क्षेत्र (यानी कुल संभावना) को एक ही देता है, उसी कारण से जो एक रिश्तेदार आवृत्ति हिस्टोग्राम के सभी बार के क्षेत्रों को समेटता है, एक के कुल क्षेत्र (यानी कुल अनुपात) देता है। एकीकरण स्वयं एक राशि लेने के निरंतर संस्करण का एक प्रकार है।f(x)∫baf(x)dx[a,b]
भूखंडों के लिए आर कोड
require(ggplot2)
require(scales)
require(gridExtra)
# Code for the PDF plots with bars underneath could be easily readapted
# Relative frequency histograms
x.df <- data.frame(km=c(rep(12.5, 1), rep(17.5, 2), rep(22.5, 5), rep(27.5, 2)))
x.df$metres <- x.df$km * 1000
km.plot <- ggplot(x.df, aes(x=km, y=..density..)) +
stat_bin(origin=10, binwidth=5, fill="steelblue", colour="black") +
xlab("Distance in km") + ylab("Relative frequency density per km") +
scale_y_continuous(minor_breaks = seq(0, 0.1, by=0.005))
metres.plot <- ggplot(x.df, aes(x=metres, y=..density..)) +
stat_bin(origin=10000, binwidth=5000, fill="steelblue", colour="black") +
xlab("Distance in metres") + ylab("Relative frequency density per metre") +
scale_x_continuous(labels = comma) +
scale_y_continuous(minor_breaks = seq(0, 0.0001, by=0.000005), labels=comma)
grid.arrange(km.plot, metres.plot, ncol=2)
x11()
# Probability density functions
x.df <- data.frame(x=seq(0, 1, by=0.001))
cutoffs <- seq(0.2, 0.5, by=0.1) # for bars
barHeights <- c(0, dbeta(cutoffs[1:(length(cutoffs)-1)], 2, 2), 0) # uses left of bar
x.df$pdf <- dbeta(x.df$x, 2, 2)
x.df$bar <- findInterval(x.df$x, cutoffs) + 1 # start at 1, first plotted bar is 2
x.df$barHeight <- barHeights[x.df$bar]
x.df$lastBar <- ifelse(x.df$bar == max(x.df$bar)-1, 1, 0) # last plotted bar only
x.df$lastBarHeight <- ifelse(x.df$lastBar == 1, x.df$barHeight, 0)
x.df$integral <- ifelse(x.df$bar %in% 2:(max(x.df$bar)-1), 1, 0) # all plotted bars
x.df$integralHeight <- ifelse(x.df$integral == 1, x.df$pdf, 0)
cutoffsNarrow <- seq(0.2, 0.5, by=0.025) # for the narrow bars
barHeightsNarrow <- c(0, dbeta(cutoffsNarrow[1:(length(cutoffsNarrow)-1)], 2, 2), 0) # uses left of bar
x.df$barNarrow <- findInterval(x.df$x, cutoffsNarrow) + 1 # start at 1, first plotted bar is 2
x.df$barHeightNarrow <- barHeightsNarrow[x.df$barNarrow]
pdf.plot <- ggplot(x.df, aes(x=x, y=pdf)) +
geom_area(fill="lightsteelblue", colour="black", size=.8) +
ylab("probability density") +
theme(panel.grid = element_blank(),
axis.text.x = element_text(colour="black", size=16))
pdf.lastBar.plot <- pdf.plot +
scale_x_continuous(breaks=tail(cutoffs, 2), labels=expression(x, x+delta*x)) +
geom_area(aes(x=x, y=lastBarHeight, group=lastBar), fill="steelblue", colour="black", size=.8) +
annotate("text", x=0.73, y=0.22, size=6, label=paste("P(paste(x<=X)<=x+delta*x)%~~%f(x)*delta*x"), parse=TRUE)
pdf.bars.plot <- pdf.plot +
scale_x_continuous(breaks=cutoffs[c(1, length(cutoffs))], labels=c("a", "b")) +
geom_area(aes(x=x, y=barHeight, group=bar), fill="steelblue", colour="black", size=.8) +
annotate("text", x=0.73, y=0.22, size=6, label=paste("P(paste(a<=X)<=b)%~~%sum(f(x)*delta*x)"), parse=TRUE)
pdf.barsNarrow.plot <- pdf.plot +
scale_x_continuous(breaks=cutoffsNarrow[c(1, length(cutoffsNarrow))], labels=c("a", "b")) +
geom_area(aes(x=x, y=barHeightNarrow, group=barNarrow), fill="steelblue", colour="black", size=.8) +
annotate("text", x=0.73, y=0.22, size=6, label=paste("P(paste(a<=X)<=b)%~~%sum(f(x)*delta*x)"), parse=TRUE)
pdf.integral.plot <- pdf.plot +
scale_x_continuous(breaks=cutoffs[c(1, length(cutoffs))], labels=c("a", "b")) +
geom_area(aes(x=x, y=integralHeight, group=integral), fill="steelblue", colour="black", size=.8) +
annotate("text", x=0.73, y=0.22, size=6, label=paste("P(paste(a<=X)<=b)==integral(f(x)*dx,a,b)"), parse=TRUE)
grid.arrange(pdf.lastBar.plot, pdf.bars.plot, pdf.barsNarrow.plot, pdf.integral.plot, ncol=2)