--- title: "Componente Principales" author: "Mauro E. Lioy" output: html_notebook ---   #### **EJERCICIO 4 - Práctica 4 - Parte 2**
En las Tablas 2 y 3 y en el archivo __P4-2-ej4-2019.txt__ figuran los datos de las mediciones de huesos y dientes de ratones campestres (de la especie Microtus). Las variables son: + $y_1$ = ancho del molar 1 superior izquierdo + $y_2$ = ancho del molar 2 superior izquierdo + $y_3$ = ancho del molar 3 superior izquierdo + $y_4$ = longitud de la inserción del incisivo + $y_5$ = longitud del hueso del paladar + $y_6$ = longitud del cóndilo del incisivo o longitud del cráneo + $y_7$ = altura del cráneo por encima de la bullae + $y_8$ = ancho del cráneo a través de la cara Las variables y1 a y 5 son en mm/1000; las variables y 6 a y 8 son en mm/100. La variable grupo indica la especie de los ratones, siendo 1 la especie Microtus multiplex (Tabla2) y2 la especie Microtus subterraneus (Tabla 3). Consideremos solamente las primeras 3 variables ($y_1$ , $y_2$ , $y_3$ ) que son el ancho de los molares superiores izquierdos 1, 2 y 3 respectivamente, para las 43 ratas del grupo 1. __(a)__ Hallar las componentes principales muestrales y los autovalores de $S$. __(b)__ Hallar los porcentajes de la variabilidad total explicados por la primera y por las dos primeras componentes, e interpretarlas en función de las variables originales.
  #### **RESOLUCIóN** ```{r} rm(list = ls()) graphics.off() ```   **DATOS** ```{r} ## DATOS ########################################### #ds = read.table(file.choose(), header = ) ds = read.table('/home/maurolioy/Documentos/MEL/MAESTRIA/Multivariado/Practicas/P4/II/R/datos/datos_P4_ex4_p2.txt',header = T) # Nos quedamos con las variables Y1,Y2,Y3 del grupo 1 ds1 = ds[ds$Grupo == 1,-c(1,5:9)] ```   **AUTOVALORES Y AUTOVECTORES DE S** Recordemos los estimadores de MV de $\mathbf{\mu}$ y $\Sigma$: $$ \hat{\mathbf{\mu}} = \bar{ \mathbf{x} } \quad \text{y} \quad S = \frac{Q}{n} $$ ```{r} n = nrow(ds1) #43 Q = (n-1) * cov(ds1) S = Q/n ``` Matriz S ```{r} print(S) ``` ```{r} gamma_objet = eigen(S) autovalores = gamma_objet$values ``` **Autovalores de S** |$\lambda_1$|$\lambda_2$|$\lambda_3$| |-|-|-| |39040.432|7650.393|2770.575|   **COMPONENTES PRINCIPALES MUESTRALES** Sea: $$\hat{\Sigma} = \hat{\Gamma}\hat{\Lambda}\hat{\Gamma}^T$$ Entonces: $$\hat{\mathbf{v}}_i = \hat{\Gamma}^T (\mathbf{x}_i - \mathbf{\bar{x}}) $$ Donde: + $\mathbf{x}_i$ y $\mathbf{\bar{x}}$ $\in R^p$ (en este caso $p=3$). + $\hat{\mathbf{v}}_i \in R^q$ es el vector de componetes principales de la medicion $i$ (en este caso $q=p=3$). + $\hat{\Gamma}$ es la matriz de autovectores de $S$. + $\hat{\Gamma} \in R^{p \times q}$ (en este caso $p=3$ y $q=3$). ```{r} Gamma = gamma_objet$vectors x_bar = matrix(colMeans(ds1), ncol = 1) x_menos_mu = sweep(as.matrix(ds1), 2, x_bar) v = t(Gamma)%*%t(x_menos_mu) ``` ```{r} print(t(v)) ``` $nbsp; **VARIABILIDAD** Las componentes principales explican una porción de la dispersión total medida a través de la traza. + $Tr(\Sigma) = Tr(\Gamma\Lambda\Gamma^T)=Tr(\Gamma^T\Gamma\Lambda) = Tr(\Lambda)$ + $\hat{\Lambda} = \text{diag}(\hat{\lambda_1},\hat{\lambda_2},\hat{\lambda_3})$ + $Tr(\hat{\Lambda}) = \hat{\lambda_1}+\hat{\lambda_2}+\hat{\lambda_3}$ + $\hat{\text{var}}(v_j)=\hat{\lambda_j}$ Queremos calcular: $$\frac{\hat{\lambda_1}}{ \sum_{j=1}^{3} \hat{\lambda_j}}$$ y $$\frac{\hat{\lambda_1} + \hat{\lambda_2} }{ \sum_{j=1}^{3} \hat{\lambda_j}}$$ ```{r} ## VARIABILIDAD #################################### suma_p = sum(autovalores) # variabilidad 1 pp1 = autovalores[1] / suma_p # variabilidad 1+2 pp12 = (autovalores[1] + autovalores[2]) / suma_p ``` Luego: $$\frac{\hat{\lambda_1}}{ \sum_{j=1}^{3} \hat{\lambda_j}} = 0.789$$ $$\frac{\hat{\lambda_1} + \hat{\lambda_2} }{ \sum_{j=1}^{3} \hat{\lambda_j}} = 0.943$$   **Correlaciones** $$\text{Corr}(\mathbf{x_{j}},\mathbf{v_{l}}) = \rho_{\mathbf{x_j},\mathbf{v_l}} = \gamma_{l,j}\sqrt{\frac{\lambda_l}{\sigma_{jj}}}$$ ```{r} Corr_Xjvl = matrix(0,nrow = 3,ncol=3) ## este loop me da para cada variable Xj la correlación con todas las componentes vl for(j in 1:3){ gammma_lj = Gamma[j,] correlaciones_j = gammma_lj * sqrt(autovalores / S[j,j]) Corr_Xjvl[j,] = correlaciones_j } ``` ```{r} data.frame(t(Corr_Xjvl),row.names = c('v1','v2','v3')) ```