Méthode de Monté Carlo: On qualifie de méthode de Monté Carlo tout algorithme de calcul reposant sur des tirages aléatoires, dont le résultat change selon ces tirage, et dont le résultat est d'autant plus précis que le nombre de tirages est élevé. Par exemple, on peut calculer une valeur approchée de Pi de la manière suivante : on prend des points au hasard (uniformément) dans le carré [0,1]x[0,1] et on regarde combien sont dans le quart de disque de centre O et de rayon 1. Le rapport du nombre de points à l'intérieur sur le nombre de points total est proche de Pi/4. Faite l'experience dans R.
pi.monte.carlo.plot <- function (n=10000, pch='.', ...) { x <- runif(n) y <- runif(n) interieur <- x^2 + y^2 <= 1 p <- 4*sum(interieur)/n xc <- seq(0,1,length=200) yc <- sqrt(1-xc^2) plot( xc, yc, type='l' ) lines( c(0,1,1,0,0), c(0,0,1,1,0) ) abline(h=0, lty=3) abline(v=0, lty=3) points(x[interieur], y[interieur], col='red', pch=pch, ...) points(x[!interieur], y[!interieur], pch=pch, ...) title(main=paste("Simulation de Monté Carlo : pi=",p,sep='')) } pi.monte.carlo.plot(100, pch='+', cex=3) pi.monte.carlo.plot()
Coder la base donnée en cours (tennis attributs et données ) et tester les applet suivante :

Clustering de données simulées
1. Exemple de clustering en utilisant l'algorithme kmeans
a) Entrer chacune des commandes en donnant un commentaire sur ce quÕelle fait.
# Cette commande.
library(cluster)
# Cette commande permet deÉ
set.seed(19)
#
data <- rbind(matrix(rnorm(100, sd = 0.3), ncol = 2),
#
matrix(rnorm(100, mean = 1, sd = 0.3), ncol = 2))
#
colnames(data) <- c("x", "y")
# K corresponds
K <- 2
#
cl1 <- kmeans(data, K)
#
plot(data, col = cl1$cluster)
#
points(cl1$centers, col = 1:2, pch = 8, cex=2)
b) Que donnerait le mme calcul pour k=3 ? k= 4 ?
c) Comparer la silhouette obtenue pour k=2, k=3 et k=4.
2. Réaliser la même analyse en utilisant un algorithme de clustering hiérarchique
á Pour cela utiliser la fonction hclust() en imposant une dcoupe de l'arbre 2 clusters: fonction cutree ()
á Imprimer l'arbre de clusters en utilisant la fonction plot()
3. Calculer la silhouette des partitions ainsi obtenues et comparez les
á utilisez pour cela la fonction silhouette(tree_cut, dist=distance_matrix) du package cluster
Clustering de profils d'expression transcriptionnelle
Donnes d'expression issues de la comparaison des profils transcriptomiques du tissu adipeux chez des obeses massifs versus des sujets normopondraux:
library(FunNet)
data(obese)
On peut lister les objects crs avec objects(). Les donnes utiliser sont down.frame qui contient les gnes down-rguls, et up.frame qui contient les gnes up-rguls.
á Faire une ACP des donnes avec la librairie FactoMineR (fonction PCA). Que remarquez-vous sur les graphiques.
á Faire une analyse de clustering des patients en utilisant un algorithme de clustering hirarchique et identifiez la partition optimale l'aide d'un calcul itratif de la silhouette. Reprsenter cette partition sur le graphe PCA des individus.
á Faire de mme avec un algorithme de k-means.
Concernant l'éditeur sed, voici un lien