我有一个两个变量X,Y的联合概率质量函数,像这样
如何计算R中的协方差?我创建了两个向量x,y并将它们输入cov(),但我得到了错误的结果。我该怎么做?提前感谢和快乐的编码!
mjqavswn1#
由于SO是一个编码论坛,我将把数学/统计细节留给您。下面是R中的实现。1.我们首先注意X和Y的样本空间
# For G G <- 0:3; # For R R <- 0:2;
1.联合概率质量函数由以下矩阵给出
joint_pmf <- matrix( c(4/84, 12/84, 4/84, 18/84, 24/84, 3/84, 12/84, 6/84, 0, 1/84, 0, 0), ncol = 3, byrow = T);
1.我们计算人口平均值
# For G mu_G <- rowSums(joint_pmf) %*% G; # For R mu_R <- colSums(joint_pmf) %*% R;
1.我们可以利用定理Cov(X, Y) = E[XY] - E[X]E[Y]来计算协方差
Cov(X, Y) = E[XY] - E[X]E[Y]
cov_GR <- G %*% joint_pmf %*% R - mu_G * mu_R; # [,1] #[1,] -0.1666667
其中我们使用了E[G] = mu_G和E[R] = mu_R是各自的总体均值的事实。
E[G] = mu_G
E[R] = mu_R
yhuiod9q2#
g <- 0:3 # values of the r.v. G r <- 0:2 # values of the r.v. R gr <- outer(g, r) # all possible values of product of pairs from G x R f_GR <- matrix( c(4/84, 12/84, 4/84, 18/84, 24/84, 3/84, 12/84, 6/84, 0, 1/84, 0, 0), ncol = 3, byrow = T) # Joint PMF f_GR(.) f_G <- rowSums(f_GR) # marginal PMF f_G(.) f_R <- colSums(f_GR) # marginal PMF f_R(.) E_G <- sum(f_G*g) # E[G] = sum(f_G(g)*g) E_R <- sum(f_R*r) # E[R] = sum(f_R(r)*r) E_GR <- sum(gr*f_GR) # E[GR] = sum(f_GR(g*r)*g*r) covar <- E_GR - E_G*E_R # cov(G, R) = E[GR] - E[G]E[R] covar # [1] -0.1666667
2条答案
按热度按时间mjqavswn1#
由于SO是一个编码论坛,我将把数学/统计细节留给您。下面是R中的实现。
1.我们首先注意X和Y的样本空间
1.联合概率质量函数由以下矩阵给出
1.我们计算人口平均值
1.我们可以利用定理
Cov(X, Y) = E[XY] - E[X]E[Y]
来计算协方差其中我们使用了
E[G] = mu_G
和E[R] = mu_R
是各自的总体均值的事实。yhuiod9q2#