Una forma de analizar problemas en estadística consiste
en utilizar técnicas que sinteticen la información contenida en la muestra. (tales
como medias muéstrales, varianza muestral, mínimos cuadrados, etc.). Esta parte
de la estadística recibe el nombre de estadística descriptiva (Donato, 2013). Existen
estadísticos descriptivos básicos, como la media, moda, mediana, etc.
Utilizando los comandos básicos de
MATLAB, se puede acceder a estos estadísticos. Nota, se utilizan como
variables el PIB per cápita (US$), inflación anualizada y el desempleo
publicado por el Banco Central de la República Dominicana, 1991-2013.
%Crea una matriz con los datos
>> data1 = [t, pibpc,
inflacion, desempleo]
1.1. Medidas de posición central
Creada una matriz de datos, matlab permite accedes a los
estadísticos de esa matriz por fila o columna según sea el caso. Suponiendo el
caso de la media se pueden especificar los siguientes comandos:
% Media de la inflación,
entre 1991-2013.
>> mean(inflacion)
ans =
9.2752
Creando una matriz de datos (data = [inflacion,
desempleo]), el comando anterior permite obtener un vector de medias,
correspondientes a cada una de las columnas de la matriz. En el ejemplo
siguiente el primer valor representa la media de la inflación y el segundo del
desempleo para el periodo completo.
>> mean(data)
%calcula un vector de media por columna
ans =
9.2752
16.1261
>> mean(data, 2) %calcula un vector de media por fila
En el
comando anterior, el 2 indica al programa que trabaja por fila y no por
columna, como está especificado por default.
------------------------------------------------------------------------
Diferencia entre
trabajar por filas o por columnas en Matlab:
Debido a que se mención anteriormente se especificará la
diferencia de trabajar por fila o por columnas, ya que se hará referencia
indistintamente en lo adelante. Tomando el ejemplo de la Universidad Carlos III
de Madrid:
%
Suma filas
sum(tornillos,1)
ans =
18 80 18 1
%
Suma columnas
sum(tornillos,2)
ans =
4
76 37
------------------------------------------------------------------------
Una forma
adicional de calcular la media aritmética es combinando los comandos sum y
length, [sum(desempleo)/length(desempleo) ] . también se puede acceder a la
media de una parte especifica de un vector o matriz. El siguiente comando
corresponde al cálculo de la media de los últimos 4 año (observaciones) de la
muestra.
>>
mean(desempleo(end-3:end))
ans =
14.6500
En la próxima tabla se resumen una serie de comandos
relacionados con la media
mean(data)
|
%calcula un vector de media por columna
|
sum(desempleo)/length(desempleo)
|
|
mean(data,
2)
|
%calcula un vector de media por fila
|
mean(X(end-3:end))
|
%Especifica la dimensiones de donde se desea obtener
|
nanmean()
|
%Calcula la media ignorando aquellos datos perdidos
|
geomean()
|
%calcula la media geométrica
|
harmmean ()
|
%calcula la media armónica
|
trimmean (a,
y)
|
%Calcula la media de a, excluyendo y percentiles. Útil
cuando nos enfrentamos a datos con alta volatilidad
|
data= una matriz de datos
En el caso de la media cuadrática, no existe en matlab un
comando que permita calcularla, por tanto hay que desarrollarla desde cero:
%% Media cuadratica
me_ancua_des =
desempleo.*desempleo;
sum(me_ancua_des);
ans/length(me_ancua_des);
sqrt(ans)
En el
caso de la mediana, aplican los mismos parámetros y recomendaciones citados
anteriormente, con la excepción de que el comando a utilizar ahora es:
median(data)
|
%calcula un vector de medianas por columna
|
mode(data)
|
%calcula la moda
|
max(x); min(x)
|
1.2. Medidas de dispersión
El comando Std (), regresa la desviación estándar de una muestra especifica.
>> std (data)
ans =
8.9950
1.9231
El comando std (a, flag, dim), permite obtener la DS
corregida y el segundo momento de la muestra y dim, permite especificar si se
desea trabajar con las filas o con las columnas. En la próxima tabla se resumen
un conjunto de comandos útiles para obtener medidas de dispersión.
std (data)
|
%Calcula la desviación estándar
Sqrt(sum((X-mean(X)).^2)/length(X))
|
var (data)
|
%Varianza corregida
sum((X-mean(X)).^2)/length(X)
|
mad ()
|
%Desviación absoluta respecto media
|
moment(a, order,
dim)
|
% Devuelve los momentos centrales de cualquier orden
|
range(data)
|
%Devuelve el rango de una serie de datos
|
iqr(data)
|
%regresa el
rango intercuartilico
IQR = prctile(x,75)‐prctile(x,25)
|
Estadígrafos de posición
|
|
prctile (data,
90)
|
%Regresa un percentil dentro de un intervalo [0 100]
|
quantile (a, p,
dim)
|
%igual a prctile, pero permite trabajar fila y columna
|
Q5 =
quantile(desempleo, .5)
|
%equivalente al cálculo de la mediana
|
Estadígrafos de forma
|
|
skewness (desempleo)
|
%devuelve la oblicuidad (asimetría) de una distribución
|
kurtosis (desempleo)
|
%Curtosis
|
En el próximo comando permite obtener un histograma, en
este caso a partir de una representación de números aleatorios.
j=randn(1,1e5)
hist(j,50) %El 50, especifica el numero de clases que se desea
[n,x]=hist(j,50) %Guarde las frecuencia absolutas (n) y
valores de clase
1.3. Tablas y matrices de datos
Las tablas de frecuencia de variables cualitativas se
obtiene mediante el comando tabulate() regresa una tabla de frecuencia absoluta
y relativa de la muestra.
>> feminicidios = [2 0 4 3
2 2 1 1 0 1 2 3 0 1 2 0 5 2 3 2 0 1 0 2 1]'
>> tabulate(feminicidios)
Value Count
Percent
0 6
24.00%
1 6
24.00%
2
8 32.00%
3
3 12.00%
4
1 4.00%
5
1 4.00%
% Permite establecer la
frecuencia relativa entre [0 1]
tabla = tabulate(feminicidios)
tabla(:,3)
= tabla(:,3)/100
% calcular las frecuencias
acumuladas en matlab
abs_acum = cumsum(tabla(:,2))
rel_acum = cumsum(tabla(:,3))
tabla=[ tabla(:,1) tabla(:,2)
abs_acum tabla(:,3) rel_acum ]
tabla =
0
6.0000 6.0000 0.2400
0.2400
1.0000
6.0000 12.0000 0.2400
0.4800
2.0000
8.0000 20.0000 0.3200
0.8000
3.0000
3.0000 23.0000 0.1200
0.9200
4.0000
1.0000 24.0000 0.0400
0.9600
5.0000
1.0000 25.0000 0.0400
1.0000
% permite comparar gráficamente
frecuencias absolutas con acumuladas
bar([tabla(:,2) tabla(:,3)])
El comando crosstab(), permite también cruzar tablas.
sexo = [1 0 1 0 1 0 0 1]
fuma = {'si' 'si' 'no' 'no' 'no' 'no' 'si' 'no'}
>> crosstab(fuma, sexo)
ans =
2 1
2 3
Otros comando de
interés es cov() que permite obtener la matriz de varianza covarianzas.
>> cov(data) %Matriz de varianzas covarianzas
del desempleo y la inflación
ans =
80.9104 3.2051
3.2051
3.6984
Corr() permite a su vez obtener la matriz de
correlaciones.[1]
>> corr(data)
ans =
1.0000
0.1853
0.1853
1.0000
[RHO,PVAL] = CORR(...) , permite además obtener el
p-value. [2]
RHO =
1.0000 0.1853
0.1853
1.0000
PVAL =
0.0000
0.3973
0.3973 0
Por último, el comando plot, nos permite acceder al
diagrama de dispersión[3]
x = [47 62 65 70 70 78 95 100 114
118 124 127 140 140 140 150 152 164];
y = [38 62 53 67 84 79 93 106 117
116 127 114 134 139 142 170 149 154];
plot(x,y,'.');
%Permite agregar la línea de
regresión
L =
polyfit(x,y,1);
YE = polyval(L,x);
plot(x,y,'.',x,YE,'r');
[2] If PVAL(i,j) is small, say less than 0.05, then the correlation RHO(i,j) is
significantly different
from zero.
[1] En http://www.fce.unal.edu.co/wiki/images/e/e6/entregafinalmatlab.pdf
se presenta una buena explicación de como usar los opciones de este comando
REFERENCIAS BIBLIOGRÁFICAS
Gil, Cristian (2005). “Analisis
estadísticos con Matlab”. Universidad Nacional de Colombia. Bogotá, D.F.
Universidad Carlos III de Madrid. Estadística descriptiva
con Matlab/Octave. Departamento de estadísticas.
Estadística descriptiva. Facultad de física
Lopez, Beatriz (2009). Estadística. Disponible en: http://eio.usc.es/pub/pateiro/files/iq0809pateiro.pdf