Kalbindeki bu gerçekten sadece bir R sorusu değildir; daha genel olarak rastgele sayı üretimi ile ilgilidir.
"Rastgele" sayılar istatistiğin birçok bölümünde çok önemlidir. Belirli özelliklere sahip olmak için ürettiğimiz rastgele değerlere ihtiyacımız var ve (genellikle) rastgele sayı üreteçleri oluşturmak ve özelliklerini kontrol etmek için çok çaba sarf ediyoruz.
Fikir, aslında rastgele sayılar için iyi bir proxy olan bir dizi değer elde etmek istiyoruz. Rasgele sayı üretmenin olağan beyni, eşit dağılımdır (bundan Gauss rasgele sayılar gibi başkalarını inşa ederiz).
Dolayısıyla (en tipik olarak), her biri öncekilerin bazı işlevleri açısından bir tamsayı dizisi oluşturmak için sayısal bir algoritma kullanılır. Bu tamsayılar daha sonra 0 ile 1 (genellikle ) olacak şekilde ölçeklendirilir .[ 0 , 1 )
Örneğin, birçoğu bir öncekinde çalışır:
x1= f( x0)z1= x1/ mx2= f( x1)z2= x2/ mx3= f( x2)z3= x3/ m⋮
... burada 'in, tamsayılardır z ler sonra birim aralığında olduğu ölçeklendirilir' ve f bit yeni bir dizi üretmek için değişken bit üzerinde faaliyet gösteren bazı çoğu zaman karmaşık ama genellikle hızlı fonksiyonudur (umarım) önceki değerlerle ilgili görünmüyor (eğer onlara gerçekten ilgili olsalar da, her şekilde dikkatlice bakarsak - bu şekilde yapıldıkları için). Bunlar, dizinin çok uzun bir döngüye sahip olduğundan ve değerlerinin gerçekten tekdüze olduğundan ve gerçekten umursadığımız herhangi bir şekilde sıralı olarak bağımlı olmadığından emin olmak için dikkatli bir şekilde oluşturulmalıdır (genellikle, önemli).xzf
x0
x3
?runif
R'ye bakın ve R'de ?.Random.seed
bulunan çok sayıda rasgele sayı üretecini açıklayan yardımın bir bağlantısıyla rastgele tohumun varlığını açıkladığını not edeceksiniz (hatta kendiniz bile sağlayabilirsiniz). Aynı yardım sayfası, daha önce rasgele sayı oluşturmayı kullanmadıysanız veya tohumu ayarladıysanız, tohumla başlamak için saatten alındığını ve daha sonra önceki değerin saklandığını (böylece bir sonraki rasgele sayının geçen sefer bir değer daha yaratırsanız elde edeceğiniz değerle aynıdır - "nerede olduğunuzu" hatırlar).
runif
R'deki fonksiyon (diğer paketlerde genellikle benzer bir şey yapabilen diğer birkaç rasgele sayı üretme rutini gibi), rasgele sayı tohumunun tutulduğu yeri bilir. Bu değeri güncellemeye devam eder. Dolayısıyla, açıkça bir tohumdan geçirilmek zorunda kalmadan çalışabilir, ancak yine de bir tane kullanır; eğer bir tane vermediysen, sadece son kaydettiğini kullanır.
Neden her seferinde farklı çıktılar verirse (aynı diziyi vermesini söylemezseniz): bunu yapar, çünkü her seferinde aynı değerler genellikle çok karşı üretken olur - tekrarlanan özelliklere sahip olmaz rastgele örnekleme, rastgele sayı üreteçlerini kullandığımız düzenekler için çok yararlı olmaz.