计算 r 中 beta 分布下的断裂面积
Calculate Areas of breaks under a beta distribution in r
给定以下 beta 分布
x <- seq(0,1,length=100)
db <- dbeta(x, .25, .43)
ggplot() + geom_line(aes(x,db))+scale_x_continuous(breaks = seq(0,1,by=.1))
如何以 0.1 间隔找到 0 到 1 间断点下的区域。不是累积面积,只是特定休息时间的面积。例如,中断 0.2 到 0.3 将只包含该区域,而不包含之前的区域。
中断之间的面积是两个端点的累积面积之差。例如,0 到 0.1 之间的区域是
pbeta(0.1, 0.25,0.43) - pbeta(0, 0.25,0.43)
要获取所有区域,只需将其应用于休息列表
breaks = seq(0,1,by=.1)
sapply(1:10, function(i) pbeta(breaks[i+1], 0.25,0.43) - pbeta(breaks[i], 0.25,0.43))
这个问题G5w的回答比较好。一般来说,尽管您可以使用 integrate
来获取特定时间间隔的函数区域。例如,对于介于 0.2 和 0.3 之间的 dbeta
,您可以使用
integrate(dbeta, .2, .3, shape1=.25, shape2=.43)
0.05982106 with absolute error < 6.6e-16
为了从 0 到 1 的每个宽度为 0.1 的区间得到这个,把它放到一个 sapply
.
myAreas <- sapply(seq(0, .9, .1),
function(x) integrate(dbeta, x, x+.1, shape1=.25, shape2=.43)[[1]])
这会产生一个包含这些值的向量
并将结果与 G5W 的建议进行比较。
all.equal(pbeta(0.1, 0.25,0.43) - pbeta(0, 0.25,0.43), myAreas[1])
给定以下 beta 分布
x <- seq(0,1,length=100)
db <- dbeta(x, .25, .43)
ggplot() + geom_line(aes(x,db))+scale_x_continuous(breaks = seq(0,1,by=.1))
如何以 0.1 间隔找到 0 到 1 间断点下的区域。不是累积面积,只是特定休息时间的面积。例如,中断 0.2 到 0.3 将只包含该区域,而不包含之前的区域。
中断之间的面积是两个端点的累积面积之差。例如,0 到 0.1 之间的区域是
pbeta(0.1, 0.25,0.43) - pbeta(0, 0.25,0.43)
要获取所有区域,只需将其应用于休息列表
breaks = seq(0,1,by=.1)
sapply(1:10, function(i) pbeta(breaks[i+1], 0.25,0.43) - pbeta(breaks[i], 0.25,0.43))
这个问题G5w的回答比较好。一般来说,尽管您可以使用 integrate
来获取特定时间间隔的函数区域。例如,对于介于 0.2 和 0.3 之间的 dbeta
,您可以使用
integrate(dbeta, .2, .3, shape1=.25, shape2=.43)
0.05982106 with absolute error < 6.6e-16
为了从 0 到 1 的每个宽度为 0.1 的区间得到这个,把它放到一个 sapply
.
myAreas <- sapply(seq(0, .9, .1),
function(x) integrate(dbeta, x, x+.1, shape1=.25, shape2=.43)[[1]])
这会产生一个包含这些值的向量
并将结果与 G5W 的建议进行比较。
all.equal(pbeta(0.1, 0.25,0.43) - pbeta(0, 0.25,0.43), myAreas[1])