rkdevine函数返回恒定零值模拟异常问题求助
kdevine包中rkdevine函数返回恒定零值模拟的异常问题
问题概述
使用kdevine包的rkdevine函数时出现异常:该函数用于基于vine-copula的kdevine密度估计器生成模拟值,但在不应返回零的场景下,输出了恒定的c(0, 0, 0)。此前该包及旧版R环境下可正常运行。
复现代码
# 1. 设置数据 x <- c(0.5150864, 0.1661704, 0.5138176, 0.5044893, 0.4984769, 0.8359263, 0.4838860, 0.4799104, 0.4800063, 0.5012104) y <- c(0.02299000, 0.03423000, 0.00649000, 0.01970000, 0.02184000, 0.01053000, 0.02399000, 0.02067000, 0.10918000, 0.04334681) z <- c(0.13505051, 0.06968379, 0.06484263, 0.08655820, 0.07044886, 0.08455797, 0.06206888, 0.07187104, 0.93282970, 0.07841944) # 2. 创建copula密度估计 k.den <- kdevine(x = cbind(x, y, z), xmin = c(0.01, 0, 0.04), xmax = c(0.99, 2, 2), method = "TLL2nn") # 3. 生成模拟 rkdevine(1, k.den)
运行上述代码后,rkdevine(1, k.den)返回c(0, 0, 0),与预期不符。
排查方向
- 检查拟合对象的有效性:打印
k.den查看内部参数,确认密度估计结果、xmin/xmax边界设置是否与数据分布匹配,尤其注意y、z的部分数据接近xmin,是否导致估计逻辑出现异常。 - 版本兼容性测试:回退到之前能正常运行的kdevine包版本或R版本,验证是否为版本更新引入的bug。
- 样本量影响:当前仅使用10条样本拟合,样本量过小可能导致Copula密度估计不稳定,尝试增加样本量后重新拟合并模拟。
内容的提问来源于stack exchange,提问作者Aguazz
相关产品推荐
相关产品推荐

