Podemos encontrar diferentes métodos de remuestreo , o llamados métodos de " simulación ", que dependen del remuestreo o barajamiento de las muestras. Puede haber diferencias de opinión con respecto a la terminología adecuada, pero la siguiente discusión intenta generalizar y simplificar lo que está disponible en la literatura apropiada:
Los métodos de remuestreo se utilizan para (1) estimar la precisión / exactitud de las estadísticas de la muestra mediante el uso de un subconjunto de datos (por ejemplo, Jackknifing) o dibujar al azar con el reemplazo de un conjunto de puntos de datos (por ejemplo, bootstrapping) (2) Intercambiar etiquetas en los puntos de datos cuando se realiza la significancia pruebas ( pruebas de permutación, también llamadas pruebas exactas, pruebas de aleatorización o pruebas de aleatorización) (3) Validación de modelos mediante subconjuntos aleatorios (bootstrapping, validación cruzada) (ver wikipedia: métodos de remuestreo )
ARRANQUE
" Bootstrapping es un método estadístico para estimar la distribución de muestreo de un estimador mediante muestreo con reemplazo de la muestra original". El método asigna medidas de precisión (definidas en términos de sesgo , varianza , intervalos de confianza , error de predicción o alguna otra medida) a las estimaciones de muestra.
La idea básica de bootstrapping es que la inferencia sobre una población a partir de datos de muestra ( muestra → población ) se puede modelar volviendo a muestrear los datos de la muestra y realizando inferencia en (remuestreo → muestra). Como la población es desconocida, el verdadero error en una estadística de muestra contra su valor de población es incognoscible. En los ejemplos de bootstrap, la "población" es de hecho la muestra, y esto se conoce; por lo tanto, la calidad de la inferencia de la muestra de datos → muestra 'verdadera' es medible ". ver wikipedia
Yvar <- c(8,9,10,13,12, 14,18,12,8,9, 1,3,2,3,4)
#To generate a single bootstrap sample
sample(Yvar, replace = TRUE)
#generate 1000 bootstrap samples
boot <-list()
for (i in 1:1000)
boot[[i]] <- sample(Yvar,replace=TRUE)
En problemas univariantes, generalmente es aceptable volver a muestrear las observaciones individuales con reemplazo ("remuestreo de casos"). Aquí volvemos a muestrear los datos con reemplazo, y el tamaño de la muestra debe ser igual al tamaño del conjunto de datos original.
En problemas de regresión, el remuestreo de casos se refiere al esquema simple de remuestreo de casos individuales: a menudo filas de un conjunto de datos en problemas de regresión, las variables explicativas a menudo son fijas, o al menos se observan con más control que la variable de respuesta. Además, el rango de las variables explicativas define la información disponible de ellas. Por lo tanto, volver a muestrear casos significa que cada muestra de bootstrap perderá algo de información (ver Wikipedia ). Por lo tanto, será lógico muestrear filas de datos en lugar de solo Yvar
.
Yvar <- c(8,9,10,13,12, 14,18,12,8,9, 1,3,2,3,4)
Xvar <- c(rep("A", 5), rep("B", 5), rep("C", 5))
mydf <- data.frame (Yvar, Xvar)
boot.samples <- list()
for(i in 1:10) {
b.samples.cases <- sample(length(Xvar), length(Xvar), replace=TRUE)
b.mydf <- mydf[b.samples.cases,]
boot.samples[[i]] <- b.mydf
}
str(boot.samples)
boot.samples[1]
Puede ver que algunos casos se repiten a medida que tomamos muestras con reemplazo.
" Bootstrap paramétrico: se ajusta un modelo paramétrico a los datos, a menudo con la máxima probabilidad, y se extraen muestras de números aleatorios de este modelo ajustado . Por lo general, la muestra extraída tiene el mismo tamaño de muestra que los datos originales. Luego, la cantidad o la estimación , de interés se calcula a partir de estos datos. Este proceso de muestreo se repite muchas veces como para otros métodos de arranque. El uso de un modelo paramétrico en la etapa de muestreo de la metodología de arranque lleva a procedimientos que son diferentes de los obtenidos al aplicar la teoría estadística básica para deducir el mismo modelo "(ver Wikipedia ). Lo siguiente es bootstrap paramétrico con suposición de distribución normal con parámetros de media y desviación estándar.
Yvar <- c(8,9,10,13,12, 14,18,12,8,9, 1,3,2,3,4)
# parameters for Yvar
mean.y <- mean(Yvar)
sd.y <- sd(Yvar)
#To generate a single bootstrap sample with assumed normal distribution (mean, sd)
rnorm(length(Yvar), mean.y, sd.y)
#generate 1000 bootstrap samples
boot <-list()
for (i in 1:1000)
boot[[i]] <- rnorm(length(Yvar), mean.y, sd.y)
Existen otras variantes de bootstrap, consulte la página de wikipedia o cualquier buen libro de estadísticas sobre remuestreo.
JACKNIFE
"El estimador de jackknife de un parámetro se encuentra omitiendo sistemáticamente cada observación de un conjunto de datos y calculando la estimación y luego encontrando el promedio de estos cálculos. Dada una muestra de tamaño N, la estimación de jackknife se encuentra agregando las estimaciones de cada N − 1
estimación en la muestra ". ver: wikipedia A continuación se muestra cómo usar la navaja Yvar
.
jackdf <- list()
jack <- numeric(length(Yvar)-1)
for (i in 1:length (Yvar)){
for (j in 1:length(Yvar)){
if(j < i){
jack[j] <- Yvar[j]
} else if(j > i) {
jack[j-1] <- Yvar[j]
}
}
jackdf[[i]] <- jack
}
jackdf
"El bootstrap regular y la navaja de bolsillo, estiman la variabilidad de una estadística a partir de la variabilidad de esa estadística entre submuestras, en lugar de suposiciones paramétricas . aproximación de la misma. Ambas producen resultados numéricos similares, por lo que cada una puede verse como una aproximación a la otra ". Ver esta pregunta en Bootstrap vs Jacknife.
PRUEBAS DE ALEATORIZACIÓN
"En las pruebas paramétricas, tomamos muestras al azar de una o más poblaciones. Hacemos ciertos supuestos sobre esas poblaciones, más comúnmente que normalmente se distribuyen con variaciones iguales. Establecemos una hipótesis nula que se enmarca en términos de parámetros, a menudo de la forma m1 -m2 = 0. Usamos nuestras estadísticas de muestra como estimaciones de los parámetros de población correspondientes, y calculamos un estadístico de prueba (como en la prueba) .Por ejemplo: en la prueba t de Student - para las diferencias de medias cuando las variaciones son desconocidas, pero se consideran ser igual. La hipótesis de interés es que H0: m1 = m2
. Una de las hipótesis alternativas se plantearía como:HA: m1 < m2
. Dadas dos muestras extraídas de las poblaciones 1 y 2, suponiendo que estas son poblaciones normalmente distribuidas con variaciones iguales, y que las muestras se extrajeron de forma independiente y al azar de cada población, entonces se puede elaborar una estadística cuya distribución se conozca para probar H0
.
Una forma de evitar estos supuestos de distribución ha sido el enfoque que ahora se llama estadísticas no paramétricas, de orden de rango, de rango y sin distribución. Estas estadísticas libres de distribución generalmente son criticadas por ser menos "eficientes" que la prueba análoga basada en suponer que las poblaciones están distribuidas normalmente.
Otro enfoque alternativo es el enfoque de aleatorización : "proceso de asignación aleatoria de rangos a observaciones independientemente del conocimiento que se tenga de la muestra a la que pertenece una observación. Una prueba de aleatorización utiliza dicho procedimiento, pero lo hace operando las observaciones en lugar de la articulación clasificación de las observaciones. Por esta razón, la distribución de una estadística análoga (la suma de las observaciones en una muestra) no se puede tabular fácilmente, aunque es teóricamente posible enumerar dicha distribución "( ver )
Las pruebas de aleatorización difieren de las pruebas paramétricas en casi todos los aspectos. (1) No hay requisito de que tengamos muestras aleatorias de una o más poblaciones; de hecho, generalmente no hemos tomado muestras al azar. (2) Raramente pensamos en términos de las poblaciones de las que provienen los datos, y no hay necesidad de asumir nada sobre la normalidad o la homocedasticidad (3) Nuestra hipótesis nula no tiene nada que ver con los parámetros, sino que está redactada de manera bastante vaga, ya que, por ejemplo, la hipótesis de que el tratamiento no tiene ningún efecto sobre el rendimiento de los participantes. (4) Debido a que no estamos interesados en las poblaciones, no estamos interesados en estimar (o incluso probar) las características de esas poblaciones (5) Calculamos algunos tipo de estadística de prueba, sin embargo, no comparamos esa estadística con las distribuciones en tablas. En lugar, lo comparamos con los resultados que obtenemos cuando aleatorizamos repetidamente los datos entre los grupos y calculamos la estadística correspondiente para cada aleatorización. (6) Incluso más que las pruebas paramétricas, las pruebas de aleatorización enfatizan la importancia de la asignación aleatoria de los participantes a los tratamientos ".ver .
El tipo de prueba de aleatorización que es muy popular es la prueba de permutación. Si nuestro tamaño de muestra es 12 y 5, la permutación total posible es C(12,5) = 792
. Si nuestros tamaños de muestra fueran 10 y 15, más de 3.2 millones de arreglos habrían sido posibles. Este es un desafío informático: ¿qué entonces? Muestra . Cuando el universo de posibles arreglos es demasiado grande para enumerar, ¿por qué no muestrear arreglos de este universo de forma independiente y aleatoria? La distribución del estadístico de prueba en esta serie de muestras se puede tabular, calcular su media y varianza, y estimar la tasa de error asociada con una prueba de hipótesis.
PRUEBA DE PERMUTACION
Según wikipedia, "una prueba de permutación (también llamada prueba de aleatorización , prueba de aleatorización o prueba exacta ) es un tipo de prueba de significación estadística en la que la distribución del estadístico de prueba bajo la hipótesis nula se obtiene calculando todos los valores posibles del estadístico de prueba bajo la reordenación de las etiquetas en los puntos de datos observados. Existen pruebas de permutación para cualquier estadístico de prueba, independientemente de si se conoce o no su distribución. Por lo tanto, uno siempre es libre de elegir el estadístico que mejor discrimina entre hipótesis y alternativas. lo que minimiza las pérdidas ".
La diferencia entre permutación y bootstrap es que la muestra de bootstraps con reemplazo y la muestra de permutaciones sin reemplazo . En cualquier caso, el orden de tiempo de las observaciones se pierde y, por lo tanto, se pierde la agrupación de volatilidad , lo que garantiza que las muestras estén bajo la hipótesis nula de que no hay agrupación de volatilidad.
Las permutaciones siempre tienen las mismas observaciones, por lo que se parecen más a los datos originales que a las muestras de bootstrap. La expectativa es que la prueba de permutación debería ser más sensible que una prueba de arranque. Las permutaciones destruyen la agrupación de volatilidad pero no agregan ninguna otra variabilidad .
Consulte la pregunta sobre permutación frente a bootstrapping: "La prueba de permutación es mejor para probar hipótesis y el bootstrapping es mejor para estimar intervalos de confianza ".
Entonces, para realizar la permutación en este caso, solo podemos cambiar replace = FALSE
en el ejemplo de arranque anterior.
Yvar <- c(8,9,10,13,12, 14,18,12,8,9, 1,3,2,3,4)
#generate 1000 bootstrap samples
permutes <-list()
for (i in 1:1000)
permutes[[i]] <- sample(Yvar,replace=FALSE)
En el caso de más de una variable, solo elegir las filas y reorganizar el orden no hará ninguna diferencia, ya que los datos seguirán siendo los mismos. Entonces reorganizamos la variable y. Algo que has hecho, pero no creo que necesitemos una doble reorganización de ambos x
y y variables
(como lo has hecho).
Yvar <- c(8,9,10,13,12, 14,18,12,8,9, 1,3,2,3,4)
Xvar <- c(rep("A", 5), rep("B", 5), rep("C", 5))
mydf <- data.frame (Yvar, Xvar)
permt.samples <- list()
for(i in 1:10) {
t.yvar <- Yvar[ sample(length(Yvar), length(Yvar), replace=FALSE) ]
b.df <- data.frame (Xvar, t.yvar)
permt.samples[[i]] <- b.df
}
str(permt.samples)
permt.samples[1]
MÉTODOS DE MONTE CARLO
"Los métodos de Monte Carlo (o experimentos de Monte Carlo) son una amplia clase de algoritmos computacionales que se basan en muestreo aleatorio repetido para obtener resultados numéricos; por lo general, se ejecutan simulaciones muchas veces para obtener la distribución de una entidad probabilística desconocida. El nombre viene desde la semejanza de la técnica hasta el acto de jugar y registrar resultados en un casino de juego real ". ver Wikipedia
"En las estadísticas aplicadas, los métodos de Monte Carlo se usan generalmente para dos propósitos:
(1) Comparar estadísticas competitivas para muestras pequeñas en condiciones de datos realistas. Aunque el error tipo I y las propiedades de potencia de las estadísticas se pueden calcular para datos extraídos de distribuciones teóricas clásicas (p. Ej., Curva normal, distribución de Cauchy) para condiciones asintóticas (es decir, tamaño de muestra infinito y efecto de tratamiento infinitesimalmente pequeño), los datos reales a menudo lo hacen No tener tales distribuciones.
(2) Proporcionar implementaciones de pruebas de hipótesis que sean más eficientes que las pruebas exactas, como las pruebas de permutación (que a menudo son imposibles de calcular), mientras que son más precisas que los valores críticos para las distribuciones asintóticas.
Los métodos de Monte Carlo también son un compromiso entre la aleatorización aproximada y las pruebas de permutación . Una prueba de aleatorización aproximada se basa en un subconjunto específico de todas las permutaciones (lo que implica una limpieza potencialmente enorme de las cuales se han considerado las permutaciones). El enfoque de Monte Carlo se basa en un número específico de permutaciones extraídas al azar ( intercambiando una pérdida menor de precisión si se extrae una permutación dos veces, o con mayor frecuencia, por la eficacia de no tener que rastrear qué permutaciones ya se han seleccionado ) ".
Tanto la prueba de MC como la de permutación se denominan a veces colectivamente pruebas de aleatorización . La diferencia está en MC nos muestra las muestras de permutación, en lugar usando todas las combinaciones posibles ver .
VALIDACIÓN CRUZADA
La idea más allá de la validación cruzada es que los modelos deben probarse con datos que no se utilizaron para ajustarse al modelo. La validación cruzada se usa con mayor frecuencia en el contexto de la predicción .
"La validación cruzada es un método estadístico para validar un modelo predictivo. Los subconjuntos de datos se guardan para su uso como conjuntos de validación ; un modelo se ajusta a los datos restantes (un conjunto de entrenamiento) y se utiliza para predecir el conjunto de validación. La calidad de las predicciones en los conjuntos de validación proporciona una medida general de la precisión de las predicciones.
Una forma de validación cruzada deja de lado una sola observación a la vez; Esto es similar a la navaja. Otra, la validación cruzada K-fold, divide los datos en K subconjuntos; cada uno se presenta a su vez como el conjunto de validación ". ver Wikipedia . La validación cruzada generalmente se realiza con datos cuantitativos. Puede convertir su cualitativo (datos factoriales) a cuantitativo de alguna manera para ajustar un modelo lineal y probar este modelo. Lo siguiente es simple estrategia de retención donde el 50% de los datos se usa para la predicción del modelo mientras que el resto se usa para las pruebas. Supongamos Xvar
que también es variable cuantitativa.
Yvar <- c(8,9,10,13,12, 14,18,12,8,9, 1,3,2,3,4)
Xvar <- c(rep(1, 5), rep(2, 5), rep(3, 5))
mydf <- data.frame (Yvar, Xvar)
training.id <- sample(1:nrow(mydf), round(nrow(mydf)/2,0), replace = FALSE)
test.id <- setdiff(1:nrow(mydf), training.id)
# training dataset
mydf.train <- mydf[training.id]
#testing dataset
mydf.test <- mydf[test.id]
A diferencia de las pruebas de arranque y permutación, el conjunto de datos de validación cruzada para el entrenamiento y las pruebas es diferente. La siguiente figura muestra un resumen de remuestreo en diferentes métodos.
Espero que esto ayude un poco.