3

我对 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)

对于对数正态分布或:

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

物流配送

谢谢。

4

1 回答 1

2

您可以尝试一些用于 laplace 发行版的软件包,例如 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")

在此处输入图像描述

于 2016-10-05T19:02:48.300 回答