library(tidyverse)
library(mvtnorm)
Exercice
Simuler des données dans \(R^2\) issues d’un mélange de 2 vecteurs gaussien à 2 classes. Pour ce faire, il suffit de simuler une variable \(Y\) qui prend par exemple les valeurs 1 ou 2 avec probabilité \(p_1 = \mathbb{P}(C_1)\) et \(p_2=\mathbb{P}(C_2)\) respectivement. Puis, conditionnellement a la valeur de \(Y\), simuler un vecteur \(X\) qui suit une loi normale en dimension 2 (i.e. si \(Y = j\), \(X \sim N(\mu_j,\Sigma_j)\) pour \(j = 1, 2\)).
n <- 1000; p1 <- 0.4; p2 <- 0.6; mu1 <- c(0.5,2); mu2 <- c(1.5,1)
Sigma1 <- diag(c(0.1,0.1)); Sigma2 <- diag(c(0.2,0.2))
y <- sample(c(1,2),size=n,prob=c(p1,p2),replace=TRUE)
y <- sort(y); y<-factor(y); y <- data.frame(y)
n1 <- sum(y==1);n2 <- sum(y==2)
x <- rbind(rmvnorm(n1,mu1,Sigma1),rmvnorm(n2,mu2,Sigma2))
x <- data.frame(x)
D <- cbind(x,y)
colnames(D) <- c("x1","x2","y")
summary(D)
## x1 x2 y
## Min. :-0.4311 Min. :-0.2764 1:392
## 1st Qu.: 0.5830 1st Qu.: 0.8903 2:608
## Median : 1.1014 Median : 1.3469
## Mean : 1.1006 Mean : 1.3633
## 3rd Qu.: 1.5669 3rd Qu.: 1.8844
## Max. : 3.0218 Max. : 3.0315
D %>% filter(y==1) %>% count()
## n
## 1 392
D %>% filter(y==2) %>% count()
## n
## 1 608
#View(D %>% filter(y==2) %>% sample_n(8))
ggplot(D,aes(x = x1, y= x2)) + geom_point()
ggplot(D,aes(x = x1, y= x2, color = y)) +
geom_point() +
labs(title = "Nuage de points")
ggplot(D,aes(x = x1, y= x2, color = y)) +
geom_point() +
labs(title = "Nuage de points")
Les données Iris, stockées sous R, sont très célèbres. Elles ont été collectées par Edgar Anderson.
Les variables considérérées sont mesurées sur 150 fleurs (trois espèces d’iris : iris setosa, iris versicolor et iris virginica) :
data(iris)
summary(iris)
## Sepal.Length Sepal.Width Petal.Length Petal.Width
## Min. :4.300 Min. :2.000 Min. :1.000 Min. :0.100
## 1st Qu.:5.100 1st Qu.:2.800 1st Qu.:1.600 1st Qu.:0.300
## Median :5.800 Median :3.000 Median :4.350 Median :1.300
## Mean :5.843 Mean :3.057 Mean :3.758 Mean :1.199
## 3rd Qu.:6.400 3rd Qu.:3.300 3rd Qu.:5.100 3rd Qu.:1.800
## Max. :7.900 Max. :4.400 Max. :6.900 Max. :2.500
## Species
## setosa :50
## versicolor:50
## virginica :50
##
##
##
Exercice :
Visualiser les données iris. Afficher les stats descriptives.
Considérer les longueurs et la largeurs des pétales et tracer les trois ensembles de points sur un même graphique.
iris_B <- iris %>% select(Petal.Length,Petal.Width,Species)
ggplot(iris_B,aes(x = Petal.Length ,y = Petal.Width,color = Species)) + geom_point() + labs(title = "Nuage de points")
Decoupage des données en blocs.
D <- iris_B; n <- nrow(D)
p <- 0.8
ntrain <- floor(n*p)
ind <- sample(1:n, ntrain, replace=FALSE);
Dtrain <- D[ind,]
Dval <- D[-ind,]
ggplot(Dtrain,aes(x = Petal.Length ,y = Petal.Width,color = Species)) + geom_point() + labs(title = "Nuage de points d'entrainement")
ggplot(Dval,aes(x = Petal.Length ,y = Petal.Width,color = Species)) + geom_point() + labs(title = "Nuage de points de validation")
data(spam,package = "kernlab")
#View(spam)