R编程语言中是否存在直接计算概率积分变换(PIT)的包或命令?

问题描述 投票:0回答:1

我有四组随机数据样本,由四个相关随机变量 U1、U2、U3、U4 生成 我想对其应用联结拟合。为此,我需要找到概率积分变换(PIT)。一种方法是我可以使用数据估计每个随机变量的边际 CDF,然后使用概率积分变换 (PIT) 找到均匀分布在区间 [0, 1] 上的边际。

但是 R 编程语言中有一个统一的命令可以做到这一点吗?我相信 R 确实有这样的函数,由

isodistrreg
包中的概率积分变换(PIT)给出。但我无法得到它的论据。

pit(预测,y,随机化= TRUE,种子= NULL) 为什么需要同时给出预测和数值向量“y”,为什么我不能只输入生成的随机数据,即“y”,它会给出概率积分变换(PIT)?

我是否失去了一些东西,我的理解差距在哪里?

PS:在没有统一命令的情况下,我使用这种方法:

Step1:从数据中找到 CDF 我正在使用 ecdf 函数。

Step2:生成[0,1]范围内的均匀随机数

Step3:现在我必须对生成的均匀随机样本执行 CDF 的逆操作,因此我使用分位数函数。但我希望在生成的 CDF 上使用此分位数函数,即从 eCDF 生成的数据而不是原始数据,因为原始数据丢失以及 NaN 条目,并且它给了我错误,Quantile.default(matrixdata[, 1) 中的错误], unigf) :如果“na.rm”为 FALSE,则不允许缺失值和 NaN 我知道我可以设置 na.rm=True,但想了解其他选项。

r probability quantile empirical-distribution copula
1个回答
0
投票

您需要执行三个初始步骤才能使用联结数据。

  • 首先,您可以估计边距并将其转换为统一的边距。我们称之为两阶段估计方法。或者,使用

    pobs
    copula
    包中的
    VineCopula
    函数使用概率积分变换来变换边距。

  • 将 copula 模型拟合到 copula 数据(来自步骤 1)

  • 然后,可以使用逆向方法返回原始数据。

如果您需要进一步帮助,请提供完整的 R 代码。

© www.soinside.com 2019 - 2024. All rights reserved.