从概念上讲,我理解短语“ PDF下的总面积为1”的含义。这应该意味着结果出现在可能性的总间隔中的机会是100%。
但我不能真正从“几何”的角度理解它。例如,如果在PDF中,x轴表示长度,那么如果x以毫米而不是公里来测量,曲线下方的总面积是否不会变大?
我总是尝试描绘如果函数展平为一条直线,曲线下方的区域将如何显示。对于任何PDF,该行的高度(在y轴上的位置)是否相同,或者它的值取决于定义该函数的x轴上的间隔?
从概念上讲,我理解短语“ PDF下的总面积为1”的含义。这应该意味着结果出现在可能性的总间隔中的机会是100%。
但我不能真正从“几何”的角度理解它。例如,如果在PDF中,x轴表示长度,那么如果x以毫米而不是公里来测量,曲线下方的总面积是否不会变大?
我总是尝试描绘如果函数展平为一条直线,曲线下方的区域将如何显示。对于任何PDF,该行的高度(在y轴上的位置)是否相同,或者它的值取决于定义该函数的x轴上的间隔?
Answers:
它可能会帮助您认识到垂直轴是作为概率密度测量的。因此,如果水平轴以km为单位,则垂直轴以概率密度“每km”测量。假设我们在这样的网格上绘制一个矩形元素,该元素宽5“ km”,高0.1“每km”(您可能更愿意将其写为“ km − 1 ”)。该矩形的面积为5 km x 0.1 km − 1 = 0.5。单位抵消,剩下的概率只有一半。
如果将水平单位更改为“米”,则必须将垂直单位更改为“每米”。矩形现在将为5000米宽,密度(高度)为每米0.0001。您仍有一半的可能性。相对于彼此,这两个图表在页面上看起来有多奇怪,您可能会感到不安(一个图表不必比另一个图表要宽得多或短吗?),但是当您实际绘制图表时,您可以使用任何东西缩放你喜欢的。看看下面,看看需要多少怪异。
您可能会发现在继续研究概率密度曲线之前考虑直方图会有所帮助。在许多方面,它们是相似的。直方图的垂直轴是频率密度[每单位],面积表示频率,这也是因为水平和垂直单位在相乘时会抵消。PDF曲线是直方图的一种连续形式,总频率等于1。
相对频率直方图是一个更接近的类比-我们说这种直方图已经“标准化”,因此面积元素现在代表原始数据集的比例,而不是原始频率,所有条形的总面积为1。现在,这些高度是相对频率密度[每单位]。如果相对频率直方图的条形沿着值从20 km到25 km(因此,条形的宽度为5 km)并且相对频率密度为每km 0.1,则该条形包含0.5比例的数据。这完全符合以下想法:从数据集中随机选择的项目有50%的概率位于该条形中。先前关于单位变化的影响的论点仍然适用:比较这两幅图的20 km至25 km条数据与20,000米至25,000米条数据的比例。您还可以通过算术确认两种情况下所有条形的面积总和为1。
我声称PDF是“直方图的一种连续版本”,这可能意味着什么?让我们一小条的概率密度曲线下,沿值在区间[ X ,X + δ X ],所以带是δ X宽,并且该曲线的高度是大致恒定的˚F (X )。我们可以绘制一个高度为f (x )的条形图表示躺在该带的概率值的近似。
我们如何找到和x = b之间的曲线下的面积?我们可以将该间隔细分为小条,并取各个条形的总和∑ f (x ),这将对应于躺在间隔的近似概率 [ 一,b ]。我们看到曲线和条形图未精确对齐,因此近似值存在误差。通过使 δ X为每个条小,我们填充更窄条,其间隔 Σ ˚F (X )提供了区域的更好的估计。
为了精确地计算面积,而不是假设是在每个带材,我们评估积分常数∫ b 一个 ˚F (X )d X,并且这对应于躺在间隔的真实概率[ 一,b ]。在整个曲线上积分得出的总面积(即总概率)为一,出于相同的原因,将相对频率直方图的所有条形的面积相加得出的总面积(即总比例)为一。积分本身就是一种求和的连续形式。
情节的R代码
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)
您已经获得了两个答案,其中Silverfish是一个很好的答案,但是我觉得这里的插图可能有用,因为您询问了几何形状并“想象”了自己的那些功能。
让我们从一个简单的伯努利分布示例开始:
由于这些值是离散的,因此没有“曲线”,只有两个点,但是想法很相似:如果您想知道总概率(曲线下的面积),则必须对两种可能结果的概率求和:
。因此,如果有点,则无论您“放大”多少都看不到它们,因为在任何给定点之间总会有无数个较小的点。因此,我们实际上有一条曲线-您可以想象它是由无限多个“点”组成的。您可能会问自己:如何计算无限大的概率之和..?在下面的图中,红色曲线是正常的PDF,黑框是从分布中得出的某些值的直方图。因此直方图将我们的分布简化为具有一定宽度的有限数量的“盒子”如果将这些框的高度乘以它们的宽度的总和,将得到曲线下的面积-或所有框的面积。我们在这里使用区域而不是点,因为每个框都是包装在框中的无数“点”的汇总。
0.010 0.028 0.094 0.198 0.260 0.400 0.404 0.292 0.166 0.092 0.044 0.010 0.002
。
您还询问了“平面”(均匀)分布:
小...这是一个复杂的情况,您可以想象它是抽象的。请注意,正如Ilmari Karonen在评论中注意到的那样,这是一个抽象的想法,实际上在实践中是不可能的(请参阅下面的评论)。如果使用这种分配作为先验,那将是不合适的先验。