¡Descarga Ejercicios Tema 3 Análisis Multivariante y más Ejercicios en PDF de Análisis Matemático solo en Docsity!
Soluciones Ejercicios Análisis Multivariante Aurea Grané Chávez
Tema 3: Análisis de Componentes Principales
Cargamos los datos del fichero mercurio.txt y seleccionamos sólo las columnas que nos indica el
enunciado:
data=dlmread('mercurio.txt','\t',[1 2 53 11]);
X=data(:,[1 2 3 4 5 7 8]);
var(X)=
Para obtener las componentes principales de X podemos utilizar la función comp2.m:
% COMP
% La función [T1,Y1,acum1,T2,Y2,acum2]=comp2(X) calcula las componentes % principales de una matriz de datos X (n,p). % % Devuelve: % T1 componentes principales a partir de la matriz S % Y1 representación de los datos % acum1 porcentajes acumulados % T2 componentes principales a partir de la matriz R % Y2 representación de los datos % acum2 porcentajes acumulados % % Salidas graficas: Representación en componentes principales (dim. 2), % scree-plot con el criterio de Kaisser y la modificación % del criterio de Kaisser. % function [T1,Y1,acum1,T2,Y2,acum2]=comp2(X) [n,p]=size(X);
Soluciones Ejercicios Análisis Multivariante Aurea Grané Chávez
% Vector de etiquetas para los individuos. for i=1:n lab(i,:)=sprintf('%3g',i); end % Matriz de centrado y matriz de datos centrados. H=eye(n)-ones(n)/n; X=HX; % Calculo de las matrices de covarianzas y de correlaciones. S=cov(X,1); R=corr(X); % % Componentes principales a partir de la matriz de covarianzas. % Ordenación de los valores propios según la variabilidad % explicada (de más a menos). D1 es un vector fila. % Las columnas de T1 son los vectores propios ordenados. % [T1,D1]=eigsort(S); % Corregimos los signos de T1. if ((sum(sign(T1(:,1))) < 0) & (sum(sign(T1(:,2))) < 0)) T1=-T1; end s=sum(D1(1:p)); for i=1:p percent1(i)=(D1(i)/s)100; acum1(i)=sum(percent1(1:i)); end % ---------------------------------------------------------- % Componentes principales a partir de la matriz de correlaciones. % Ordenación de los valores propios según la variabilidad % explicada (de más a menos). D2 es un vector fila. % Las columnas de T2 son los vectores propios ordenados. % [T2,D2]=eigsort(R); % corregimos los signos de T if ((sum(sign(T2(:,1))) < 0) & (sum(sign(T2(:,2))) < 0)) T2=-T2; end for i=1:p percent2(i)=(D2(i)/p)100; acum2(i)=sum(percent2(1:i)); end % ---------------------------------------------------------- % Las columnas de T1 son las componentes principales. % Representación de los datos. Y1=XT1; subplot(2,2,1); plot(Y1(:,1),Y1(:,2),'.b','MarkerSize',15) grid xlabel('1a. Componente Principal','FontSize',10) ylabel('2a. C.P.','FontSize',10) title(['A.C.P. a partir de S (',num2str(acum1(2)),'%)'],'FontSize',10) if n<= for i=1:n text(Y1(i,1),Y1(i,2),lab(i,:)); end end subplot(2,2,2); plot(D1,'o-b','LineWidth',2) hold on plot(mean(D1)ones(1,p),'-r','LineWidth',2) plot(0.7mean(D1)*ones(1,p),'--r','LineWidth',2) xlabel('valores propios','FontSize',10) title(['Scree-plot y Criterio de Kaisser (S)'],'FontSize',10) axis([1 p 0 D1(1)]) % ---------------------------------------------------------
Soluciones Ejercicios Análisis Multivariante Aurea Grané Chávez
El scree-plot nos sugiere seleccionar únicamente dos componentes principales.
Las dos primeras componentes principales consiguen explicar el 84.4% de la variabilidad total
de los datos.
La ecuación de la primera componente es:
Y1 = 0.3978alcalinidad + 0.3826pH + 0.3262*calcio + 0.3175 clorofila - 0.4196 mercurio_medio -
0.3853 * mercurio_min - 0.4045*mercurio_max
Observando la primera componente principal, vemos que todas las variables originales
contribuyen con un peso muy parecido (en valor absoluto). También se observa que las variables
que expresan las concentraciones de mercurio contribuyen de forma negativa al eje, mientras
que alcalinidad, pH, calcio y clorofila (que pueden considerarse como indicadores de la calidad
del agua del lago) lo hacen positivamente.
Por tanto, para un lago con valores elevados de alcalinidad, pH, calcio y clorofila elevados y
valores pequeños de concentraciones de mercurio la primera componente tomará un valor alto.
Mientras que para un lago con valores pequeños de alcalinidad, pH, calcio y clorofila elevados y
valores grandes de concentraciones de mercurio la primera componente tomará un valor bajo.
Luego esta primera componente está ordenando los lagos de menor calidad del agua (mayor
concentración de mercurio) a mayor calidad del agua (menor concentración de mercurio). De
manera que esta primera componente puede interpretarse como un indicador de la calidad del
agua del lago (o del grado de contaminación por mercurio del lago).
Por ejemplo, los lagos más contaminados son Annie (2), Brick (1), Alligator (5) y los menos
contaminados son Apopka (3), Farm-13 (15) y Parker (38).
Soluciones Ejercicios Análisis Multivariante Aurea Grané Chávez
La ecuación de la segunda componente es:
Y2 = 0.3691alcalinidad + 0.2449pH + 0.5600*calcio + 0.1566 clorofila + 0.4034mercurio_medio+
0.4373 mercurio_min + 0.3341*mercurio_max
En la segunda componente principal todas las variables originales contribuyen positivamente.
Sin embargo, las que tienen mayor peso son el calcio, la alcalinidad (o concentración de
carbonato de calcio) y las concentraciones de mercurio. El pH y la clorofila tienen poco peso en
esta componente.
Por tanto, esta componente está ordenando los lagos de menor a mayor concentraciones de
calcio y mercurio. Luego, los lagos situados en la parte superior del eje son lagos con altas
concentraciones de calcio y mercurio (como Puzzle (40), Harney (18)), mientras que los que se
sitúan en la parte inferior del eje son lagos con menores concentraciones de calcio y mercurio
(como Wildcat (52), Minneola (30)).
Soluciones Ejercicios Análisis Multivariante Aurea Grané Chávez
Observad que todas las variables Xi contribuyen positivamente a la primera componente
principal. Por tanto, esta componente puede interpretarse como el tamaño del árbol, siendo la
variable X 4 (peso total) la que más contribuye en esta primera componente. En la parte derecha
del primer eje se encontrarán los árboles más grandes, mientras que los más pequeños estarán
en la parte izquierda del eje.
Por otro lado, la segunda componente principal presenta contribuciones positivas y negativas
de las variables originales, siendo X 5 (peso desvainado) y X 6 (peso de las vísceras) las que más
contribuyen positivamente y X 7 (peso de la corteza) la que más contribuye de forma negativa.
Se trata de una componente de forma, que podría interpretarse como la madera útil del árbol.
En la parte superior del eje estarán los árboles con mayor cantidad de madera útil, mientras que
en la parte inferior del eje estarán aquellos árboles con poca cantidad de madera útil.
Por ejemplo, observad que el árbol nº 15 es un olmo grande y con gran cantidad de madera útil.
El nº 29 sería un olmo de tamaño medio y con poca cantidad de madera útil.
En cuanto a la selección del número de componentes, todos los criterios parecen indicar que es
suficiente con una sola componente principal.
También podemos calcular las correlaciones de las dos primeras componentes principales con
las variables Xi. Observad que todas las Xi están muy correlacionadas con el primer eje, pero ya
no lo están tanto con el segundo eje principal.
corr(Y1(:,1),X) = 0.9499 0.9790 0.8470 0.9996 0.9708 0.9374 0. corr(Y1(:,2),X) = -0.0613 -0.0732 -0.1730 -0.0192 0.2256 0.2294 -0.
Finalmente, observad que, si hubiéramos calculado las componentes principales a partir de la
matriz de correlaciones, la interpretación habría sido bastante similar. Observad las
coincidencias en ambas representaciones. La única salvedad es que el segundo eje calculado a
partir de R tiene signo opuesto al calculado con S, pero haciendo un cambio de signo a todos los
elementos del segundo autovector de R obtendríamos un gráfico de dispersión muy parecido.
Soluciones Ejercicios Análisis Multivariante Aurea Grané Chávez
Soluciones Ejercicios Análisis Multivariante Aurea Grané Chávez
R =
vemos que las variables explicativas están altamente correlacionadas, por lo que es posible que
existan problemas de multicolinealidad. Para averiguarlo, calculamos el número de
condicionamiento de la matriz R, es decir, la raíz cuadrada del cociente entre el máximo
autovalor de R y el mínimo autovalor de R
sqrt(max(eig(R))/min(eig(R))) = 38.
y obtenemos que es mayor que 30. Esto nos indica que R es una matriz mal condicionada y,
efectivamente, tenemos un problema de alta multicolinealidad.
Si queremos ver con más detalle el tipo de relación entre las variables explicativas y la variable
respuesta, también podemos hacer un gráfico de dispersión matricial mediante la instrucción
plotmatrix(data):
Podemos observar que todas las variables explicativas presentan una relación directa con la
variable respuesta (número de anillos del olmo). Además, se observa una cierta heterogeneidad
en los diagramas de dispersión de todas las explicativas con la respuesta.
Soluciones Ejercicios Análisis Multivariante Aurea Grané Chávez
Volvamos al problema de regresión que nos ocupa. Un procedimiento que se utiliza para el
tratamiento de la multicolinealidad es transformar las variables mediante componentes
principales, eliminar las menos informativas y expresar la variable respuesta en función de las
componentes que resumen mayor variabilidad.
Para obtener las componentes principales utilizaremos la función comp2.m y nos quedaremos
con las dos primeras componentes principales calculadas a partir de la matriz de covarianzas, es
decir, las dos primeras columnas de la matriz Y1, que explican el 98.8% de la variabilidad de los
datos.
[T1,Y1,acum1,T2,Y2,acum2]=comp2(X)
T1 = 0.2149 -0.6148 0.4125 0.1264 -0.0792 -0.3997 -0. 0.1781 -0.4740 0.3411 0.0066 -0.0492 0.3499 0. 0.0636 -0.1182 0.0791 -0.2245 0.1832 0.7945 -0. 0.8445 0.2667 -0.1021 -0.0866 -0.4418 0.0381 -0. 0.3181 -0.2090 -0.4944 0.6127 0.4805 0.0641 0. 0.1705 -0.2970 -0.3734 -0.7412 0.3496 -0.2508 0. 0.2730 0.4247 0.5594 -0.0346 0.6398 -0.1347 0. acum1 = 97.5267 98.7753 99.5667 99.8136 99.9042 99.9606 100.
La interpretación de estas dos primeras componentes es similar a la del Ejercicio 14. La primera
componente mide el tamaño del olmo, mientras que la segunda contrapone medidas como
longitud y diámetro del árbol (X 1 , X 2 ) frente al peso de la corteza (X 7 ) y también, de alguna forma
está midiendo la cantidad de madera útil del olmo.
Tanto el scree-plot como los criterios de Kaisser y Jolliffe aconsejan seleccionar solamente una
componente principal. Si lo hacemos, sólo podremos plantear un modelo de regresión lineal
simple. Si queremos un modelo de regresión lineal múltiple, debemos escoger por lo menos dos
componentes principales.
Soluciones Ejercicios Análisis Multivariante Aurea Grané Chávez
Para obtener los valores predichos y representar los residuos en función de los valores
predichos, podemos hacer:
predicciones=regresores*b;
scatter(predicciones,r)
En el gráfico de residuos no observamos ninguna forma no lineal, ni graves problemas de
heterogeneidad. La mayoría de residuos se mantienen entre -5 y 5, salvo algunos que se escapan
y que posiblemente correspondan a las observaciones identificadas como atípicas.