Lo normal: sumar doce, restar seis

Un truco para generar variables aleatorias normales: sumar doce uniformes y restar seis.

En efecto,

x <- replicate(1000, sum( runif(12) - 6 ))
qqnorm(x)
qqline(x, col=2)

produce

Ayuda a entender el motivo que la varianza de la distribución uniforme es 1/12 y que su media es 1/2.

5 comentarios sobre “Lo normal: sumar doce, restar seis

  1. José Luis Cañadas 20 noviembre, 2012 23:08

    Interesante. No entendía lo de restar el 6, pero es porque debe ir fuera del sum para que x tenga media 0 y varianza 1.
    x <- replicate(1000, sum( runif(12) ) -6)

  2. David H 22 noviembre, 2012 11:20

    La verdad es que no entiendo en que se diferencia eso del teorema central del límite. Si simulamos lo mismo pero sin el -6 sigue saliendo una normal.

    x <- replicate(10000, sum( runif(12)))
    qqnorm(x)
    qqline(x, col=2)

    Y por supuesto, tampoco hace falta que se sumen doce unirformes…. Pueden ser 12, 20, 30, o las que se quiera.

    x2 <- replicate(10000, sum( runif(30)))
    qqnorm(x2)
    qqline(x2, col=2)

  3. datanalytics 22 noviembre, 2012 17:33

    Es cierto, podían ser otros números. Parece ser que es un truco que usan en ciertos sistemas (en electrónica, por ejemplo) para simular normales con el mínimo coste computacional y con pocos recursos (apenas un generador de uniformes). Lo que lo distingue del «teorema central del límite» es que en este se exige un número «infinito» de variables aleatorias (el promedio normalizado «converge») y en este caso particular se usan seis (que es un número bastante pequeño). Lo sorprendente es que la convergencia sea «tan rápida».

  4. David H 23 noviembre, 2012 15:50

    La verdad es que no me lo había planteado así, pero está claro que un generador de uniformes es mucho más fácil de conseguir que un generador de normales…

  5. Pepe Trujillo 24 noviembre, 2012 21:04

    La convergencia entre la uniforme y la normal (es la que predice con carácter general el teorema del límite central) es muy rápida porque se trata de una distribución simétrica y en este caso la convergencia es más rápida. Esta propiedad es de uso habitual en estadística no paramétrica. Además la varianza de la distribución U(0,1) es 1/12, por lo que al sumar 12 uniformes se obtiene una distribución de varianza unidad como se ha dicho anteriormente. Como la media de la uniforme es 0.5, la suma de 12 tiene esperanza 6 y por tanto al restar 6 tenemos una uniforme de media o y varianza 1 (pero como se ha dicho más arriba, hay que restar después de sumar, no antes).

    Fórmula equivalente:

    > x<-replicate(1000,sum(runif(12)-0.5))

Los comentarios están desabilitados.