Paso a Paso: La función de distribución empírica acumulada en R

  1. Educación
  2. Matemáticas
  3. Estadísticas
  4. Paso a Paso: La función de distribución empírica acumulada en R

Libro Relacionado

Por Joseph Schmuller

La función de distribución acumulativa empírica (ecdf) está estrechamente relacionada con la frecuencia acumulativa. Sin embargo, en lugar de mostrar la frecuencia en un intervalo, el PECF muestra la proporción de puntuaciones que son inferiores o iguales a cada puntuación.

En la base R, es fácil trazar el PDF:

parcela(ecdf(Cars93$Precio), xlab = “Precio”, ylab = “Fn(Precio)”)

Esto produce la siguiente figura.

La F mayúscula en el eje y es una convención de notación para una distribución acumulativa. La Fn significa, en efecto, “función acumulativa” a diferencia de f o fn, que sólo significa “función”. (La etiqueta del eje y también podría ser Percentile(Price).)

Mira de cerca la trama. Cuando los puntos consecutivos están muy separados (como los dos de arriba a la derecha), puedes ver una línea horizontal que se extiende hacia la derecha a partir de un punto. (Una línea se extiende desde cada punto, pero las líneas no son visibles cuando los puntos están agrupados.) Piense en esta línea como un “paso” y luego el siguiente punto es un paso más alto que el anterior. ¿Cuánto más alto? Eso sería 1/N, donde N es el número de puntuaciones en la muestra. En el caso de Cars93, sería 1/93, que se redondea a 0,011.

¿Por qué se llama función de distribución acumulativa “empírica”? Algo empírico se basa en observaciones, como datos de muestras. ¿Es posible tener una función de distribución acumulativa no empírica (cdf)? Sí, y ese es el cdf de la población de la que proviene la muestra. Un uso importante del ecdf es como herramienta para estimar la población cdf.

Por lo tanto, el documento de diseño ecológico trazado es una estimación del documento de diseño comunitario para la población, y la estimación se basa en los datos de la muestra. Para crear una estimación, se asigna una probabilidad a cada punto y luego se suman las probabilidades, punto por punto, desde el valor mínimo hasta el valor máximo. Esto produce la probabilidad acumulada para cada punto. La probabilidad asignada a un valor de la muestra es la estimación de la proporción de veces que ese valor ocurre en la población. ¿Cuál es la estimación? Esto es el 1/N mencionado anteriormente para cada punto – .011, para esta muestra. Para cualquier valor dado, esa podría no ser la proporción exacta de la población. Es la mejor estimación de la muestra.

Puede que prefiera usar ggplot() para visualizar el ecdf. Debido a que usted basa el gráfico en un vector (Cars93$Precio), la fuente de datos es NULL:

ggplot(NULL, aes(x=Cars93$Precio))

De acuerdo con la naturaleza paso a paso de esta función, el gráfico consiste en pasos, y la función geom es geom_step. La estadística que localiza cada paso en el gráfico es el ecdf, así que eso es

geom_step(stat=”ecdf”)

y etiquetar los ejes:

labs(x= “Price X $1,000”,y = “Fn(Price)”)

Poniendo esas tres líneas de código juntas

ggplot(NULL, aes(x=Cars93$Precio)) +

geom_step(stat=”ecdf”) +

labs(x= “Price X $1,000”,y = “Fn(Price)”)

te da esta cifra:

Para poner un poco de dinamismo en el gráfico, agregue una línea vertical discontinua en cada cuartil. Antes de añadir la función geom para una línea vertical, ponga la información del cuartil en un vector:

precio.q <-cuantile(Cars93$Precio)

Y ahora

geom_vline(aes(xintercept=price.q),linetype = “dashed”)

añade las líneas verticales. El mapeo estético establece la intersección x de cada línea en un valor de cuartil.

Así que estas líneas de código

ggplot(NULL, aes(x=Cars93$Precio)) +

geom_step(stat=”ecdf”) +

labs(x= “Price X $1,000”,y = “Fn(Price)”) +

geom_vline(aes(xintercept=price.q),linetype = “dashed”)

resulta en la siguiente figura.

Un buen toque final es poner los valores del cuartil en el eje x. La función scale_x_continuous() lo consigue. Utiliza un argumento llamado breaks (que establece la ubicación de los valores a colocar en el eje) y otro llamado labels (que coloca los valores en esas ubicaciones). Aquí es donde ese vector price.q es útil:

scale_x_continuous(breaks = precio.q, etiquetas = precio.q)

Y aquí está el código R que crea la siguiente figura:

ggplot(NULL, aes(x=Cars93$Precio)) +

geom_step(stat=”ecdf”) +

labs(x= “Price X $1,000”,y = “Fn(Price)”) +

geom_vline(aes(xintercept=price.q),linetype = “dashed”)+

scale_x_continuous(breaks = precio.q, etiquetas = precio.q)

  • Add Your Comment