估计的反函数不是连续的

时间:2017-07-04 14:03:26

标签: r inverse

我估计密度的cdf,长度为0.03,间隔为10k。虽然我的cdf非常流畅,但我对cdf的反转却根本不顺利。这里,长度1的间隔也用10k点评估。

请参阅:Estimated CDF& Estimated Inverse CDF

对于反向CDF,我使用:

x = seq(from = 0, to = 1, length = 10000) F_hat_inv_given_x = function(y){ uniroot(function(x){ F_hat_given_x(x)-y },interval=c(0.065, 0.095))$root } F_hat_inv_given_x = Vectorize(F_hat_inv_given_x)

将F_hat_given_x定义为:

F_hat_given_x = function(y) { integrate(f = f_hat_given_x, min(y_data), y)$value } F_hat_given_x <- Vectorize(F_hat_given_x)

其中f_hat_given_x是我的密度:

f_hat_given_x = function(y){ tapply(y, x = x_sample, FUN = f_hat, INDEX = 1:length(y)) }

这是给定样本的条件密度f(y | X = x)X = x_sample:

f_hat = function(x, y){ (sum(K(abs(x-x_data)/H_n) * (K(abs(y-y_data)/h_n)))) / (h_n * sum(K(abs(x-x_data)/H_n))) }

K是高斯核,h_n,H_n是通过npcdensbw计算的带宽,x_data和y_data是我给定的数据,我在其上评估条件密度f_hat(x,y)

任何想法为什么反函数不像单调那样单调递增应该?造成这种不准确的原因是什么?

0 个答案:

没有答案