Projet 5

NB: Les algorithmes pourront être mis en oeuvre sous Matlab ou sous R selon votre préférance.

Sélection de variables dans le modèle logistique

On considère des données sur les tumeurs de la vessie recueillies sur une centaines de patients. Ces données sont disponibles a l'adresse suivante: données. Il faut me demander l'accès pour pouvoir les télécharger.

Chaque ligne représente un patient. Les colonnes A jusqu'à H représentent des informations diverses sur l'individu ou sur la gravité de sa tumeur. Ce sont des données confidentielles à ne pas diffuser. Les colonnes I jusqu'à AP donnent l'expression d'un gène particulier pour chaque patient. On classe les patients en deux groupes. Ceux pour lesquels la tumeur est superficielle et ceux pour lesquels elle est invasive. Cette information est donnée dans la colonne G.

On peut mettre un modèle logistique sur les données: on prend 1 pour invasif et 0 pour superficiel. On voudrait pouvoir expliquer la nature (0 ou 1) de la tumeur en fonction de l'expression des gènes qui ont été analysés. L'approche la plus immédiate consiste à estimer les coefficients de régression pour chaque gène par maximum de vraisemblance pour le modèle de régression logistique. Malheureusement (ou plutôt heureusement), on a grosso modo autant de patients que de gènes et donc moralement, une seule donnée par coefficient de régression. Ainsi, l'estimation par maximum de vraisemblance n'est pas du tout fiable.

Pour contourner ce problème, on utilise l'intuition que seuls quelques gènes ont un rôle dans cette pathologie et donc que seuls quelques coefficients de régression sont non nuls. Pour être raisonnables, on pense qu'il serait préjudiciable pour la qualité de l'analyse d'avoir plus de 20 coefficients non nuls.

Une façon de procéder est alors d'utiliser le critère BIC ou le critère AIC afin de pénaliser la vraisemblance. Pour cela, on propose un ensemble de gènes et on calcule l'estimateur au sens du maximum de vraisemblance puis on pénalise la valeur de la vraisemblance pour cet estimateur par la valeur de la pénalisation BIC ou AIC.

Afin d'utiliser une approche par Recuit-Simulé, on peut procéder de la manière suivante: on affecte à chaque gène j une variable Zj égale à 1 si le gène est pris en compte dans le modèle et 0 s'il ne l'est pas. L'optimisation se fait alors sur le vecteur de regression β, conjointement avec le vecteur à composantes binaires z.

  1. Ecrire une chaine de type Recuit Simulé pour estimer (β ,z).

  2. Afficher les trajectoires de la chaine de Markov correspondant a vos simulations pour quelques parametres.

  3. Afficher la fonction d'autocorrélation sur une fenêtre glissante pour quelques paramètres. Commenter.

  4. Afficher un histogramme pour les lois marginales a posteriori des coefficients de régression.

  5. Donner le groupe de gènes qui atteint la meilleure valeur pour le critère AIC, puis pour BIC.

  6. Donner des intervalles de confiance pour les paramètres de régression sélectionnés par la méthode.

Une autre façon de procéder est de ne pas introduire de vecteur z mais de considéder l'estimation du vecteur β selon une approche Bayesienne. Une idée très en vogue en ce moment est de supposer une loi apriori où les composantes de β sont indépendants et suivent une loi de type Laplace.

  1. Ecrire une chaine de Metropolis-Hastings pour estimer β.

  2. Afficher les trajectoires de la chaine de Markov correspondant a vos simulations pour quelques parametres.

  3. Afficher la fonction d'autocorrélation sur une fenêtre glissante pour quelques paramètres. Commenter.

  4. Afficher un histogramme pour les lois marginales a posteriori des coefficients de régression.

La deuxième procédure choisit-elle elle aussi des coefficients significatifs ? sont-ils les mêmes que pour la première méthode ?