Inicio > Programming, Stat > La Distribución Normal y la regla Empírica

La Distribución Normal y la regla Empírica

Recuerdan cuando en la universidad les decían (para aquellos que estudiamos estadística de alguna manera) que alrededor del 68% de los valores de una distribución normal están a una desviación típica de la media, µ; que alrededor del 95% de los valores están a dos desviaciones típicas de la media y alrededor del 99,7%están a tres desviaciones típicas de la media? Bueno esto se conoce como la “regla 68-95-99,7″ o la “regla empírica”.

Vamos a hacer un pequeño ejercicio usando SAS para demostrar esto empíricamente ;-)

Primero vamos a guiarnos por el libro negro y vamos a crear una secuencia de 10.000 números aleatorios uniformemente distribuidos. Posteriormente vamos a usar la transformación Box-Muller (se los dije que me iba a guiar por el libro negro, no quiero profesores de estadística por allí molestos) para crear una distribución normal standard.

data pseudo_rand(drop=i);
do i = 1 to 10000;
u1 = ranuni(0);
u2 = ranuni(1);
/*Transformacion Box-Muller*/
z1 = cos(2*3.141516*u2)*sqrt(-2*log(u1)) ;
output;
end;
run;

Una vez creada nuestra muestra vamos a chequear que en verdad se ajusta a
distribución normal. Para ello vamos a utilizar Proc Univariate.

proc univariate data=pseudo_rand plot normal ;
var z1;
run;

Aquí tienen una versión sumarizada del reporte generado por el Univariate.

.nobrtable br { display: none }



























Moments
N 10000 Sum Weights 10000
Mean -0.0082084 Sum Observations -82.083704
Std Deviation 0.99724547 Variance 0.99449853
Skewness -0.0181247 Kurtosis -0.0304879
Uncorrected SS 9944.66461 Corrected SS 9943.99084

.nobrtable br { display: none }























Tests for Normality
Test Statistic p Value
Kolmogorov-Smirnov D 0.005782 Pr>D >0.1500
Cramer-von Mises W-Sq 0.062107 Pr > W-Sq >0.2500
Anderson-Darling A-Sq 0.413538 Pr > A-Sq >0.2500

Ok, ahora vamos a calcular nuestra media y desviación típica usando Proc Means. Claramente esto se pudo haber calculado con anterioridad en el Univariate, pero me pareció oportuno mostrar varias formas de generar el mismo resultado.

proc means data=pseudo_rand noprint;
var z1 ;
output out=descriptiva(drop=_type_ _freq_)
mean=m
std=s;
run;
EL siguiente paso, es crear una marca para cada observación, si el número aleatorio se encuentra dentro de los límites de +/- una desviación típica, lo marcamos como cero, sino lo marcamos como 1. Lo mismo hacemos para los casos de dos y tres desviaciones típicas.

data Intervalos;
set pseudo_rand;
if _n_ = 1 then set descriptiva;
if z1 lt (m – s ) or z1 gt (m + s) then s1gma=1;
else s1gma=0;
if z1 lt (m – 2*s ) or z1 gt (m + 2*s) then s2gma=1;
else s2gma=0;
if z1 lt (m – 3*s ) or z1 gt (m + 3*s) then s3gma=1;
else s3gma=0;
run;
Si posteriormente calculamos la frecuencia de las marcas para cada caso deberíamos obtener valores muy cercanos a la regla 68-95-99,7

proc freq data=Intervalos;
table s1gma s2gma s3gma;run;

De nuevo una versión corta del reporta para apreciar que la regla se cumple.

.nobrtable br { display: none }



















Resultados para 1 Desv. Típica
Marca Frecuency Percent
0 6841 68.41%
1 3159 31.59%

.nobrtable br { display: none }



















Resultados para 2 Desv. Típica
Marca Frecuency Percent
0 9544 95.44%
1 456 4.56%

.nobrtable br { display: none }



















Resultados para 3 Desv. Típica
Marca Frecuency Percent
0 9973 99.73%
1 27 0.27%

Lo ideal sería repetir este ejercicio digamos 1000 veces con distintas secuencias de números aleatorios para llegar al 68-95-99,7. Pero eso se los dejo a ustedes.

Si tengo tiempo esta semana les posteo como comprobar usando SAS que una muestra de N>30 sigue una distribución Normal.

SASludos,

Alberto

Advertisement
Categorías:Programming, Stat
  1. Aún no hay comentarios.
  1. Aún no hay trackbacks

Deja un comentario

Fill in your details below or click an icon to log in:

Gravatar
Logo de WordPress.com

Please log in to WordPress.com to post a comment to your blog.

Twitter picture

You are commenting using your Twitter account. Log Out / Cambiar )

Facebook photo

You are commenting using your Facebook account. Log Out / Cambiar )

Connecting to %s

Seguir

Get every new post delivered to your Inbox.