1 votes

Excel - Nombres aléatoires - et instruction If

Dans "A", lignes 1-1000, je génère des nombres aléatoires en utilisant RAND(). Je veux choisir des nombres entre 1 et 100.

Dans "B" pour 1000 lignes, j'ai =RAND()*(100-1)+1

Dans "C", pour 1000 lignes, j'utilise les chiffres que j'ai générés dans "A", donc =A1*(100-1)+1

Les moyennes en B et C sont les mêmes, comme prévu.

Je ne veux utiliser les valeurs que pendant 20 % du temps, donc pour chacune des 1000 lignes :

Pour B, j'utilise =IF(A1<0.2,B1,0)
Pour C, j'utilise =IF(A1<0.2,C1,0)

Si je fais cela, les moyennes de chacune des deux colonnes sont très différentes.

Quelqu'un peut-il expliquer pourquoi ?

Les deux approches utilisent des nombres aléatoires. La première approche utilise deux nombres aléatoires différents (celui de la colonne "A" et celui utilisé dans le calcul de la colonne "B").

3voto

Marcks Thomas Points 6152

Les colonnes A et B ont la même distribution uniforme, à part la transformation linéaire, mais sont indépendantes. La fonction de densité de probabilité (PDF) de B pour A<0,2 est le même que le PDF pour toute autre sélection de A.

Les colonnes A et C ne sont pas indépendantes. En fait, elles sont complètement déterministes. Si vous sélectionnez les lignes où A<0,2 vous ne sélectionnez que les lignes où C<20,8 . La probabilité de trouver une valeur de C supérieure à 20,8 dans cette sélection est tombée à zéro. Il est clair que la distribution a changé.

Pour un exemple plus évident de ceci, considérez le lancement de deux dés (A et B) et leur total (C). Je m'attends à voir une moyenne de 3,5 dans les colonnes A et B, et une moyenne de 7 dans la colonne C. Si, dans ce tableau, je ne sélectionne que les lignes où le dé A est tombé sur 1, je verrai toujours une moyenne de 3,5 dans B (indépendant), mais simplement 4,5 au lieu de 7 dans la colonne C (dépendant).

0voto

pnuts Points 5964

Pour votre échantillon de 1 sur 5 de la colonne C, au lieu de choisir le C sur la base de la valeur A pour la ligne correspondante (c'est-à-dire les A inférieures à 0,2), essayez de choisir votre 1 sur 5. C l'échantillon d'une rangée adjacente. Dites utiliser =IF(A1<0.2,C2,0) . Cela devrait vous donner des moyennes similaires pour les deux colonnes (bien que =A1(100-1)+1 n'est pas correcte).

Vous devriez alors obtenir une valeur plus ou moins représentative de 1 sur 5 de la colonne C plutôt qu'une simple version (approximative) des valeurs présélectionnées comme étant les 20 % inférieurs.

En d'autres termes, la moyenne de votre colonne B "très différente" (mais probablement anticipée, c'est-à-dire autour de 50) est probablement cinq fois supérieure à la moyenne de l'échantillon de la colonne C. Choisissez 1 sur 10 sur la base ci-dessus et ce serait ~10 fois.

Plutôt que de mettre à l'échelle, si vous souhaitez générer 1000 nombres approximativement aléatoires dans la plage 1-100, vous pouvez appliquer la méthode suivante =RANDBETWEEN(1,100) .

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X