当 CDF 接近 1 时评估风险函数?

机器算法验证 r 累积分布函数 冒险 计算统计
2022-04-07 15:23:55

我需要评估一个危险函数,其中分别是 pdf 和 cdf ,在许多值(以及参数的几个值)。在某些情况下,当我评估的某些值返回值,从而使无限大。h(t;θ)=f(t;θ)1F(t;θ)fFtθF(t;θ)1th

例如,在 R 中pweibull(100,1,1)返回1.

有什么技巧可以避免这个问题吗?

  • 我不确定我是否应该在 stackoverflow 上问这个问题,但由于这个问题与统计中广泛使用的函数有关,我认为交叉验证是一个更好的地方,因为有些人可能知道“经典”解决方案。
2个回答

如果问题是数值稳定性,您可以查看风险函数的日志:

log(h(t;θ))=log(f(t;θ))log(1F(t;θ))

您可以将log / log.p = TRUER 中的标志用于日志值,并将lower.tail标志用于获取值:log(1F(t;θ))

dweibull(100,1,1, log = T) # -100
pweibull(100, 1, 1, log.p = TRUE, lower.tail = FALSE) # -100

这给你一个估计:h(t;θ)=exp(100+100)=1


编辑:顺便说一句,当您有分布时,我相信这是一个,因此它具有恒定的危险函数。Weibull(1,1)Exponential(1)

对于基于参数分布的生存曲线,风险通常是参数的显式函数。例如,这个链接为不同的分布提供了几个危险函数。因此,当我们知道参数的值并想计算风险时,如本问题所述,最好的方法是直接使用风险函数,而不是通过 CDF 和 PDF。

例如,对于标准 Weibull 分布h(x)=γx(γ1)