边际密度X1X1鉴于X1+X2= dX1+X2=d在哪里X1X1和X2X2是 iid Weibull 吗?

机器算法验证 数理统计 条件概率 边际分布 威布尔分布
2022-03-23 19:20:39

在他们关于重尾分布的教程(第 23 页)中,Nair 等人。展示下图(取自同一作者的一本书的出版前章节):

Weibull 的条件分布

图为边际密度X1鉴于X1+X2=10, 在哪里X1X2是 iid Weibull 房车(形状为 2 或 0.5,作者未提供比例尺)。

不幸的是,我无法重现作者如何计算边际密度。根据我的互联网搜索,Weibull 变量的总和通常很难计算(参见Nadarajah S (2008))。

因此,我的问题是:有人能说明作者是如何计算边际密度的吗?X1, 鉴于X1+X2=d?


编辑:非常感谢@CarlosCampos 的解决方案和插图。我将他的 Matlab 代码移植到 R(在下面添加)。

library(RColorBrewer)

k <- 0.5
lambda <- 1
d <- 10

eps <- 0.001
vX <- seq(eps, d-eps, eps)
vK <- seq(0.4, 2, 0.4)

cols <- brewer.pal(length(vK), name = "Set1")

png("weibull_marginal.png", width = 7*1.1, height = 5*1.1, units = "in", res = 600, type = "cairo-png")
par(cex = 1.2, mar=c(2,2.1,0,0)+0.1)
plot(x = vX, y = rep(1, length(vX)), las = 1, type = "n", xlab = "", ylab = "", xlim = c(0, d), ylim = c(0, 1))
abline(h = 0)
for(i in seq_along(vK)) {

  k <- vK[i]
  p_x1_x2 <- (k/lambda)^2*(vX*(d - vX)/(lambda^2))^(k - 1)*exp(-(vX^k + (d - vX)^k)/lambda^k)
  aux <- sum(p_x1_x2*eps)
  p_x1_x2_norm <- p_x1_x2/aux
  lines(p_x1_x2_norm~vX, col = cols[i], lwd = 2)

}
par(cex = 1)
legend(x=8, y=1.03, legend = vK, col = cols, lwd = 2, box.lwd = 0, box.col = "white", bg = "white")
dev.off()

使用 R 再现图

1个回答

让我们应用贝叶斯定理:

f(X1|X1+X2=d)=f(X1+X2=d|X1)f(X1)f(X1+X2=d)=ctef(X2=dX1)f(X1)
代入 Weibull 分布的表达式:
f(X1|X1+X2=d)=cte(kλ)(dx1λ)k1e((dx1)/λ)k(kλ)(x1λ)k1e(x1/λ)k
为了0<x1<d, 否则f(x)=0 在哪里cte可以很容易地评估。我提供了一个 .m 代码来生成该图形。

在此处输入图像描述

.m 中的代码:

k = 0.5;
lambda = 1;
d = 10 

eps = 0.1;
vX = eps:eps:d-eps;

vK = 0.4:0.4:2;

figure(1)
for i=1:length(vK)
  k=vK(i);
  p_x1_x2 = (k/lambda)^2*(vX.*(d-vX)/(lambda^2)).^(k-1).*exp(-(vX.^k+(d-vX).^k)/lambda^k);
  aux = sum(p_x1_x2*eps);
  plot(vX, p_x1_x2/aux)
  hold on;
end;

要获得更准确的图形结果,请减小 eps 的值