gpt4 book ai didi

r - 为什么我的数字不匹配,R mvtnorm 中的多元 t 分布

转载 作者:行者123 更新时间:2023-12-04 14:51:44 25 4
gpt4 key购买 nike

我试图为遵循 Genz 和 Bretz 的多元 t 分布编写 cdf 算法,R 中的引用包是 mvtnorm。

当我测试我的功能时,我发现我的数字不匹配。在以下示例中,根据 mvtnorm 帮助进行调整,多变量 t 随机变量具有独立分量。所以积分应该只是3个独立概率的乘积

> lower <- -1
> upper <- 3
> df <- 4
> corr <- diag(3)
> delta <- rep(0, 3)
> pmvt(lower=lower, upper=upper, delta=delta, df=df, corr=corr)
[1] 0.5300413
attr(,"error")
[1] 4.321136e-05
attr(,"msg")
[1] "Normal Completion"

报出的误差为4e-5,误差与独立概率的乘积相比
> (pt(upper, df) - pt(lower, df))**3
[1] 0.4988254



0.5300413 - 0.4988254 = 0.0312159



对于大约相同范围的各种示例,我自己的代码与 R mvtnorm 相比存在差异。

我主要是 R 的初学者。那么,我做错了什么或有什么问题?

(我没有在 R-help 邮件列表上注册,所以我在这里尝试。)

更新:正如 pchalasani 解释的那样,我的统计数据是错误的,我自己代码中的错误在一些辅助函数中,而不是在 t 分发代码中。
查看不相关并不意味着独立的一个好方法是查看条件分布。
以下是四分位数(以列变量为条件的分布)的独立二元随机变量(10000 个样本)的列频率 %*100。

二元不相关正态变量
([[26, 25, 24, 23],
[24, 23, 24, 25],
[24, 27, 24, 24],
[24, 23, 26, 25]])

双变量不相关 t 变量
([[29, 20, 22, 29],
[20, 31, 28, 21],
[20, 29, 29, 20],
[29, 18, 18, 29]])

第一列和最后一列的分布与中间列有很大不同。
(抱歉,没有 R 代码,因为我不知道如何用 R 快速做到这一点。)

最佳答案

对于联合非高斯分布的随机变量,零相关并不意味着独立!

让我详细说明一下:这里没有错误。缺陷在于您的假设是,当多元 Student-t 随机变量不相关时,它们也是独立的,这绝对不是这种情况:唯一没有相关性意味着独立的多元分布类别是 MV 高斯分布。

要查看共同遵循 MV Student-T 分布的两个不相关随机变量不是独立的,请考虑 n=2 的情况。 :

require(mvtnorm)
x <- rmvt(100000, sigma = diag(2), df=4, delta = rep(0,2) )

现在每列 x表示两个随机变量的实现。我们首先检查它们的相关性是否相当小:
> cor(x[,1], x[,2])
[1] -0.003378811

然而 x[,1]的平方的相关性和 x[,2]高达 30.4%,即绝对不为零,证明 x[,1]x[,2]不是统计独立的:
> cor(x[,1]^2, x[,2]^2)
[1] 0.3042684

关于r - 为什么我的数字不匹配,R mvtnorm 中的多元 t 分布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4576256/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com