Próbuję zrozumieć, jak działa set.seed
w R. Rozumiem, mogę odtworzyć losowe próbki, ale nie wiem jaka jest różnica między set.seed(1)
i set.seed(123)
?Argument set.seed w R
Co oznacza argument w nawiasie?
Próbuję zrozumieć, jak działa set.seed
w R. Rozumiem, mogę odtworzyć losowe próbki, ale nie wiem jaka jest różnica między set.seed(1)
i set.seed(123)
?Argument set.seed w R
Co oznacza argument w nawiasie?
seed
argumentem set.seed
jest pojedyncza wartość, interpretowana jako liczba całkowita (zgodnie z definicją w help(set.seed())
. Na seed
w set.seed
produkuje losowych wartości, które są unikalne dla tej seed
(i będzie taki sam, niezależnie od komputera, uruchomić, a tym samym gwarantuje powtarzalność). Więc losowe wartości generowane przez set.seed(1)
i set.seed(123)
nie będzie taki sam, ale losowe wartości generowane przez R w komputerze przy użyciu set.seed(1)
i R w moim komputerze przy użyciu tego samego seed
są takie same.
set.seed(1)
x<-rnorm(10,2,1)
> x
[1] 1.373546 2.183643 1.164371 3.595281 2.329508 1.179532 2.487429 2.738325 2.575781 1.694612
set.seed(123)
y<-rnorm(10,2,1)
> y
[1] 1.4395244 1.7698225 3.5587083 2.0705084 2.1292877 3.7150650 2.4609162 0.7349388 1.3131471 1.5543380
> identical(x,y)
[1] FALSE
T większość programów komputerowych używa algorytmów deterministycznych do generowania liczb losowych (co jest przyczyną, że generowane przez nie liczby nie są naprawdę przypadkowe, ale pseudolosowe, które jest wystarczająco dobre dla większości celów). R nie jest różny i możesz myśleć o losowych liczbach, które generuje jako część bardzo długiego łańcucha "losowych" liczb, które po przywołaniu zaczynają się w pewnym momencie i wypluwają dla ciebie liczby pseudolosowe. Korzystając z set.seed()
zasadniczo dajesz programowi punkt wyjścia, zamiast pozwolić mu wybrać własny. Dlatego każdy użytkownik o tym samym numerze początkowym uzyska te same wyniki. Aby uzyskać więcej informacji na ten temat, można uruchomić numer ?RNGkind
.
Najwyraźniej istnieje pakiet R o nazwie "losowy", który generuje prawdziwe zmienne losowe. Nie testowałem jednak (jak już wspomniałem, pseudorandom jest zwykle wystarczająco dobry): http://dirk.eddelbuettel.com/code/random.html –
Przede wszystkim bardzo dziękuję za wyjaśnienie tego w prosty sposób. Ale skąd mam wiedzieć, która liczba musi być parametrem? – trollster
Nie ma znaczenia, który numer wybierzesz, ponieważ wszystkie generują losowe wartości. – Metrics