Les posteurs les plus actifs de la semaine
Aucun utilisateur |
Sujets les plus vus
Tirage aléatoire pondéré
Page 1 sur 1
Tirage aléatoire pondéré
Bonjour,
Sur mon site chaque utilisateurs à un certain nombre de points qui pondère ses chances d'être tiré au sort.
Un moyen simple serait d'entrer dans une table le nom de chaque utilisateur autant de fois qu'il a de points. Ca marche très bien techniquement et c'est statistiquement correct n'est-ce pas ?
Le problème est que j'ai plus de 5 000 utilisateurs qui peuvent avoir jusqu'a 10 000 points, je peux donc me retrouver avec 50 000 000 de noms à insérer dans une table mysql, je n'ose même pas l'envisager.
J'ai donc penser à une autre solution :
- Je tire un nombre aléatoire compris entre le nombre minimum de points détenu par mes utilisateur et le nombre max.
- J'insère UNE fois le nom de chaque utilisateur dont le nombre de points est supèrieur à mon nombre aléatoire
- Je tire au sort un des nom
Cette solution est-elle selon vous statistquement équivalente à la première ?
Si je ne m'abuse les chances d'être tiré au sort d'un individu dans le premier cas est de :
(Nbre de points détenus)/(Nbre de points total)
Mais dans le deuxième ? Quelles sont les chances d'être tiré au sort ? Je n'arrive pas à le modéliser.
Merci de votre aide.
Sur mon site chaque utilisateurs à un certain nombre de points qui pondère ses chances d'être tiré au sort.
Un moyen simple serait d'entrer dans une table le nom de chaque utilisateur autant de fois qu'il a de points. Ca marche très bien techniquement et c'est statistiquement correct n'est-ce pas ?
Le problème est que j'ai plus de 5 000 utilisateurs qui peuvent avoir jusqu'a 10 000 points, je peux donc me retrouver avec 50 000 000 de noms à insérer dans une table mysql, je n'ose même pas l'envisager.
J'ai donc penser à une autre solution :
- Je tire un nombre aléatoire compris entre le nombre minimum de points détenu par mes utilisateur et le nombre max.
- J'insère UNE fois le nom de chaque utilisateur dont le nombre de points est supèrieur à mon nombre aléatoire
- Je tire au sort un des nom
Cette solution est-elle selon vous statistquement équivalente à la première ?
Si je ne m'abuse les chances d'être tiré au sort d'un individu dans le premier cas est de :
(Nbre de points détenus)/(Nbre de points total)
Mais dans le deuxième ? Quelles sont les chances d'être tiré au sort ? Je n'arrive pas à le modéliser.
Merci de votre aide.
tip59- Nombre de messages : 1
Date d'inscription : 21/03/2008
Re: Tirage aléatoire pondéré
Bonjour,
tu peux aussi tout simplement tirer au hasard tes individus en fixant leur probabilité d'être tiré au sort comme le nombre de points qu'ils ont divisisé par le nombre de points total. Avec des logiciels comme R c'est très facile à mettre en oeuvre avec la fonction sample.
Ta deuxième solution ne semble pas juste d'un point de vue statistique puisqu'une fois le seuil tirer au hasard tout les noms qui vont dépasser ce seuil auront la même probabilité d'être tiré au sort. Dans la deuxième phase tu perds de vue le nombre de points.
Pour la deuxième solution un exemple avec quatre valeurs et quatre poids :
a (0.05), b (0.4), c (0.15), d (0.05). Pour que la valeur "d" soit tirée il faut que le seuil soit inférieur à 0.05 et ensuite que "d" soit tirée parmis les 4 valeurs puisquent toutes les autres sont aussi supérieures à 0.05. La probabilité de tirer une valeur qui soint inférieure à 0.05 est de 1/8 (0.05/(0.4-0)) et ensuite la probabilité de tirer une valeur parmis 4 est de 1/4. Donc 1/8*1/4 donne 0.03125. Rien qu'avec cet exemple tu vois bien qu'en adoptant cette stratégie tu modifies la probabilité de tirer tes valeurs.
Donc que t'on tirage ne va pas refleter tes poids de départ.
micros
tu peux aussi tout simplement tirer au hasard tes individus en fixant leur probabilité d'être tiré au sort comme le nombre de points qu'ils ont divisisé par le nombre de points total. Avec des logiciels comme R c'est très facile à mettre en oeuvre avec la fonction sample.
Ta deuxième solution ne semble pas juste d'un point de vue statistique puisqu'une fois le seuil tirer au hasard tout les noms qui vont dépasser ce seuil auront la même probabilité d'être tiré au sort. Dans la deuxième phase tu perds de vue le nombre de points.
Pour la deuxième solution un exemple avec quatre valeurs et quatre poids :
a (0.05), b (0.4), c (0.15), d (0.05). Pour que la valeur "d" soit tirée il faut que le seuil soit inférieur à 0.05 et ensuite que "d" soit tirée parmis les 4 valeurs puisquent toutes les autres sont aussi supérieures à 0.05. La probabilité de tirer une valeur qui soint inférieure à 0.05 est de 1/8 (0.05/(0.4-0)) et ensuite la probabilité de tirer une valeur parmis 4 est de 1/4. Donc 1/8*1/4 donne 0.03125. Rien qu'avec cet exemple tu vois bien qu'en adoptant cette stratégie tu modifies la probabilité de tirer tes valeurs.
Donc que t'on tirage ne va pas refleter tes poids de départ.
micros
Invité- Invité
Page 1 sur 1
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum