Tekrar tekrar aynı rastgele tohumu kullanarak önyargı mı oluşturuyorum?


31

Yaptığım analiz çalışmalarının hemen hepsinde kullanıyorum:

set.seed(42) 

Otostopçunun Galaksi Rehberi'ne saygı duyması . Ama tekrar tekrar aynı tohumu kullanarak yanlılık yaratıp yaratmadığımı merak ediyorum.


9
Tohum nasıl kullanılır? Tipik kullanım durumunuza bağlı olarak, cevap evet ile hayır arasındadır.
Momo

Brandon, ya insanlar sana cevap verirse YES? Ne yapacaksın? Endişeli hissediyorum.
ttnphns

@Momo Sadece unut gitsin ve sonuçlarımı elde edemediğim için her zaman ayarladığımı söyleyelim. Bu bağımsız ve farklı deneyimler arasındadır. Hem evet hem de hiçbir vakayı anlamadığınız için teşekkür ederim.
Brandon Bertelsen

@ttnphns Öğrenilen bir ders gibi mi davranın?
Brandon Bertelsen,

Önyargılı olsun veya olmasın, sonuçları yeniden üretmek amaç için uygundur. Ancak, bu tohum altında üretilen numune büyüklüğünüz (bağımsız deney veya gözlem sayısı) belirsizliğe yaklaşmadıkça, bazı önyargılar devam edecektir. İki önemli şeye dikkat edin: genellikle sizin için sonuçları karmaşıklaştıran sözde rasgele üreteçler kullanırız. Sonuçta, ne tür rastgele bir jeneratör kullandığınıza da bağlı olabilir (örneğin Mersenne twister mı yoksa ne?). Bu nedenle, rastgele bir şeyin ciddi denemeleri için, tohumu rasgele ayarlamak her zaman daha iyidir.
ttnphns

Yanıtlar:


31

RNG'nin iyi olması durumunda önyargı yok. Her zaman aynı tohumu kullanarak, kariyerinizde gerçekleştirdiğiniz tüm simülasyonlar arasında güçlü bir karşılıklı bağımlılık yaratırsınız. Bu alışılmadık bir risk oluşturur.

  • Her seferinde aynı tohumu kullanarak, ya her zaman çok hoş bir sözderandom sekansı elde edersiniz ve tüm işleriniz iyi gider ya da - çok düşük fakat sıfır olmayan bir olasılıkla - her zaman çok kötü bir sekans kullanıyorsunuz ve simülasyonlarınız Temel dağılımların temsilcisi olarak düşündüğünüz gibi. Ya tüm işlerin çok iyi ya da hepsi çok kötü!

  • Bunu her seferinde gerçekten rastgele başlangıç ​​tohumları kullanarak yapın. Çok uzun bir zaman sonra, modellemekte olduğunuz dağılımı temsil etmeyen, ancak çoğu zaman iyi olacağınız bir rastgele değerler dizisi elde edebilirsiniz. Kendi çalışmanızı hiç (yeni bir tohumla) çoğaltmaya çalışmadıysanız, kariyerinizde bir ya da iki kez yanıltıcı sonuçlar alabilirsiniz, ancak zamanınızın büyük çoğunluğu iyi olacak.

Basit ve açık bir tedavi vardır: Her zaman, çalışmanızı daima başka bir tohumla yeniden başlatarak kontrol edin. Yanlışlıkla iki tohumun aynı şekilde yanıltıcı sonuçlar vermesi neredeyse imkansızdır.

Öte yandan, iyi bilinen bir “kişisel tohum” a sahip olmanın olağanüstü bir avantajı var: dürüst olduğunuzu dünyaya gösteriyor. Simülasyonlarla yatmanın kurnaz, ince bir yolu, önceden belirlenmiş bir sonuç verene kadar onları tekrar etmektir. İşte size Radil bir madalyonun bile yarıdan daha fazla zaman harcayacağının yüksek olduğunu göstermek için çalışan bir örnek:

n.flips <- 100
seeds <- 1:10^3
#
# Run some preliminary simulations.
#
results <- sapply(seeds, function(seed) {
  set.seed(seed)
  mean(runif(n.flips) > 1/2)
})
#
# Now do the "real" simulation.
#
seed <- seeds[which.max(results)]
set.seed(seed)
x <- mean(runif(n.flips) > 1/2)
z <- (x - 1/2) * 2 * sqrt(n)
cat("Mean:", x, "Z:", z, "p-value:", pnorm(z, lower.tail=FALSE), "\n")

11061007550p=0.000004

Etkileri etkileyici ve önemli olabilir. Örneğin, önceden randomize çift-kör kontrollü bir deneye kimlerin katılacağını ve hangi sırayla (bir grup esir lisans öğrencisi veya laboratuar faresini test eden bir üniversite profesörü olarak kontrol edebileceğimi) ne olacağını önceden bilseydim, o zaman önceden, “ispatlamayı” umduğum şeyleri lehine çevirmek için öğrencileri daha fazla sevmem için gruplayan bir tohum bulmak için böyle bir dizi simülasyon çalıştırabilirdim. Planlı düzeni ve bu tohumu daha önce deney planıma dahil edebilirdim.deneyi yapmak, böylece hiçbir eleştirel gözden geçiricinin etkileyemeyeceği bir prosedür oluşturmak - ancak yine de güverteyi lehime istiflemek. (Güvenilirlik kazanmak için bu hilenin bir türevini kullanan tüm sahte bilim dallarının olduğuna inanıyorum. Gerçekten ESP'yi bilgisayarı kontrol etmek için kullandığımı mı düşünüyorsunuz? Bunu sizinkinde de yapabilirim!)

Varsayılan tohumu bilinen biri bu oyunu oynayamaz.

Kişisel çekirdeğim 17 , yazılarımın büyük bir kısmı onaylıyor (şu anda bir tohum kullanan 161 yazıdan 155'i). İçinde Rçalışması zor bir tohumdur, çünkü (ortaya çıktığı gibi) onunla oluşturduğum küçük veri kümelerinin çoğunun güçlü bir dışkısı vardır. Bu kötü bir özellik değil.


5
17

4
@Matthew Bir yaz uzun zaman önce sayı teorisini inceleyen matematiğe ortak bir ilgisi olan bir grup lise öğrencisine gider. Biri, hatırladığım kadarıyla, şaka olarak 17'yi arketipik bir tamsayı olarak önerdi ve grubumuz bunun için hızlıca birçok rasyonalizasyon buldu. Gauss'un 17-gon'un inşa edilebilirliğini keşfetmesi gibi, dikkatini çeken bu sayının ilginç matematiksel ve tarihi özellikleri var. R'nin davranışı tamamen tesadüfidir.
whuber

4
BTW @Matthew, tohumum Brandon'nınkiyle ilgili: tam olarak, 17 ya da daha küçük boyutta, 42 tane farklı integral asal çifti vardır.
whuber

8
Parti hilesi olarak cetvel ve pusula ile 17-gon inşa edebiliyordum. Eh, partinin doğru tanımı için sanırım ...
Matthew Drury

1
@MatthewDrury partinize şişeleri sokuyorlar.
Brandon Bertelsen

2

Yukarıda belirtildiği gibi, iyi bir RNG, aynı tohumu kullanmanın altında yanlılığa neden olmayacaktır. Ancak, sonuçlar arasında bir ilişki olacaktır. (Aynı sözde rastgele sayı her hesaplamaya başlayacaktır.) Bunun önemli olup olmadığı bir matematik meselesi değil.

Aynı tohumu kullanmak zaman zaman sorun yok: hata ayıklama için veya ilişkili sonuçlar istediğinizi bildiğiniz zaman.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.