Kolmogorov-Smirnov测试拉普拉斯分布R

时间:2016-10-05 18:37:56

标签: r kolmogorov-smirnov

我在R中有ks函数的问题。我有拉普拉斯分布:

ldes <- function(y, a) {
  if(y < 0.5) 1/a*log(2*y, 2) 
  else  1/a*log(2*(1-y), 2)
}
a <- 1
set.seed(1)
y = runif(1000, 0, 1)
ld <- ldes(y, a)

所以,我需要进行ks测试,但找不到任何关于应该在那里的第二个参数,比如:

ks.test(my_lnorm, **plnorm**, mean = -5, sd = 5)

用于Lognormal Destribution或:

ks.test(my_log, **plogis**, location = 2, scale = 3)

物流配送

感谢。

1 个答案:

答案 0 :(得分:2)

你可以尝试一些拉普拉斯分布的包,例如disclap(如果它满足我们的需要,否则一些连续模拟)。

library(disclap)
ks.test(ld, "pdisclap", 0.5) # choose the right value of parameter p (p=0.5 is arbitrary)

One-sample Kolmogorov-Smirnov test

data:  ld
D = 0.3333, p-value < 2.2e-16
alternative hypothesis: two-sided

从假设检验的结果可以看出,零假设(样本来自相同的人口分布)被拒绝。

y2 <- rdisclap(1000, p=0.5) # generate some simulated datapoints
plot(ecdf(ld), xlim = range(c(ld, y2))) # compare ecdfs
plot(ecdf(y2), add = TRUE, lty = "dashed")

enter image description here