---
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'))
```