  ```{r setup, include=FALSE}
knitr::opts_chunk$set(echo = TRUE)
```

## Simulation de données
```{r}
set.seed(123)
x1=rnorm(20)
x2=0.5*x1+0.1*rnorm(20)
X=cbind(x1,x2)
X=scale(X,scale=F)
plot(X, asp=1, pch=20, cex=1.5)    ## graphe orthonormé
abline(h=0,lty=2)
abline(v=0,lty=2)
```
## SVD

```{r}
S=svd(X)
S$v
lines(c(0,S$v[1,1]),y=c(0,S$v[2,1]),lwd=2) # 1er vecteur propre
sum(S$v[,1]^2)
```

```{r}
X1_hat <- (S$u[,1]*S$d[1])%*%t(S$v[,1,drop=FALSE])
X1_hat
points(X1_hat,col="red",pch=20,cex=1.5)
```

## Si on regarde le point en bas à gauche, sa coordonnée sur la 1ère composante principale de l'ACP : Estimer ses coordonnées sur la 1ère dimension de l'ACP. Faire l'ACP non normée sur X et vérifier.

```{r}
-sqrt(2.112816129^2+1.045944052^2)
pca=PCA(X,scale=F,gr=F)
pca$ind$coord
```

## 2ème vecteur propre

```{r}
lines(c(0,S$v[1,2]),y=c(0,S$v[2,2]),col="blue")
```

## Et si on modifie les vp ??
```{r}
valP=S$d
points(S$u%*%diag(valP)%*%t(S$v),col="green",pch=20)
```

## Et si on modifie les vp ??
```{r}
valP <- c(2,0.32)
points(S$u%*%diag(valP)%*%t(S$v),col="green")
```

```{r}
valP <- c(1,2)
points(S$u%*%diag(valP)%*%t(S$v),col="red")
```

