我在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)
物流配送
感谢。
答案 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")