1. Algunos comandos de Estad´ıstica

Anuncio
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
Descargar