我想计算R中两个概率分布的卷积,并需要一些帮助。为了简单起见,假设我有一个变量x,其正态分布的平均值为1.0,标准差为0.5,以及一个log-normal分布的平均值为1.5,标准差为0.75的变量y。我想确定z = x + y。我知道z的分布事先是未知的。
顺便说一下,我正在处理的真实世界示例需要将两个随机变量相加,这两个随机变量按照许多不同的分布进行分配。
有人知道如何通过卷积x和y的概率密度函数来相加两个随机变量吗?
我尝试生成n个正态分布的随机值(使用上述参数)并将它们添加到n个log-normally分布的随机值中。但是,我希望知道是否可以使用卷积方法代替。任何帮助都将不胜感激。
编辑
谢谢你们的答案。我定义了一个PDF,并尝试进行卷积积分,但R在积分步骤上出现问题。我的PDF是Log Pearson 3,如下所示
dlp3 <- function(x, a, b, g) {
p1 <- 1/(x*abs(b) * gamma(a))
p2 <- ((log(x)-g)/b)^(a-1)
p3 <- exp(-1* (log(x)-g) / b)
d <- p1 * p2 * p3
return(d)
}
f.m <- function(x) dlp3(x,3.2594,-0.18218,0.53441)
f.s <- function(x) dlp3(x,9.5645,-0.07676,1.184)
f.t <- function(z) integrate(function(x,z) f.s(z-x)*f.m(x),-Inf,Inf,z)$value
f.t <- Vectorize(f.t)
integrate(f.t, lower = 0, upper = 3.6)
R在最后一步抱怨,因为f.t函数是有界的,而我的积分限可能不正确。有没有什么解决办法?