【问题标题】:Efficient Method to do Calculations on Joint Distributions in R在 R 中计算联合分布的有效方法
【发布时间】:2014-12-06 21:57:54
【问题描述】:

如果我有以下联合分布,其中第一行是 Y 的值,左侧第一列是 X 的值,那么计算 X 之间的协方差和相关性的最有效/最简洁的方法是什么和Y?

我正在考虑将每一行加载到一个新变量中,然后进行必要的计算,然后运行 ​​cov() 和 cor() 函数,但我知道必须有更好的方法吗?

谢谢!


|   |  14 | 22  | 30  | 40  | 65  |
|---|-----|-----|-----|-----|-----|
| 1 | .02 | .05 | .10 | .03 | .01 |
| 5 | .17 | .15 | .05 | .02 | .01 |
| 8 | .02 | .03 | .15 | .10 | .09 |

【问题讨论】:

  • 看看库(mvtnorm)和库(sos)

标签: r statistics distribution covariance correlation


【解决方案1】:

您绝对应该使用矩阵乘法来获得结果。以下可能不是有效的方法,但它以直接的方式使用公式。

# input data
yvec <- c(14, 22, 30, 40, 65)
xvec <- c(1, 5, 8)
jp   <- matrix(c(.02, .05, .10, .03, .01,
                 .17, .15, .05, .02, .01,
                 .02, .03, .15, .10, .09),
                 nrow=length(xvec), ncol=length(yvec), TRUE)

Ex  <- rowSums(jp) %*% xvec    ## E(X)
Ex2 <- rowSums(jp) %*% xvec^2  ## E(X^2)
Vx  <- Ex2 - (Ex)^2            ## Var(X)
Ey  <- colSums(jp) %*% yvec    ## E(Y)
Ey2 <- colSums(jp) %*% yvec^2  ## E(Y^2)
Vy  <- Ey2 - (Ey)^2            ## Var(Y)
Exy <- xvec %*% jp %*% yvec    ## E(XY)

(Cxy <- Exy - Ex*Ey)           ## covariance
(Rxy <- Cxy /sqrt(Vx * Vy))    ## correlation

【讨论】:

    猜你喜欢
    • 2023-04-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-23
    • 2013-11-13
    • 2010-11-18
    • 2017-09-10
    • 1970-01-01
    相关资源
    最近更新 更多