Está en la página 1de 5

PRACTICA DIRIGIDA Nº 6

Funciones de análisis de datos


Sea x un arreglo tipo vector. Para evaluar un conjunto de datos recabados de un experimento, se tienen las
siguientes funciones en MATLAB.
        sort(x)           Ordena ascendentemente los elementos del arreglo x.
        max(x)             Determina el valor más grande contenido en x.
        min(x)             Determina el valor menor contenido en x.
        sum(x)             Determina la suma de los elementos de x:

        prod(x)           Determina el producto de los elementos de x:

        mean(x)           Determina la media del arreglo x:

        median(x)        Determina la mediana del arreglo x.


        std(x)             Determina la desviación estándar de x:

 
La varianza de un arreglo puede calcularse como std(x)^2.
Ejemplo. Sea .
1.      Ordene ascendentemente los elementos del arreglo y determine los valores máximo y mínimo.
>> x=[2.2,5,8.8,4.3,7.3];
>> sort(x)
ans =
    2.2000    4.3000    5.0000    7.3000    8.8000
>> max(x)
ans =
    8.8000
>> min(x)
ans =
    2.2000
>> sum(x)
ans =
   27.6000
>> prod(x)
ans = 
  3.0386e+003
2.      Determine la suma  y el producto de los elementos del vector.
>> x=[2.2,5,8.8,4.3,7.3];
>> sum(x)
ans =
   27.6000
>> prod(x)
ans =
  3.0386e+003
Ejemplo. Determine la media, la mediana, la desviación estándar y la varianza del vector
.
>> x=[3.5, 6.1, 9.8, 4.6, 3.5, 8.9, 3.1, 3.5];
>> mean(x)
ans =
    5.3750
>> median(x)
ans =
    4.0500

Pág. 1 de 5
>> std(x)
ans =
    2.6418
>> std(x)^2
ans =
    6.9793
Histogramas
En MATLAB, el histograma calcula el número de valores que caen en 10 intervalos espaciados equitativamente
entre los valores mínimo y máximo de un conjunto de valores, a menos que se le indique otra cosa. El
histograma muestra no sólo los valores mismos sino además permite observar la forma en que están
distribuidos. Los comandos para generar histogramas en MATLAB son:
        hist(x)           Genera un histograma de los valores de x usando 10 intervalos.
        hist(x,n)        Genera un histograma de los valores de x usando n intervalos.
Ejemplo. Obtenga el histograma en 10 y en 8 intervalos del siguiente conjunto de valores:
1.85     1.86     2.02     2.10     1.96     1.90     1.96     1.97     1.87     1.90
1.95     1.96     1.85     2.13     2.01     2.17     2.06     2.09     1.98     1.89
1.90     1.86     1.96     2.08     2.02     2.13     2.15     2.20     2.09     2.04
2.07     1.87     1.90     1.93     1.86     2.15     2.17     2.01     2.04     2.06
1.89     1.87     1.90     1.97     1.94     1.97     2.00     2.09     2.08     1.87
Para el histograma de 10 intevalos:
>> x=[ 1.85 1.86 2.02 2.10 1.96 1.90 1.96 1.97 1.87 1.90 1.95 1.96 1.85 2.13 2.01 2.17 2.06 2.09 1.98 1.89 1.90
1.86 1.96 2.08 2.02 2.13 2.15 2.20 2.09 2.04 2.07 1.87 1.90 1.93 1.86 2.15
2.17 2.01 2.04 2.06 1.89 1.87 1.90 1.97 1.94 1.97 2.00 2.09 2.08 1.87];
>> hist(x)
>> title('Histograma con 10 intervalos')
>> xlabel('Valor')
>> ylabel('Frecuencia')
 

Y para el histograma de 8 intervalos:


>> x=[ 1.85 1.86 2.02 2.10 1.96 1.90 1.96 1.97 1.87 1.90 1.95 1.96 1.85 2.13 2.01 2.17 2.06 2.09 1.98 1.89 1.90
1.86 1.96 2.08 2.02 2.13 2.15 2.20 2.09 2.04 2.07 1.87 1.90 1.93 1.86 2.15
2.17 2.01 2.04 2.06 1.89 1.87 1.90 1.97 1.94 1.97 2.00 2.09 2.08 1.87];
>> hist(x,8)
>> title('Histograma con 8 intervalos')
>> xlabel('Valor')
>> ylabel('Frecuencia')

Actividad 1:

a) Grafique la función densidad de probabilidad para una v.a. Gaussiana con media 0 y dispersión 1.
b) Grafique la función densidad de probabilidad conjunta para dos v.a. X e Y, siendo X una v.a.
Gaussiana con media 0 y dispersión 1 e Y otra v.a. independiente de X con media 5 y dispersión 1/2.

a)
» x=[-5:0.1:5];
» gx=1/sqrt(2*pi)*exp(-x.^2/2);
» plot(x,gx)
b)
» y=[0:0.1:10];
» gy=1/(sqrt(2*pi)*(1/2))*exp(-(y-5).^2/(2*(1/2)^2));
» G=gy' * gx;

» mesh(x,y,G)

Pág. 2 de 5
Actividad 2:

a) Sea w una v.a. uniformemente distribuida entre 0 y 1. Calcule su media y su varianza teóricamente.
b) Genere un vector con 10000 muestras de dicha variable, utilizando la función rand, y grafíquelo.
c) Calcule la media y la varianza para la v.a. generada, realizando su propio programa. (Deberá generar
un lazo por medio del comando for)
d) Calcule la media y la varianza ahora, utilizando las funciones Matlab mean y std.
e) Compare los resultados obtenidos en a), c) y d).
f) Repita incisos c) a e) generando un vector de solamente 1000 muestras. Compare los resultados y
escriba sus conclusiones.
a)
E[ W ] = 0.5
VAR[W ]= 0.0833
b)
» w=rand(10000,1);
» plot(w(1:100))
c)
E[w]:
1º Forma: 2º Forma:
» mediaw=0; » media=sum(w)/length(w)
» suma=0; media =
» for i=1:10000 0.5052
suma=suma+w(i);
end
» mediaw=suma/10000
mediaw =
0.5052

VAR[W] = E[W^2] - E[W]^2:


Calculamos E[W^2]:
1º Forma:
» suma=0; 2º Forma:
»for i=1:10000 » sum(w.^2)/length(w)-mean(w)^2
suma=suma+(w(i))^2; ans =
end; 0.0841
» var=suma/10000;
» varianza=var-0.5052^2
varianza =
0.0841
d)
» mean(w)
ans =
0.5052
» std(w)^2
ans =
0.0841
e)
Los resultados obtenidos por las tres formas son iguales, aunque solo son una aproximación del valor teórico.
f)
Lo mismo para 1000 muestras:
» w=rand(1000,1);
» mean(w)
ans =
0.5172
» std(w)^2
ans =
0.0814
Se ve que cuanto mas grande es el vector que se usa mas parecidos son los resultados al resultado teórico.

Pág. 3 de 5
Actividad 3:
Considere nuevamente las variables aleatorias con distribución normal X e Y del ejercicio 1.
a) Utilizando la función randn, genere un vector de 10000 muestras independientes para X y uno para Y
b) Grafique los primeros 100 valores de cada uno.
c) Encuentre el histograma de frecuencias de ambas variables utilizando la función hist. Realice los
diagramas de barras correspondientes.
d) Estime la función densidad de probabilidad para las dos variables a partir de los histogramas obtenidos
en c). Grafique en un mismo gráfico la fdp real y la estimada para cada caso.
e) Repita incisos b) a d) generando un vector de solamente 1000 muestras. Compare los resultados y
escriba sus conclusiones.
a)
» x=randn(10000,1);
» aux=randn(10000,1);
» y=1/2*aux+5;
b)
» subplot(2,1,1)
» plot(x(1:100))
» subplot(2,1,2)
» plot(y(1:100))
c)
» intervalos=30;
» [Nj abscisax]=hist(x,intervalos);
» bar(abscisax,Nj)

» [Nj abscisay]=hist(y,intervalos);
» bar(abscisay,Nj);

d)
» rangox=max(x)-min(x);
» deltax=rangox/intervalos;
» [Njx abscisax]=hist(x,intervalos);
» Ntx=sum(Njx);
» areax=Ntx*deltax;
» fx=Njx/areax;
» gx=-4:0.1:4;
» gaussx=1/sqrt(2*pi)*exp(-gx.^2/2);
» plot(abscisax,fx,gx,gaussx)

» rangoy=max(y)-min(y);
» deltay=rangoy/intervalos;
» [Njy abscisay]=hist(y,intervalos);
» Nty=sum(Njy);
» areay=Nty*deltay;
» fy=Njy/areay;
» gy=-2.5:0.1:7;
» gaussy=1/(sqrt(2*pi)*(1/2))*exp(-(gy-5).^2/(2*(1/2)^2));
» plot(abscisay,fy,gy,gaussy)
e)
» x=randn(1000,1);
» aux=randn(1000,1);
» y=1/2*aux+5;
» intervalos=30;
» [Njx abscisax]=hist(x,intervalos);
» bar(abscisax,Njx)
Pág. 4 de 5
» [Njy abscisay]=hist(y,intervalos);
» bar(abscisay,Njy)

» rangox=max(x)-min(x);
» deltax=rangox/intervalos;
» Ntx=sum(Njx);
» areax=Ntx*deltax;
» fx=Njx/areax;
» gx=-4:0.1:4;
» gaussx=1/sqrt(2*pi)*exp(-gx.^2/2);
» plot(abscisax,fx,gx,gaussx)

» rangoy=max(y)-min(y);
» deltay=rangoy/intervalos;
» Nty=sum(Njy);
» areay=Nty*deltay;
» fy=Njy/areay;
» gy=3:0.1:7;
» gaussy=1/(sqrt(2*pi)*(1/2))*exp(-(gy-5).^2/(2*(1/2)^2));
» plot(abscisay,fy,gy,gaussy)

Igual que en el ejercicio anterior, las aproximaciones mejoran cuando se aumenta el tamaño de los vectores.

Ejercicios para la casa


Alturas de 28 alumnos en una clase es siguiente: 156; 159; 153; 157; 162; 156; 162; 153; 158; 152;
153; 159; 154; 153; 150; 162; 163; 160; 162; 156; 164; 168; 152; 151; 159; 147; 165; 149 ]
1. Construir el histograma que muestra la distribución de altura de los alumnos.
2. Organizar el histograma en 5 clases o intervalos
Supongamos que en la clase se incorpora un nuevo alumno que mide 2.10 metros
3. Incorpora Nuevo dato al histograma anterior. A que conclusión se puede llegar al ver el grafico
obtenido
4. Calcular la estatura media de los alumnos
5. Encontrar la mediana de los datos de altura de los alumnos
Se ha medido la longitud (X en mm) y el peso (Y en gr) de una muestra de 117 tornillos
producidos por una máquina, la información se representa en la siguiente tabla:

6. Calcular la tabla de frecuencias relativas


7. Calcular las distribuciones marginales (sumando por las y por columnas)

8. Genere un vector de 5000 muestras independientes para X y uno para Y


9. Grafique los primeros 100 valores de cada uno.
10. Encuentre el histograma de frecuencias de ambas variables. Realice los diagramas de barras
correspondientes.
11. Estime la función densidad de probabilidad para las dos variables
12. Grafique en un mismo gráfico la fdp real y la estimada para cada caso.

Pág. 5 de 5

También podría gustarte