Disons que j'ai un grand ensemble de valeurs qui se répètent parfois. Je souhaite estimer le nombre total de valeurs uniques dans le grand ensemble.
Si je prends un échantillon aléatoire de valeurs et détermine qu'il contient des valeurs uniques , puis-je l'utiliser pour estimer le nombre de valeurs uniques dans le grand ensemble?
estimation
sampling
santé mentale
la source
la source
Réponses:
Voici un document complet sur le problème, avec un résumé des différentes approches. Cela s'appelle Distinct Value Estimation dans la littérature.
Si je devais le faire moi-même, sans avoir lu de papiers fantaisistes, je le ferais. Dans la construction de modèles de langage, il faut souvent estimer la probabilité d'observer un mot inconnu auparavant, étant donné un tas de texte. Une assez bonne approche pour résoudre ce problème pour les modèles de langage en particulier consiste à utiliser le nombre de mots qui se sont produits exactement une fois, divisé par le nombre total de jetons. C'est ce qu'on appelle la bonne estimation de Turing .
Soit u1 le nombre de valeurs qui se sont produites exactement une fois dans un échantillon de m éléments.
Soit u le nombre d'articles uniques dans votre échantillon de taille m.
Si vous supposez à tort que le taux de `` nouvel article suivant '' n'a pas diminué à mesure que vous avez obtenu plus de données, alors en utilisant Good Turing, vous aurez
Cela a un comportement désagréable car u1 devient vraiment petit, mais cela pourrait ne pas être un problème pour vous dans la pratique.
la source
s
dans ce cas? le nombre total de «mots»?s
se produit deux fois dans ce, à la fois sur la taille de la main gauche et droite?La stratégie de simulation
Collect m échantillons aléatoires de taille n de l'ensemble S . Pour chacun des m échantillons, calculez le nombre u de valeurs uniques et divisez par n pour normaliser. À partir de la distribution simulée de u normalisé , calculer des statistiques sommaires d'intérêt (p. Ex. Moyenne, variance, plage interquartile). Multipliez la moyenne simulée de u normalisé par la cardinalité de S pour estimer le nombre de valeurs uniques.
Plus m et n sont élevés , plus votre moyenne simulée correspondra étroitement au nombre réel de valeurs uniques.
la source
Voici une implémentation pour les pandas:
Se base sur les sections 2 et 4 de ce document: http://ftp.cse.buffalo.edu/users/azhang/disc/disc01/cd1/out/papers/pods/towardsestimatimosur.pdf
la source