Práctica 2. Estadı́stica descriptiva Estadı́stica – Facultad de Fı́sica Objetivos • Representaciones gráficas. Histogramas • Medidas de centralización • Medidas de dispersión • Momentos • Asimetrı́a y curtosis 1 Representaciones gráficas. Histogramas Ya vimos en la práctica anterior que se pueden representar gráficas sencillas. Vamos a recordar cómo se hace y compararemos los valores de las temperaturas medias de los meses de enero y febrero almacenadas en el fichero retirot.dat. Recordemos que todo lo que aparece despues del signo % son comentarios que no se teclean ni aparecen en la pantalla. ≫ cd c:\matlab\trabajo ←֓ ≫ load retirot.dat ←֓ % Nos colocamos en el directorio que contiene % el fichero y cargamos los datos. ≫ enero=retirot(:,2) ←֓ ≫ febrero=retirot(:,3) ←֓ % Almacenamos en las variables enero y % febrero todas las medidas de estos meses. ≫ plot(enero) ←֓ % % % % % % % % % ≫ fecha=retirot(:,1) ←֓ ≫ plot(fecha,enero) ←֓ ≫ hold on ←֓ ≫ plot(fecha,febrero) ←֓ ≫ plot(fecha,febrero,’*’) ←֓ Representamos la variacion de la temperatura media de enero con el tiempo. Vector que contiene los años a los que se refieren las medidas. Es una representacion mejor ya que indica los años considerados. Dibujamos encima, sin borrar, la variacion de las temperaturas de febrero en las mismas fechas, con lineas y asteriscos. Podemos observar inmediatamente que las temperaturas medias de febrero suelen ser un poco más altas que en enero. Para realizar una estimación mejor podemos realizar los histogramas correspondientes a las dos variables y compararlos. El histograma de frecuencias (absolutas o relativas) es la representación gráfica más usada para datos agrupados y consiste en un conjunto de rectángulos adyacentes, cada uno de los cuales representa un intervalo de clase. 1 REPRESENTACIONES GRÁFICAS. HISTOGRAMAS ≫ hold off ←֓ ≫ hist(enero) ←֓ ≫ hist(febrero) ←֓ 2 % para realizar un nuevo grafico % representa el histograma de la variable enero % idem febrero Podemos aprovechar para aprender a representar dos gráficos en la misma pantalla. De esta forma podemos compararlos mejor. ≫ ≫ ≫ ≫ subplot(2,1,1) ←֓ hist(enero) ←֓ subplot(2,1,2) ←֓ hist(febrero) ←֓ % % % % dividimos la pantalla en dos y seleccionamos la primera zona histograma de enero en la parte de arriba (la seleccionada) seleccionamos la segunda zona y representamos el histograma de febrero Mientras la moda (el valor en el que la frecuencia es máxima) en enero está por debajo de 6o C, en febrero es alrededor de 8o C. Podemos decidir cuantos intervalos de clase se emplean a la hora de representar el histograma, ≫ subplot(2,1,1),hist(enero,10) ←֓ % ≫ subplot(2,1,2),hist(enero,15) ←֓ % % ≫ subplot ←֓ % representa el histograma con 10 intervalos idem con 15 intervalos de clase Para volver al modo normal de hacer los graficos: uno por pantalla y tambien podemos no sólo representar el histograma sino saber cuantos elementos contiene cada intervalo de clase, ≫ [n,x]=hist(enero,5) ←֓ n = 2 9 19 14 7 x = 2.64 3.92 5.20 6.48 % % % % Almacena en n y en x el resultado del histograma n son frecuencias absolutas x contiene las marxas de clase 7.76 nos dice que hay 9 años (frecuencia absoluta) en los cuales la temperatura media de enero se encuentra en el intervalo de clase definido por la temperatura media 3.92 o C (marca de clase). Como ya tenemos almacenado el resultado en estos vectores n y x, si queremos representar la frecuencia absoluta en cada intervalo de clase empleamos un diagrama de barras, ≫ bar(x,n) ←֓ % representa las frecuencias absolutas Tambien podemos decidir no el número de intervalos de clase sino los valores concretos de éstos. Esto resulta muy útil si queremos comparar las temperaturas medias de dos meses. Como el rango de temperaturas es diferente, si hacemos ≫ [nfebrero,x]=hist(febrero,5) ←֓ nfebrero = 1 5 21 21 3 x = 2.8100 4.6300 6.4500 8.2700 10.0900 3 2 MEDIDAS DE CENTRALIZACIÓN resultan intervalos de clase diferentes a los que obtenı́amos con el mismo comando para enero. Para evitar este problema decidimos, en primer lugar, cuales son los intervalos que deseamos utilizar (por ejemplo de 0 a 12 o C de 2 en 2 grados) y construimos un vector de referencia. Posteriormente hacemos el histograma para los dos meses usando los mismos intervalos de clase, ≫ y=[0:2:12] ←֓ y = 0 2 4 % vector y de 0 a 12 con paso 2 6 8 10 12 ≫ [nenero,xe]=hist(enero,y) ←֓ nenero = 0 2 13 27 9 0 0 xe = 0 2 4 6 8 10 12 ≫ [nfebrero,xf]=hist(febrero,y) ←֓ nfebrero = 0 1 5 15 27 3 0 xf = 0 2 4 6 8 10 12 % Histograma para enero % usando como referencia el vector y. % Histograma para febrero % usando como referencia el vector y. Ahora podemos comparar directamente e incluso representar a la vez ambos histogramas, ≫ bar(xe,nenero) ←֓ ≫ hold on ←֓ ≫ bar(xf,nfebrero,’:’) ←֓ % representa el histograma calculado anteriormente % mantiene el grafico sin borrar % representa el de febrero con linea punteada Como ejercicio podemos hacer lo mismo pero utilizando un paso más estrecho. Pruébese con paso de 1o C, creando el vector de referencia y de nuevo y represéntense los histogramas de frecuencias relativas. Para ello hay que recordar que las frecuencias relativas se obtienen dividiendo las frecuencias absolutas entre el número de observaciones, en este caso el número de años muestreados. Para comprobar que se ha procedido correctamente la suma de las frecuencias relativas debe ser la unidad. 2 Medidas de centralización La ventaja de las tablas de frecuencias y de las gráficas es que en muchos casos permiten de un vistazo tener una idea cualitativa. En este caso que las temperaturas medias de los meses de febrero son algo mayores que las de enero en las fechas consideradas. Vamos a calcular algunas medidas que permiten resumir la información y comparar muestras entre sı́. La media aritmética, o simplemente media, se determina con el comando mean, ≫ mean(enero) ←֓ ans = 5.6118 % % % Media aritmetica de la variable enero: valor medio de sus componentes P [ ni=1 enero(i)]/n 4 2 MEDIDAS DE CENTRALIZACIÓN ≫ mean (febrero) ←֓ ans = 7.1412 Pn %[ % % % ≫ dum= sum(febrero); ←֓ ≫ n= length(febrero); ←֓ % % ≫ febm= dum/n ←֓ febm = % 7.1412 % ≫ enem=sum(enero)/length(enero) ←֓ % enem = % 5.6118 % i=1 f ebrero(i)]/n Si no dispusieramos del comando mean se puede calcular como Pn i=1 f ebrero(i) sumatorio de las componentes length(febrero) tamaño del vector dividimos el sumatorio entre el numero de datos y obtenemos la media aritmetica Analogamente, para enero en una sola instruccion media aritmetica de enero La suma de los valores de las desviaciones respecto a la media aritmética vale cero. ≫ senero= enero-mean(enero); % % % % % ≫ sum(senero) ←֓ ans = 0.000 vector que contiene las desviaciones senero(i)= enero(i)-mean(enero) suma de los valores del vector errores de redondeo pueden originar un valor un poco diferente de cero Otras medias que se suelen emplear son la media geométrica (raı́z enésima del producto de los valores de la variable) y la media armónica (inversa de la media aritmética de las inversas de los valores de la variable). Por suerte para nosotros existen dos comandos de matlab que calculan estas medias, ≫ ge=geomean(enero); ←֓ ≫ he=harmmean(enero); ←֓ ≫ ge,he ←֓ ge= 5.4053 he= 5.1608 % Media geometrica % Media armonica Por último, la media cuadrática es la raı́z cuadrada de la media aritmética del los cuadrados de los valores. Como matlab no tiene un comando para calcularla, vamos a desarrollarlo nosotros. Recordemos que, xQ = sP N i=1 N x2i ; xQ = sP k i=1 x2i ni N Nos es más fácil emplear la primera expresión (xi son los valores que toma la variable y ni el número de veces que se repite cada valor), 2 MEDIDAS DE CENTRALIZACIÓN ≫ qe=enero.*enero; ←֓ ≫ sum(qe); ←֓ ≫ ans/length(qe); ←֓ ≫ sqrt(ans) ←֓ ans = 5.7878 % % % % % % % 5 vector con los cuadrados de los valores El operador .* multiplica los dos vectores elemento a elemento qe(i) = enero(i). enero(i) suma de qe (sumatorio de los cuadrados) idem dividido por el numero de datos debe notarse que length(enero) = length(qe) raiz cuadrada del resultado % media cuadratica Podemos crear un fichero-M para calcular la media cuadrática en cuantas ocasiones deseemos. Los pasos a dar son, • Entrar en el editor: en el menú de la pantalla de comandos abrimos File / New / M-file. • Teclear el programa % QUADMEAN Media cuadratica % M = QUADMEAN(X) proporciona la media cuadratica % de X, donde X es un vector de n elementos. % Se calcula como la raiz cuadrada de la media aritmetica % de los cuadrados de los elementos % (estas son lineas de comentarios porque empiezan por %) % f unction m = quadmean(x) % Se determina el numero de elementos n = length(x); % Se divide la suma de los cuadrados entre el numero de elementos m = sqrt(sum(x. ∗ x) / n); • Grabarlo: en el menú de la pantalla del block de notas (en la que estamos editando) abrimos Archivo / Guardar como.... Se selecciona el directorio donde se quiere guardar (c:\matlab\trabajo) y le llamamos quadmean.m) Comprobamos que funciona bien calculando de nuevo la media cuadrática de las medidas de enero, ≫ quadmean(enero) ←֓ ans = 5.7878 ≫ quadmean(febrero) ←֓ ans = 7.3033 % corre el programa quadmean.m % utilizando como parametro el vector enero % y ahora para febrero Otra medida de centralización importante es la mediana. Esta divide en dos partes iguales la distribución de frecuencias o, lo que es lo mismo, divide el histograma en dos partes de igual área. Se puede calcular como, 6 3 MEDIDAS DE DISPERSIÓN ≫ median(enero) ←֓ ans= 5.700 La moda de una muestra es aquel valor de la variable que tiene una frecuencia máxima. En los ejemplos que venimos desarrollando es fácil determinar cual es el intervalo modal (aquel en el que la frecuencia sea máxima). Si queremos determinar la moda como un valor determinado dentro del intervalo modal, empleamos, Mo = aj + δ1 (aj+1 − aj ) δ1 + δ2 donde (aj , aj+1) es el intervalo con frecuencia máxima nj , nj−1 y nj+1 son las frecuencias de los intervalos anterior y posterior al modal y δ1 = nj − nj−1 y δ2 = nj − nj+1 . El cálculo de las modas de enero y febrero se deja como ejercicio . Relléne ahora el cuestionario 2-A. Si dispone de tiempo libre continúe la práctica 2 hasta el final de la clase. Esta práctica se terminará en la próxima sesión (cuestionario 2-B). 3 Medidas de dispersión Una evaluación rápida de la dispersión se puede obtener calculando el recorrido o rango. Para saber el rango de fechas se puede utilizar el comando range de la siguiente forma, ≫ range(fecha) ←֓ ans= 50 % Recordemos que el vector fecha contiene la primera columna % del fichero: los años tabulados. Para eliminar la influencia de los valores extremos, se usa el recorrido intercuartı́lico como la diferencia entre el primer y tercer cuartil (medidas que dividen la muestra de forma que el 25% de los datos están debajo del primer cuartil y el 25% de los datos se encuentran por encima del tercer cuartil). ≫ iqr(enero) ans= 1.775 Para febrero los datos están más agrupados; compruébese. La desviación media respecto a la media aritmética (o desviación media) es la media aritmética de las diferencias absolutas entre los valores de la variable y la media aritmética de la muestra. Recordando su definición podemos calcularla fácilmente de la siguiente manera, ≫ d=sum(abs(enero-mean(enero)))/length(enero) ←֓ ans= 1.1243 7 4 ASIMETRÍA Y CURTOSIS Pero la medida más empleada es sin duda la desviación tı́pica. En este caso se usan los cuadrados de las desviaciones. La varianza de una muestra agrupada y la desviación tı́pica (o desviación estándar) como la raı́z cuadrada de la varianza se definen como, 2 s = PN 2 i=1 (xi − x) N −1 ; s= sP N i=1 (xi − x)2 N −1 En matlab se pueden calcular como, ≫ var(enero) ←֓ ans= 2.0471 ≫ std(enero) ←֓ ans= 1.4308 Podemos intentar el cálculo por nuestra cuenta como, ≫ dif=enero-mean(enero); ←֓ ≫ dif2=dif.*dif; ←֓ ≫ suma=sum(dif2); ←֓ ≫ varianza=suma/50 ←֓ ans= 2.0471 ≫ desv=sqrt(varianza) ←֓ ans= 1.4308 4 % % % % Vector con las diferencias respecto a la media Vector con las diferencias al cuadrado Valor de la suma de las diferencias al cuadrado Varianza % Igual que antes % Desviacion tipica % Igual que antes Asimetrı́a y curtosis Para dar una descripción estadı́stica completa de una muestra de datos es necesario estudiar el grado de simetrı́a de los datos respecto a su medida central y la concentración de los datos alrededor de dicho valor. Vamos a cuantificar el grado de asimetrı́a de nuestras distribuciones utilizando los dos coeficientes principales: el coeficiente de asimetrı́a de Fisher y el coeficiente de asimetrı́a de Pearson Recordemos que el primero se define como el cociente entre el momento de orden 3 respecto a la media y el cubo de la desviación tı́pica: m3 g1 = 3 s donde m3 = Pk − x)3 ni N i=1 (xi Es fácil ver que en el caso una distribución simétrica el coeficiente de asimetrı́a será nulo (g1 = 0). En caso contrario, g1 tendrá valores positivos para una asimetrı́a positiva (a la derecha) y negativos cuando la asimetrı́a sea en el otro sentido. 8 4 ASIMETRÍA Y CURTOSIS Por otra parte el coeficiente de asimetrı́a de Pearson (que tambien es adimensional) se define como: AP = x − Mo s Su interpretación es similar a la del coeficiente de Fisher, siendo nulo para una distribución simétrica (en ese caso media y moda coinciden) y tanto más positivo, o negativo, cuando más sesgada esté la distribución hacia la derecha, o hacia la izquierda. Vamos a calcular la asimetrı́a para la distribución de temperaturas medias de los tres primeros meses del año. ≫ dum=retirot(:,2:4); ←֓ ≫ invierno=dum(:); ←֓ ≫ [n,x]=hist(invierno,10) ←֓ % Las columnas 2 a 4 son enero a marzo % Convertimos una matriz en un vector % 10 intervalos de clase ≫ dum=invierno-mean(invierno) ←֓ % diferencias respecto a la media ≫ dum=dum.^3 ←֓ % diferencias al cubo ≫ dum=sum(dum) ←֓ % suma de las diferencias al cubo % numero de datos ≫ length(invierno) ←֓ ans = % Matriz de 153 datos y una columna 153 % momento de orden tres ≫ m3=dum/153 ←֓ ≫ s=std(invierno ←֓ % desviacion estandar ≫ g1=m3/(s^3) ←֓ % coeficiente de asimetria de Fisher ans = 0.1045 % estimacion grosera de la moda ≫ moda=6.85 ←֓ ≫ As=(mean(invierno)-moda)/s ←֓ % coeficiente de asimetria de Pearson ans = 0.3172 Tenemos entonces una distribución muy simétrica ya que g1 es próximo a cero y algo sesgada a la derecha al ser As algo mayor que cero. Hemos estimado este coeficiente utilizando un valor de la moda que no es preciso: nos hemos limitado a tomar el valor del intervalo intercuartı́lico que agrupa un mayor número de observaciones. Para calcular este coeficiente con precisión deberı́amos determinar la moda utilizando las fórmulas que vimos más arriba. La forma en que se distribuyen los datos de la muestra en torno al valor central puede ser medida con el coeficiente de curtosis. Los datos se pueden distribuir de forma que tengamos un gran apuntamiento (o pico en el histograma) alrededor del valor central, en cuyo caso diremos que tenemos una distribución leptocúrtica, o en el extremo contrario, el histograma puede ser muy aplanado, lo que corresponde a una distribución platicúrtica. En el caso intermedio, diremos que la distribución es mesocúrtica y el agrupamiento corresponderá al de una distribución llamada normal, o en forma de campana de Gauss. m4 g2 = 4 s donde m4 = Pk − x)4 ni N i=1 (xi 4 ASIMETRÍA Y CURTOSIS 9 Análogamente calcularemos el coeficiente de curtosis para la misma distribución. Aparentemente tenemos una distribución que no es muy picuda ni muy aplanada, aunque tal vez parezca platicúrtica. El coeficiente de curtosis se calcula fácilmente, ≫ dum=invierno-mean(invierno) ←֓ % diferencias respecto a la media ≫ dum=dum.^4 ←֓ % diferencias a la cuarta % suma de las diferencias a la cuarta ≫ dum=sum(dum) ←֓ ≫ m4=dum/153 ←֓ % momento de orden cuatro % coeficiente de curtosis ≫ g2=m4/(s^4) ←֓ ans = 2.5912 luego efectivamente al ser g2 < 3, la distribución es platicúrtica y no leptocúrtica (g2 > 3) o mesocúrtica (g2 = 3).