Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- library(data.table)
- cvm.test <- function(x, y) {
- DT <- data.table(value = c(sort(x), sort(y)), id = rep(1:2, c(length(x), length(y))),
- rank = c(1:length(x), 1:length(y)))
- DT[ , overall_rank := rank(DT$value)]
- statDT <- DT[ , .(U = sum((rank - overall_rank)**2), N = .N), by = .(id)]
- prod_N <- product(statDT$N)
- sum(statDT$N * statDT$U) / (prod_N * nrow(DT)) - (4 * prod_N - 1) / 6 / nrow(DT)
- }
- mean(sapply(1:1e4, function(i){
- X <- rnorm(40, 4, 7)
- Y <- rnorm(20, 4, 7)
- cvm.test(X, Y) > 0.461
- }))
- # 0.0513
- mean(sapply(1:1e4, function(i){
- X <- rnorm(40, 4, 7)
- Y <- rnorm(20, 4, 10)
- cvm.test(X, Y) > 0.461
- }))
- # 0.0913
- mean(sapply(1:1e4, function(i){
- X <- rnorm(40, 4, 7)
- Y <- rnorm(20, 4, 14)
- cvm.test(X, Y) > 0.461
- }))
- # 0.2315
- mean(sapply(1:1e4, function(i){
- X <- rnorm(40, 4, 7)
- Y <- rnorm(20, 8, 7)
- cvm.test(X, Y) < 0.461
- }))
- # 0.4832
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement