Deamer反卷积的输出不是密度吗?

机器算法验证 r 密度函数 卷积 不可缺少的
2022-04-10 05:47:02

我有一个模型 Y= X+e 并且需要 X 的密度。deamer 包对 X 的密度进行反卷积,但是如果我使用 simpsons 规则来整合这个密度,我得到的值大于 1。下面的例子给了我积分为 1.173454 的密度:

library(deamer) # deconvolution
library(Bolstad) # simpson rule

# The Y's I have are inv-Weibull distributed and the error's are inv-normal distributed.
# As the deconvolution of those would take a long time, i used runif in my example
# to simplify the problem. The following uncommented lines are what I like to deconvolve:

#library(actuar) # for rinvweibull
#y <- rinvweibull(30000, shape=5.53861156, scale=488)/1000
#y <- y[y<1.5]
#e <- 1/rnorm(30000, mean=0.0023853421, sd=0.0004784688)/1000
#e <- e[e<1.5]
#decon <- deamerSE(y, error=e, from=-0.1, to=0.3)

y <- runif(1000, min = 0.8, max=1.2)
e <- runif(1000, min = 0.1, max=0.5)
decon <- deamerSE(y, error=e, from=0.4, to=1)
plot(decon)

# following line gives me integral of density (with simpsons rule)
sintegral(decon$supp, decon$f)$value

我不确定这是否只是一个估计错误,或者我是否应该考虑缩小密度以使积分密度为 1:

# Downscaling
yValsScaled <- decon$f/area
    plot(decon$supp, yValsScaled, type="l")
(areaScaled <- sintegral(decon$supp, yValsScaled)$value)

你怎么看?

顺便说一句:如果你在deamerSE函数中使用更大的间隔和fromto参数,集成密度会更大(因为密度的周期性)。通常我认为使用 deamerSE 我会得到一个积分(从 -inf 到 inf)大约为 1 的密度。因此我认为使用较小的间隔对密度进行积分(例如,在 deamerSE 函数中使用from=0.4to=1 )应该给我一个积分小于 1 的密度。但正如你所看到的,它没有。所以我比较困惑。

1个回答

看来你真的是在考验我的图书馆!!deamer 的输出是对密度的估计

  1. 尽管从理论上讲,任何 np 密度估计(无论是否使用反卷积)都可以确保结果估计积分为 1(通过使用本身就是密度的内核),但是在任何算法中(不是提到数值积分本身)。因此,您不能期望找到一个正好 =1 的积分。考虑到样本量和您提出的非常奇怪的问题,这里 1.17 是合理的。

  2. 您可以测试 deamer 示例 - 仅用于检查 -integrate(predict, lower, upper, obj=est)用于任何名为“est”的 deamer 对象并定义“lower”和“upper”集成边界。你会发现根据我的经验,估计值在 0.96 和 1.1 之间。顺便说一下,集成()是内置的并且非常可靠!

  3. 您提出的问题非常尴尬:用这种测量噪声对两个制服进行反卷积是非常不寻常的,应该在参数方法下考虑。

  4. 您的代码不会给未观察到的变量添加噪音。这是一个更正的示例,具有“合理”的信噪比:

    x <- runif(2000, min = 0, max=1) 
    e <- runif(2000, min = - 0.1, max=0.1) 
    y <- x + e 
    err <- runif(1000, min = -0.1, max=0.1) 
    decon <- deamerSE(y, error=err, from=-1, to=2) 
    plot(decon)
    integrate(predict,-1,2,obj=decon)
    

这个简单的例子实际上产生了 0.999 的积分……还不错!祝你好运!朱利安·施蒂内曼