1 votos

Distribución de la muestra

Tengo el siguiente código Estoy tratando de averiguar la distribución de la que se está muestreando y necesito ser capaz de escribir una función para generalizar el muestreo de esta distn para cualquier N.

set.seed(12032345)
N <- 300
x <- runif(150, 0,1)
x <- c(x, rnorm(150, 0, 1))
x <- sample(x, N, replace = FALSE)

Mi enfoque: A mí me parece que tenemos una mezcla 50:50 de U(0,1) y N(0,1) y entonces sólo muestreo de ese vector pero como N es par tendría sentido generalizarlo simulando variables aleatorias uniformes y determinando en qué mitad del intervalo (0,1) está y muestreando de U(0,1) si la variante está por debajo de 0,5 y muestreando de N(0,1) si está por encima?

3voto

Dipstick Puntos 4869

Como señala Estudiante T Su código de simulación es erróneo. Lo que hace tu código es generar exactamente 150 muestras de la distribución normal estándar y exactamente 150 muestras de la distribución uniforme estándar y luego barajarlas.

set.seed(12032345)

N <- 1e5
x <- c(runif(N/2, 0,1), rnorm(N/2, 0, 1))
y <- sample(x, N, replace = FALSE)

all.equal(sort(x), sort(y))
## [1] TRUE

por lo que el sample paso hace nada pero cambiando el orden de las muestras. Así que las muestras generadas de esta manera serían "demasiado buenas para ser verdad" para una mezcla, ya que la proporción de mezcla no variaría.

Si quiere tomar muestras de la mezcla de las distribuciones normal estándar y uniforme estándar que aparecen con proporciones de mezcla iguales, también debe variar las proporciones de mezcla de la muestra, es decir, tomar muestras de cada una de las distribuciones con igual probabilidad

res <- numeric(N)

for (i in 1:N) {
  if (runif(1) > 0.5)
    res[i] <- runif(1)
  else
    res[i] <- rnorm(1)
}

Una forma más complicada es observar que si la proporción de la mezcla es $p$ y el tamaño de la muestra es $N$ entonces el número de valores extraídos de la distribución uniforme seguirá la distribución binomial

k <- rbinom(1, N, 0.5)
res2 <- sample(c(runif(k, 0,1), rnorm(N-k, 0, 1)))

En el ejemplo anterior sample también es inútil, ya que sólo baraja los valores.

Véase también el muestreo de una mezcla de dos distribuciones Gamma hilo de rosca.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X