Appariement de deux groupes de personnes

Résolu/Fermé
borisparis - 26 juil. 2017 à 12:07
 borisparis - 31 juil. 2017 à 10:53
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

borisparis Messages postés 79 Date d'inscription vendredi 21 août 2015 Statut Membre Dernière intervention 9 août 2023 1
26 juil. 2017 à 23:51
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
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 212
27 juil. 2017 à 00:42
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
borisparis Messages postés 79 Date d'inscription vendredi 21 août 2015 Statut Membre Dernière intervention 9 août 2023 1
27 juil. 2017 à 08:02
Oui on peut effectivement les enlever
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 212
26 juil. 2017 à 12:58
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
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
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 212
26 juil. 2017 à 19:32
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
via55 Messages postés 14402 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 18 avril 2024 2 702
26 juil. 2017 à 21:45
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
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 212
26 juil. 2017 à 23:51
Salut via,

Pour l'age c'est +/- 2 ans, j'ai bien l'impression que tu as mis +/- 2%... ;-)
eric
0
borisparis Messages postés 79 Date d'inscription vendredi 21 août 2015 Statut Membre Dernière intervention 9 août 2023 1
26 juil. 2017 à 23:52
C'est peut être pour cela que beaucoup n'ont pas de correspondants ?
0
eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023 7 212
27 juil. 2017 à 00:42
Ca n'aide pas oui :-)
0
via55 Messages postés 14402 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 18 avril 2024 2 702 > eriiic Messages postés 24569 Date d'inscription mardi 11 septembre 2007 Statut Contributeur Dernière intervention 28 décembre 2023
27 juil. 2017 à 11:41
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
borisparis > via55 Messages postés 14402 Date d'inscription mercredi 16 janvier 2013 Statut Membre Dernière intervention 18 avril 2024
27 juil. 2017 à 12:07
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
27 juil. 2017 à 22:13
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
Excellent !
comment est mesuré le seuil de tolérance ?

si je veux enlever des variables, c'est possible sans tout casser ou non?
0
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
28 juil. 2017 à 07:49
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
gbinforme Messages postés 14946 Date d'inscription lundi 18 octobre 2004 Statut Contributeur Dernière intervention 24 juin 2020 4 684
28 juil. 2017 à 10:10
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
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
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