Appariement de deux groupes de personnes

Résolu
borisparis -  
 borisparis -
Bonjour,

je dois faire un travail d'appariement de deux groupes de personnes (des patients)..

Je mets un fichier d'exemple ici: http://www.cjoint.com/c/GGAjN56ZLR3

Un peu compliqué, je reconnais...

j'ai une liste de 96 personnes (qui ont fait un infarctus) - classeur 1
Je dois chercher dans une liste de 3043 témoins (des personnes qui n'ont pas d'infarctus) des personnes qui ressemblent le plus au premier groupe- classeur 2

En clair pour chaque personne de la première liste je dois trouver dans la seconde, une (voire deux idéalement) personne qui est voisine pour les variables des colonnes C (âge), D (IMC), E (HbA1c) F (HDL), G (sexe) et H (tabac)

Pour la C ca peut être +/- 2
Pour la D ca peut être +/-6%
Pour la E ca peut être +/- 6%
pour la F ca peut être +/- 6%
Pour la G et H ca doit être exacte (variable oui/non)

Il se peut que je doive ajouter ou enlever une variable plus tard dans un autre appariement pour d'autres calculs...

Si c'est quelqu'un a déjà fait cela ou sait le faire...;

Merci

5 réponses

  1. borisparis Messages postés 87 Statut Membre 1
     
    Ca l'air très bien.
    Je peux changer le % ?
    et si je veux enlever une variable ?

    en fait je n'arrive pas à ouvrir le code
    1
    1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      Dans le groupe 2 tu as des données absentes.
      On peut éliminer ces témoins sans autre forme de procès ?
      Ca rajoute des tests inutiles qui rallongent les temps de calcul pour rien.
      0
    2. borisparis Messages postés 87 Statut Membre 1
       
      Oui on peut effectivement les enlever
      0
  2. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
     
    Bonjour,

    est-ce qu'un témoin peut être associé à 2 personnes ou plus ?
    S'il n'y a pas de solution est-ce qu'un dépassement des 6% sur qq lignes est toléré ou tu te mets en quête d'autres témoins ?
    eric
    0
  3. borisparis
     
    1) non un témoin ne doit être utilisé qu'une seule fois
    2) oui on peut tolérer plus si aucune solution. En faut à la fin que les deux groupes ait des moyennes qui ne soient pas statistiquement significatives

    Merci de ton aide...
    0
    1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      Heuuuu, attend pour le merci, pas dit que je trouve comment l'attaquer ;-)
      Surtout si ça doit évoluer dans les variables. En vba peu de souplesse, et je ne vois pas comment présenter ton truc au solveur... :-s
      0
  4. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759
     
    Bonsoir à vous deux

    Un essai par fonction personnalisée par macro avec pour l'instant un nombre fixe de variables et de % de variation :

    https://mon-partage.fr/f/Yz8z5D8g/

    Cdlmnt
    Via
    0
    1. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      Salut via,

      Pour l'age c'est +/- 2 ans, j'ai bien l'impression que tu as mis +/- 2%... ;-)
      eric
      0
    2. borisparis Messages postés 87 Statut Membre 1
       
      C'est peut être pour cela que beaucoup n'ont pas de correspondants ?
      0
    3. eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention   7 281
       
      Ca n'aide pas oui :-)
      0
    4. via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention   2 759 > eriiic Messages postés 24581 Date d'inscription   Statut Contributeur Dernière intervention  
       
      Bonjour à vous deux

      Exact j'ai mis +/- 2 %
      Pour ouvrir le code ALT+F11
      Pour corriger :
      Au début des IF remplacer les 2 premiers par :
      If age <= .Range("C" & n) +2 and age >= .Range("C" & n) -2...

      Cdlmnt
      Via
      0
    5. borisparis > via55 Messages postés 14393 Date d'inscription   Statut Membre Dernière intervention  
       
      Merci++ J'ai fait le changement.
      Mais je ne sais pas comment je fais tourner le programme mis à jour...
      désolé de ces questions basiques
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
     
    Bonjour à tous,

    Je suis parti sur un traitement en table mémoire nécessairement plus rapide.
    - comme indiqué, j'élimine les lignes avec rubriques vides
    - ceux qui ne sont pas appariés à 6% sont repris par pas de 1%
    - j'ai mis le numéro apparié et à côté les caractéristiques paire avec le seuil de tolérance utilisé.

    http://www.cjoint.com/c/GGBuieYOLUl

    L'appariement s'effectue avec clic sur le bouton "Apparier".
    Il reste un vide mais c'est pour confirmer la règle ! ;-)
    0
    1. borisparis
       
      Excellent !
      comment est mesuré le seuil de tolérance ?

      si je veux enlever des variables, c'est possible sans tout casser ou non?
      0
    2. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
       
      Bonjour,

      Le seuil de tolérance est ajusté avec la variable 'tlc' (tolérance courante) qui varie depuis la valeur de 'tln' jusqu'à la valeur de 'tlx' par pas de 1%.

      Pour enlever des variables, tu mets en commentaire (') le test correspondant qui est indiqué dans le code ainsi que le 'End If' correspondant.
      0
    3. gbinforme Messages postés 14930 Date d'inscription   Statut Contributeur Dernière intervention   4 744
       
      re
      Une version plus conviviale car tu enlèves les variables à la volée, il te suffit de choisir "N" dans la liste pour que le paramètre de cette colonne soit ignoré.

      http://www.cjoint.com/c/GGCihWnSGsl
      0
    4. borisparis
       
      C'est juste génial !
      une dernière petite demande: est-ce qu'on peut ajouter 3 colonnes de variables qualitatives aussi en 0/1 variables comme pour tabac et sexe ?
      Je ne voudrais pas toucher au code moi-même au risque de tout casser...
      0
    5. borisparis
       
      J'avais encore une dernière des dernières demandes (si possible....) : c'est d'avoir la possibilité de mettre un deuxième apparié par patient. Mais que ce soit en option...
      0