J'ai trouvé ce que je considère comme un comportement erratique (mais pour lequel j'espère qu'il y a une explication simple) en R
L'utilisation des semences par l'UE en conjonction avec rbinom()
quand prob=0.5
est utilisé. Idée générale : Pour moi, si je mets la graine, exécute rbinom()
une fois (c'est-à-dire mener un seul processus aléatoire), malgré la valeur prob
est fixé à, la valeur aléatoire devrait changer d'un incrément. Ensuite, si je fixe à nouveau la graine à la même valeur, et que j'exécute un autre processus aléatoire (tel que rbinom()
à nouveau, mais peut-être avec une valeur différente de prob
), la graine doit à nouveau prendre la même valeur que pour le processus aléatoire unique précédent.
J'ai trouvé R
fait exactement cela tant que j'utilise rbinom()
avec n'importe quel prob!=0.5
. Voici un exemple :
Comparer le vecteur de semences, .Random.seed
pour deux probabilités différentes de 0,5 :
set.seed(234908)
x <- rbinom(n=1,size=60,prob=0.4)
temp1 <- .Random.seed
set.seed(234908)
x <- rbinom(n=1,size=60,prob=0.3)
temp2 <- .Random.seed
any(temp1!=temp2)
> [1] FALSE
Comparer le vecteur de semences, .Random.seed
pour prob=0,5 et prob!=0,5 :
set.seed(234908)
x <- rbinom(n=1,size=60,prob=0.5)
temp1 <- .Random.seed
set.seed(234908)
x <- rbinom(n=1,size=60,prob=0.3)
temp2 <- .Random.seed
any(temp1!=temp2)
> [1] TRUE
temp1==temp2
> [1] TRUE FALSE TRUE TRUE TRUE TRUE TRUE
> [8] TRUE TRUE TRUE TRUE TRUE TRUE TRUE
...
J'ai trouvé cela pour toutes les comparaisons de prob=0.5
contre toutes les autres probabilités dans l'ensemble {0,1, 0,2, ..., 0,9}. De même, si je compare n'importe quelle valeur de prob
de {0,1, 0,2, ..., 0,9} autre que 0,5, l'indice .Random.seed
est toujours égale élément par élément. Ces faits sont également valables pour les vecteurs pairs ou impairs. size
sur rbinom()
.
Pour rendre les choses encore plus étranges (je m'excuse si c'est un peu alambiqué - c'est lié à la façon dont ma fonction est écrite), lorsque j'utilise des probabilités enregistrées comme éléments d'un vecteur, j'ai le même problème si 0,5 est le premier élément, mais pas le second. Voici l'exemple pour ce cas :
Premier cas : 0.5 est la première probabilité référencée dans le vecteur
set.seed(234908)
MNAR <- c(0.5,0.3)
x <- rbinom(n=1,size=60,prob=MNAR[1])
y <- rbinom(n=1,size=50,prob=MNAR[2])
temp1 <- .Random.seed
set.seed(234908)
MNAR <- c(0.1,0.3)
x <- rbinom(n=1,size=60,prob=MNAR[1])
y <- rbinom(n=1,size=50,prob=MNAR[2])
temp2 <- .Random.seed
any(temp1!=temp2)
> [1] TRUE
any(temp1!=temp2)
> [1] TRUE FALSE TRUE TRUE TRUE TRUE TRUE
> [8] TRUE TRUE TRUE TRUE TRUE TRUE TRUE
Deuxième cas : 0,5 est la deuxième probabilité référencée dans le vecteur
set.seed(234908)
MNAR <- c(0.3,0.5)
x <- rbinom(n=1,size=60,prob=MNAR[1])
y <- rbinom(n=1,size=50,prob=MNAR[2])
temp1 <- .Random.seed
set.seed(234908)
MNAR <- c(0.1,0.3)
x <- rbinom(n=1,size=60,prob=MNAR[1])
y <- rbinom(n=1,size=50,prob=MNAR[2])
temp2 <- .Random.seed
any(temp1!=temp2)
> [1] FALSE
Encore une fois, je trouve que malgré les valeurs utilisées pour prob
y size
cette tendance se maintient. Quelqu'un peut-il m'expliquer ce mystère ? Cela pose un problème car les résultats qui devraient être identiques sont différents parce que la graine est, pour une raison ou une autre, utilisée/calculée différemment lorsque l'on utilise la méthode de la graine. prob=0.5
mais dans aucun autre cas.