我有一个矩阵形式的联合 PMF。如何使用 R 求 $P(N > G)$?
I have a joint PMF in matrix form. How to use R to find $P(N > G)$?
我刚开始学习 R,我正在尝试在 R 中进行一些涉及联合 PMF 的计算。
以下矩阵包含联合 PMF $p_{NG}(n,g)$:
(pNG <- matrix(c(16, 0, 0, 0, 0, 8, 8, 0, 0, 0, 4, 8, 4,
0, 0, 2, 6, 6, 2, 0, 1, 4, 6, 4, 1)/80,
ncol = 5, nrow = 5, byrow = TRUE))
colnames(pNG) <- rownames(pNG) <- 0:4
$N$和$G$的边际PMFs求得如下:
(pN <- rowSums(pNG))
(pG <- colSums(pNG))
求$N$的期望值和方差如下:
(EN <- sum(0:4 * pN))
(VarN <- sum((0:4 - EN)^2 * pN))
$N$在$G = 0,1,2,3,4$的条件PMF如下:
(pNgG <- sweep(pNG, 2, pG, "/"))
给定$G$$N$的期望值如下:
(ENgG <- colSums(0:4 * pNgG))
给定$G$$N$的方差计算如下:
(VarNgG <- colSums(outer(0:4, ENgG, "-")^2 * pNgG))
说了这么多,我想找到 $P(N > G)$。但是,我不确定如何执行此操作。我在想这里有一个与矩阵的对角线(上或下)有关的模式,因为这是 $i > j$ 或 $j > i$ 的地方;在对角线上,我们有 $i = j$..
因此您需要将矩阵中行号大于列号的所有单元格相加。这是 "lower triangular" 子矩阵,您可以使用 R 的 lower.tri()
函数访问它:
sum(pXY[lower.tri(pXY)])
您可以使用 upper.tri()
相反。 (并且 diag()
如果您需要对角线,其中行号等于列号。)
我刚开始学习 R,我正在尝试在 R 中进行一些涉及联合 PMF 的计算。
以下矩阵包含联合 PMF $p_{NG}(n,g)$:
(pNG <- matrix(c(16, 0, 0, 0, 0, 8, 8, 0, 0, 0, 4, 8, 4,
0, 0, 2, 6, 6, 2, 0, 1, 4, 6, 4, 1)/80,
ncol = 5, nrow = 5, byrow = TRUE))
colnames(pNG) <- rownames(pNG) <- 0:4
$N$和$G$的边际PMFs求得如下:
(pN <- rowSums(pNG))
(pG <- colSums(pNG))
求$N$的期望值和方差如下:
(EN <- sum(0:4 * pN))
(VarN <- sum((0:4 - EN)^2 * pN))
$N$在$G = 0,1,2,3,4$的条件PMF如下:
(pNgG <- sweep(pNG, 2, pG, "/"))
给定$G$$N$的期望值如下:
(ENgG <- colSums(0:4 * pNgG))
给定$G$$N$的方差计算如下:
(VarNgG <- colSums(outer(0:4, ENgG, "-")^2 * pNgG))
说了这么多,我想找到 $P(N > G)$。但是,我不确定如何执行此操作。我在想这里有一个与矩阵的对角线(上或下)有关的模式,因为这是 $i > j$ 或 $j > i$ 的地方;在对角线上,我们有 $i = j$..
因此您需要将矩阵中行号大于列号的所有单元格相加。这是 "lower triangular" 子矩阵,您可以使用 R 的 lower.tri()
函数访问它:
sum(pXY[lower.tri(pXY)])
您可以使用 upper.tri()
相反。 (并且 diag()
如果您需要对角线,其中行号等于列号。)