Hola David,

Puedes hacer como ya comentaron en las otras respuestas. Pero por si sirve de utilidad, pego al final parte de un código que empleo para ilustrar la repetición de contrastes en simulación.

Está con un bucle y guardando en vectores, si se quisiera modificar para obtener una matriz y emplear lapply (o sapply), tendrías que crear una función del tipo: fun.test <- function(muestra) unlist(test(muestra)[c('statistic','p.value')]) reemplazando test por el contraste que te interesa (y suponiendo que devuelve el objeto estándar de clase htest). sapply(muestras, fun.test) podría ser lo que buscas (suponiendo que muestras es una lista con los datos en cada componente). Para que conste, para ciertas cosas yo no soy reacio a emplear bucles en lugar de applies...

    Un saludo, Rubén.


# ------------------------------------------------------------------
# Repetición de contrastes
# ------------------------------------------------------------------

# ------------------------------------------------------------------
# Valores iniciales
set.seed(1) # Fijar semilla para reproductibilidad
n <- 500
nsim <- 1000
estadistico <- numeric(nsim)
pvalor <- numeric(nsim)


# ------------------------------------------------------------------
# Realizar contrastes
for(isim in 1:nsim) {
  u <- runif(n)
  tmp <- ks.test(u, "punif",  min=0, max=1)
  estadistico[isim] <- tmp$statistic
  pvalor[isim] <- tmp$p.value
}
#Probar a cambiar por u <- rnorm(n) y tmp <- ks.test(u, "pnorm", mean = mean(u), sd = sd(u))


# Mantengo algo del resto del código por si resulta de interés...

# ------------------------------------------------------------------
# Proporción de rechazos
cat("\nProporción de rechazos al 1% =", mean(pvalor < 0.01), "\n")
cat("Proporción de rechazos al 5% =", mean(pvalor < 0.01), "\n")
cat("Proporción de rechazos al 10% =", mean(pvalor < 0.01), "\n")


# ------------------------------------------------------------------
# Análisis del estadístico contraste

# Histograma
hist(estadistico, freq=FALSE)

#...

# ------------------------------------------------------------------
# Análisis de los p-valores
# (si todo 'correcto' con distribución uniforme)

# Histograma
hist(pvalor, freq=FALSE)
curve(dunif(x,0,1), add=TRUE)   #abline(h=1)

# Test de Kolmogorov-Smirnov
ks.test(pvalor, "punif",  min=0, max=1)

_______________________________________________
R-help-es mailing list
R-help-es@r-project.org
https://stat.ethz.ch/mailman/listinfo/r-help-es

Responder a