Cómo calcular la media, la mediana, la moda, el desarrollo estándar a partir de la distribución

9

¿Cómo calcular la media, la varianza, la mediana, la desviación estándar y el modo de distribución? Si genero números al azar que forman la distribución normal, he especificado la media como m=24.2desviación estándar como sd=2.2:

> dist = rnorm(n=1000, m=24.2, sd=2.2)

Entonces puedo hacer lo siguiente:

Media:

> mean(dist)
[1] 24.17485

Diferencia:

> var(dist)
[1] 4.863573

Mediana:

> median(dist)
[1] 24.12578

Desviación Estándar:

> sqrt(var(dist))
[1] 2.205351

Modo aka Modus (tomado de aquí ):

> names(sort(-table(dist)))[1]
[1] "17.5788181686221"
  1. ¿Es esta toda la magia, o hay algo más que no me di cuenta?
  2. ¿Puedo de alguna manera visualizar mi distribución normal en forma de campana con líneas verticales que representan (media, mediana ...)?
  3. ¿Qué dicen esos atributos sobre la distribución?

PD: el código está en R

Wakan Tanka
fuente
No está claro qué quiere decir con su pregunta 1. La pregunta 3 parece demasiado amplia, ya que uno podría escribir mucho sobre cada una. ¿Podría revisar las páginas de wikipedia sobre la media, la mediana, la desviación estándar y el modo, y luego preguntar algo más específico?
Glen_b: reinstala a Monica el
Además, su título habla de una "distribución", pero el texto de su cuerpo parece referirse a una muestra . ¿Debería su título referirse a una muestra?
Glen_b -Reinstate Monica
@Glen_b por 1st Quiero decir que si los métodos que he publicado están bien para calcular los parámetros (media, varianza ...) para la distribución o algo más o de alguna manera diferente, ¿debería usarse? 3º No me di cuenta de que es demasiado amplio, esperaba una respuesta como: si la mediana es mayor que la media, entonces sus datos ... Con respecto al retitulado, tal vez esté bien, de hecho, estaba trabajando con una distribución normal o ¿estoy equivocado?
Wakan Tanka
Lo siento, pero no puedo seguir tu comentario allí en absoluto.
Glen_b -Reinstate Monica
No necesita bin una variable continua antes de poder estimar su modo. Ver stats.stackexchange.com/questions/176112/… para discusión. (Debería evitar evitar el binning ya que depende de elecciones arbitrarias de ancho y origen del bin.)
Nick Cox

Respuestas:

10

Primero un comentario general sobre el modo:

Usted debe no utilizar este enfoque para obtener el modo de (al menos en teoría) de datos distribuidos de forma continua; es poco probable que tenga valores repetidos (a menos que tenga muestras realmente enormes, sería un milagro menor, e incluso entonces varios problemas numéricos podrían hacer que se comporte de maneras inesperadas), y generalmente obtendrá el valor mínimo que camino. Sería una forma de encontrar uno de los modos globales en datos discretos o categóricos, pero probablemente no lo haría de esa manera incluso entonces. Aquí hay varios otros enfoques para obtener el modo de datos discretos o categóricos:

x = rpois(30,12.3)

tail(sort(table(x)),1)   #1: category and count; if multimodal this only gives one

w=table(x); w[max(w)==w] #2: category and count; this can find more than one mode

which.max(table(x))      #3: category and *position in table*; only finds one mode

Si solo desea el valor y no el recuento o la posición, names()lo obtendrá de esos

Para identificar modos (puede haber más de un modo local) para datos continuos de una manera básica, puede agrupar los datos (como con un histograma) o puede suavizarlos (usando, densitypor ejemplo) e intentar encontrar uno o más modos de esa manera.

Menos contenedores de histograma harán que su estimación de un modo esté menos sujeta al ruido, pero la ubicación no se fijará mejor que el ancho del contenedor (es decir, solo obtendrá un intervalo). Más contenedores pueden permitir más precisión dentro de un contenedor, pero el ruido puede hacer que salte a través de muchos de ellos; un pequeño cambio en el origen del contenedor o el ancho del contenedor puede producir cambios relativamente grandes en el modo. (Existe la misma compensación de sesgo-varianza en todas las estadísticas).

Tenga en cuenta que summaryle dará varias estadísticas básicas.

[Debe usar en sd(x)lugar de sqrt(var(x)); es más claro para una cosa]

-

Con respecto a q.2 sí; ciertamente podría mostrar la media y la mediana de los datos en una pantalla, como un histograma o un diagrama de caja. Vea aquí algunos ejemplos y códigos que debería poder generalizar a los casos que necesite.

Glen_b -Reinstate a Monica
fuente
Gracias, ¿puede explicar la diferencia entre encuadernación y suavizado?
Wakan Tanka
@Wakan ¿Qué es vinculante?
Glen_b -Reinstate Monica
1
Extremadamente útil. Muy sorprendente, el Proyecto R no convirtió esto en una función base.
Hack-R
7

Algunas estadísticas descriptivas adicionales y no muy conocidas.

x<-rnorm(10)

sd(x) #Standard deviation

fivenum(x) #Tukey's five number summary, usefull for boxplots

IQR(x) #Interquartile range

quantile(x) #Compute sample quantiles

range(x) # Get minimum and maximum

Estoy seguro de que puede encontrar muchos otros en uno de esos Rmanuales disponibles gratuitamente .

JohnK
fuente
¿Puedes publicar algunas situaciones cuando las has usado (fivenum, IQR, quantile ...) y fueron útiles?
Wakan Tanka
0

Como @Glen_b describió, el modo de una distribución continua no es tan sencillo como lo es para un vector de enteros.

Este código R obtendrá el modo para una distribución continua, utilizando la hist()función increíblemente útil de la base R. Como @Glen_b describió, esto implica poner las observaciones en contenedores, categorías discretas donde si la observación cae dentro del intervalo bin se cuenta como una instancia de ese contenedor, que evita el problema de que es altamente improbable en una distribución continua observar exactamente el mismo valor dos veces.

set.seed(123)
dist <- rnorm(n=1000, m=24.2, sd=2.2)
h <- hist(dist, # vector
          plot = F, # stops hist() from automatically plotting histogram
          breaks = 40) # number of bins

Ahora tratamos el punto medio del intervalo bin que tiene el conteo máximo dentro de él como el modo

h$mids[which.max(h$counts)] 

# [1] 23.75

Voila! El modo.

ps también podría tratar el inicio del intervalo como el modo vía h$breaks[which.max(h$counts)]. Como se discutió, los modos para distribuciones continuas no son simples y requieren que se tomen decisiones, por lo tanto, por qué no hay una función simple para ellos como sí existe con mean()ymedian()

molinos
fuente
Entonces, esto se reduce a decir que para encontrar el modo, encuentra el contenedor más frecuente. ¿Qué haces cuando hay lazos? ¿Cómo se eligen los contenedores de forma sistemática?
Nick Cox
Estas son muy buenas preguntas @ Nick Cox? Me encantaría saber la respuesta. Supongo que necesitarías una regla para cuando hay lazos.
llewmills