Departamento de Matemática Aplicada MÉTODOS ESTADÍSTICOS. Ingenierı́a Quı́mica (Curso 2008-09) Estadı́stica Descriptiva. Práctica 1 1. Algunos comandos de Estadı́stica Describimos a continuacion algunos de los comandos de Estadı́stica mas importantes que tiene Matlab. Recomendamos que, ante cualquier duda, se acuda al sistema interactivo de ayuda que tiene Matlab. Empecemos con dos vectores columnas de 10 elementos cada uno (es importante que sean vectores columnas). >> x=[1;2;3;4;5;6;7;8;9;10]; >> y=[-0.1 ; 2; -3; 0.6; 9; 8.1; -1; 4.3; 7;-3]; Si queremos calcular la media de los valores de x y de y utilizamos el comando mean, haciendo >> xmedia=mean(x) xmedia = 5.5000 >> ymedia=mean(y) ymedia = 2.3900 Para calcular la mediana, utilzamos el comando median, es decir >> xmediana=median(x) xmediana = 5.5000 >>ymediana=median(y) ymediana = 1.3000 y para las varianzas >> xvar=var(x,1) xvar = 8.2500 >> yvar=var(y,1) yvar = 18.0349 1 Observese que si en vez del comando var(x,1), escribimos var(x) el resultado ! es 9.1667, que es distinto de N var(x,1). De hecho para un vector columna x = (x1 , x2 , . . . , xN ) con media µ = i=1 xi , las dos varianzas se ! ! N N 1 2 2 definen como var(x,1) = N1 i=1 (xi − µ) y var(x) = N −1 i=1 (xi − µ) . La diferencia es que en la primera se divide por N y en la segunda se divide por N − 1. Esta segunda varianza es ampliamente utilizada. Para las desviaciones, podemos tomar las raices cuadradas de las varianzas o utilizar directamente el comando >> xdesv=std(x,1) xdesv = 2.8723 >> ydesv=std(y,1) ydesv = 4.2468 Para hallar la covarianza, generamos la matriz de covarianzas que se obtiene con el comando >> covarianza=cov(x,y,1) covarianza = 8.2500 1.9850 1.9850 18.0349 Como se observa, el resultado es una matriz 2 × 2 del tipo covarianza= a b b c donde a = s2x , c = s2y , la varianza de x y de y respectivamente, y b=sxy es la covarianza de x e y. A esta matriz se le denomina la matriz de covarianzas. La misma observacion que hemos realiado para la diferencia entre var(x,1) y var(x) se aplica a std(x,1), std(x), y a cov(x,y,1), cov(x,y). Podemos también calcular el coeficiente de correlacion de la forma siguiente >> coeficiente=covarianza(1,2)/sqrt(covarianza(1,1)*covarianza(2,2)) coeficiente = 0.1627 Observese que √ covarianza(i,j) es el elemento (i,j) de la matriz covarianza, y por tanto, el coeficiente de correlacion es b/ ac=covarianza(1,2)/sqrt(covarianza(1,1)*covarianza(2,2)). Con todos estos datos, se puede obtener la recta de regresion de y sobre x, dada por y − ȳ = byx (x − x̄), donde byx = sxy /s2x , es decir >>byx=covarianza(1,2)/covarianza(1,1) byx = 0.2406 Se puede escribir la recta como y − 2,3900 = 0,2406(x − 5,5000) o equivalentemente y = 0,2406x + 1,0667. 2 2. Mı́nimos Cuadrados Otra forma de obtener la recta de regresión de Mı́nimos Cuadrados, incluso de obtener curvas que aproximan a una nube de puntos, es utilizando el comando polyfit(x,y,n), donde n es el grado del polinomio que queremos obtener. Por lo tanto, para obtener una recta tomamos n = 1: >> recta=polyfit(x,y,1) recta = 0.2406 1.0667 Si queremos graficar conjuntamente la nube de puntos y la recta de regresion hacemos: >> >> >> >> >> plot(x,y,’*’) hold on xpol=linspace(1,10,100); ypol=polyval(recta,xpol); plot(xpol,ypol) y se obtiene la figura 10 8 6 4 2 0 −2 −4 1 2 3 4 5 6 7 8 9 10 Figura 1: Nube de puntos y recta = 0,2406x + 1,0667 El error que se comete al aproximar la funcion empı́rica (tabla inicial) por la funcion teorica (recta) se puede cuantificar de la siguiente forma. Primero calculamos los valores de la recta y = ax + b en los puntos xi : >>fxi=polyval(recta,x) fxi = 1.3073 1.5479 1.7885 2.0291 2.2697 2.5103 2.7509 2.9915 3.2321 Y ahora calculamos el Error Cuadrático Medio, que viene dado por la expresion: " # n #1 % (axi + b − yi )2 ε=$ n i=1 Para calcularlo: 3 3.4727 >>n=length(x) % calcula el n’umero de t’erminos n = 10 >>errorcm=sqrt(sum((fxi-y).^2)/n) errorcm = 4.1901 3. Ejercicios Ejercicio 1 Resolver los ejercicios de la Hoja 2 de problemas utilizando Matlab. Ejercicio 2 Mediante el Método de Mı́nimos Cuadrados, elegir una funcion cuadrática del tipo f (x) = ax2 + bx + c para los valores de x e y dados por la siguiente tabla x y 7 8 9 10 11 7,4 8,4 9,1 9,4 9,5 12 9,5 13 9,4 Calcular la funcion f (x), el error, el error cuadrático medio y representar la funcion obtenida junto a los datos de la tabla. Ejercicio 3 De ciertas medidas realizadas se han obtenido los siguientes valores: x y 0 1 0,2 0,5 1 1,5 0,833 0,667 0,54 0,4 2 2,5 3 3,5 4 4,5 5 0,333 0,286 0,25 0,222 0,2 0,182 0,167 a) Representar la tabla de valores gráficamente. 1 . Esta funcion no la ax + b podemos obtener directamente con el comando polyfit. Pero la podemos transformar en, b) Se puede observar que se trata aproximadamente de una funcion del tipo y = 1 = ax + b y Ahora, haciendo X = x; Y = 1 . Nos queda la expresion y Y = aX + b Calcular esta funcion. Habrá que hacer una nueva tabla de valores con las nuevas variables. c) Deshacer el cambio de variable y obtener la funcion original y representarla con los valores del apartado a). Ejercicio 4 La tabla siguiente contiene la presion p en kp/cm2 de un vapor saturado, en funcion del volumen especı́fico, v, medido en m3 /kp: v p 3,334 1,63 0,8657 0,4323 0,2646 0,1699 0,1146 0,482 1,034 2,027 4,247 7,164 11,48 17,6 Elegir una funcion p = f (v) que sea adecuada a la tabla de valores y calcularla con el Método de Mı́nimos Cuadrados. Representarla después con los valores. Según esta funcion ¿Cuál serı́a la presion aproximada que corresponderı́a a un volumen de 3m3 /kp? Ejercicio 5 Hallar por el Método de Mı́nimos Cuadrados una funcion del tipo S = Atq para los datos de la siguiente tabla. Representarla junto a los datos de la tabla: t S 1 2 3 7,1 27,8 62,1 4 5 110 161 (Indicacion: Tomar logaritmos neperianos en la funcion para transformarla en una funcion de tipo lineal). 4 El comando rand(M,N) genera una matriz de M filas y N columnas en donde cada entrada es un numero aleatorio entre 0 y 1, según una distribucion uniforme. Si se desea elegir los numeros segun una distribucion normal standard, se escribe randn(M,N) Ejercicio 6 Repetir lo realizado en las secciones 1 y 2 cuando x e y son dos vectores columna de 100 filas y numeros aleatorios siguiendo a) una distribucion uniforme, b) una distribucion normal standard. Ejercicio 7 Repetir el ejercicio anterior con los vectores x e y, donde x = (1, 2, 3, . . . , 30)T , e y = x+randn(30, 1). Ejercicio 8 Explorar lo que hace el comando hist, siguiendo los siguientes pasos: >> >> >> >> >> x=randn(200,1); N=hist(x) hist(x) M=hist(x, 25) hist(x,25) Utilizar si es necesario el comando de ayuda: >> help hist 5