Skip to content
Snippets Groups Projects
Commit e80a0a18 authored by Walmes Marques Zeviani's avatar Walmes Marques Zeviani
Browse files

Mais conteúdo para MC.

parent 66ac9f2b
No related branches found
No related tags found
No related merge requests found
#=======================================================================
# Testes de hipótese Monte Carlo.
#-----------------------------------------------------------------------
# Teste para independência de processo pontual.
plot(NULL, NULL, xlim = c(0, 1), ylim = c(0, 1), asp = 1)
lines(x = c(0, 1, 1, 0, 0), y = c(0, 0, 1, 1, 0))
plot(xy,
NULL,
xlim = c(0, 1),
ylim = c(0, 1),
asp = 1,
axes = FALSE,
ann = FALSE)
lines(x = c(0, 1, 1, 0, 0),
y = c(0, 0, 1, 1, 0))
# xy <- locator(n = 20, type = "p", pch = 19)
# dput(lapply(xy, round, digits = 3))
......@@ -21,10 +31,17 @@ xy <- structure(list(x = c(0.204, 0.186, 0.529, 0.529, 0.385, 0.579,
# Transforma a lista em matriz.
xy <- do.call(cbind, xy)
plot(xy, NULL, xlim = c(0, 1), ylim = c(0, 1), asp = 1)
lines(x = c(0, 1, 1, 0, 0), y = c(0, 0, 1, 1, 0))
# Calcula todas as distâncias (euclidianas).
plot(xy,
NULL,
xlim = c(0, 1),
ylim = c(0, 1),
asp = 1,
axes = FALSE,
ann = FALSE)
lines(x = c(0, 1, 1, 0, 0),
y = c(0, 0, 1, 1, 0))
# Calcula todas as distâncias (euclidianas) entre pontos.
d <- dist(xy)
d
......@@ -52,7 +69,7 @@ abline(v = m, col = 2)
2 * sum(M > m)/length(M)
#-----------------------------------------------------------------------
# Moficando a estatística de teste.
# ATTENTION: dados um tanto patológicos.
xy <- structure(list(x = c(0.088, 0.326, 0.577, 0.846, 0.857, 0.568,
0.306, 0.077, 0.077, 0.328, 0.597, 0.883,
......@@ -67,8 +84,51 @@ xy <- structure(list(x = c(0.088, 0.326, 0.577, 0.846, 0.857, 0.568,
# Transforma a lista em matriz.
xy <- do.call(cbind, xy)
plot(xy, NULL, xlim = c(0, 1), ylim = c(0, 1), asp = 1)
lines(x = c(0, 1, 1, 0, 0), y = c(0, 0, 1, 1, 0))
plot(xy,
NULL,
xlim = c(0, 1),
ylim = c(0, 1),
asp = 1,
axes = FALSE,
ann = FALSE)
lines(x = c(0, 1, 1, 0, 0),
y = c(0, 0, 1, 1, 0))
#-----------------------------------------------------------------------
# Modificando a estatística de teste 1.
# A soma das menores distâncias entre vizinhos mais próximos.
d <- dist(xy)
D <- as.matrix(d)
diag(D) <- Inf
apply(D, MARGIN = 2, FUN = min)
m <- sum(apply(D, MARGIN = 2, FUN = min))
# Número de pontos.
n <- nrow(xy)
# Geração de estatísticas por simulação do modelo assumido sob
# hipótese nula.
M <- replicate(9999, {
d <- dist(cbind(x = runif(n), y = runif(n)))
D <- as.matrix(d)
diag(D) <- Inf
sum(apply(D, MARGIN = 2, FUN = min))
})
# Concatena as estatísticas simuladas com a observada.
M <- c(m, M)
# Gráfico da distribuição acumulada empírica.
plot(ecdf(M))
abline(h = c(0.025, 0.975), lty = 2)
abline(v = m, col = 2)
# P-valor.
2 * sum(M > m)/length(M)
#-----------------------------------------------------------------------
# Moficando a estatística de teste 2.
# Todas as distância entre os pontos (a estatística de teste é um vetor
# e não um escalar).
......@@ -90,6 +150,9 @@ for (i in 2:ncol(D)) {
}
lines(ecdf(D[, 1]), cex = 0, col = 2, lwd = 2)
#=======================================================================
# Avaliação de métodos de amostragem ou delineamentos.
#-----------------------------------------------------------------------
# Amostragem por Conjuntos Ordenados.
......@@ -162,3 +225,23 @@ qqmath(~m1 + m2 + m3,
layout = c(NA, 1))
#-----------------------------------------------------------------------
# Criando um grid de rho.
rho_grid <- seq(0, 0.95, by = 0.05)
res <- lapply(rho_grid,
FUN = function(rho) {
replicate(500, rssur(m = 10, rho = rho))
})
str(res)
n <- length(res[[1]])
res <- do.call(c, res)
res <- data.frame(rho = rep(rho_grid, each = n), valor = res)
str(res)
densityplot(~valor | rho, data = res) +
layer(panel.abline(v = 0, lty = 2))
#-----------------------------------------------------------------------
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment