R EVMIX将pdf转换为统一边缘

时间:2015-03-31 22:16:48

标签: uniform

我试图将分布转换为伪均匀分布。使用spd R包,它很容易,它按预期工作。

 library(spd)
 x <- c(rnorm(100,-1,0.7),rnorm(100,3,1))
 fit<-spdfit(x,upper=0.9,lower=0.1,tailfit="GPD", kernelfit="epanech")
 uniformX = pspd(x,fit) 

我想概括极值建模以包括阈值不确定性。所以我使用了evmix包。

 library(evmix) 
 x <- c(rnorm(100,-1,0.7),rnorm(100,3,1))
 fit = fgkg(x, phiul = FALSE, phiur = FALSE, std.err = FALSE)
 pgkg(x,fit$lambda, fit$ul, fit$sigmaul, fit$xil, fit$phiul, fit$ur, 
 fit$sigmaur, fit$xir, fit$phiur)

我搞砸了某个地方。

1 个答案:

答案 0 :(得分:1)

请查看pgkg函数的帮助:

help(pgkg)

给出了语法:

pgkg(q, kerncentres, lambda = NULL, ul = as.vector(quantile(kerncentres,
  0.1)), sigmaul = sqrt(6 * var(kerncentres))/pi, xil = 0, phiul = TRUE,
  ur = as.vector(quantile(kerncentres, 0.9)), sigmaur = sqrt(6 *
  var(kerncentres))/pi, xir = 0, phiur = TRUE, bw = NULL,
  kernel = "gaussian", lower.tail = TRUE)

您错过了内核中心(数据),这是内核密度估算器总是需要的。这是更正后的代码:

library(evmix) 
x <- c(rnorm(100,-1,0.7),rnorm(100,3,1))
fit = fgkg(x, phiul = FALSE, phiur = FALSE, std.err = FALSE)
prob = pgkg(x, x, fit$lambda, fit$ul, fit$sigmaul, fit$xil, fit$phiul, 
fit$ur, fit$sigmaur, fit$xir, fit$phiur)
hist(prob) % now uniform as expected