【问题标题】:Why I cannot integrate around zero from a distribution in R?为什么我不能从 R 的分布中积分为零?
【发布时间】:2018-10-15 02:28:24
【问题描述】:

我有一个分布函数,我需要通过一个系数对其进行风险调整。这种风险调整需要标准化,以确保结果也是 PDF。举个简单的例子,假设我们的第一个 PDF 是普通的:

Qpdf <- function(r) dnorm(r , 0 ,1)

那我有这个风险调整:

RRA <- 0.7
norINTEG <- function(r)   Qpdf(r) * r^(RRA) 
a <- integrate( norINTEG ,  -Inf , Inf )[[1]] 
realPDF <- function(r)  norINTEG(r) / a

但是积分 a 和结果 realPDF 无法处理此错误:

Error in integrate(norINTEG, -Inf, Inf) : non-finite function value

我尝试了像 (-2,2) 这样的非有限间隔,但仍然无法正常工作。

我不明白问题出在哪里。

【问题讨论】:

  • 您的函数没有为负值定义。要计算 norINTEG(-0.5),您需要计算 (-0.5)^0.7,但这会返回 NaN

标签: r integration distribution


【解决方案1】:

问题在于 norINTEG 函数。对于 r 的负值,它是未定义的。 (正如 G5W 所指出的)

主要问题在于 r^RRA。当 r 为负数时,例如 (-1)^0.7,没有为分数中的偶数分母定义,即 (-1)^(7/10)。此外,当您处理 pdf 时,您也需要此值是非负数。

假设您正在寻找对称 pdf。一种解决方法是在使用分数取幂之前将其转换为非负数:

# (-1)^0.7 = (-1)^70/100 = ((-1)^70)^(1/100)

norINTEG <- function(r)   Qpdf(r) * ((r)^70)^(1/100)
x = seq(-4,4,0.001)
plot(x, norINTEG(x))

有关详细信息,请查看以下帖子: 1.Exponentiation basics 2.fraction exponent to negative number

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-02-25
    • 1970-01-01
    • 1970-01-01
    • 2019-09-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-01
    相关资源
    最近更新 更多