Trong hầu hết tất cả các công việc phân tích mà tôi từng làm tôi sử dụng:
set.seed(42)
Đó là sự tôn kính đối với Hướng dẫn về thiên hà của Hitchhiker . Nhưng tôi tự hỏi nếu tôi tạo ra sự thiên vị bằng cách sử dụng cùng một hạt giống nhiều lần.
Trong hầu hết tất cả các công việc phân tích mà tôi từng làm tôi sử dụng:
set.seed(42)
Đó là sự tôn kính đối với Hướng dẫn về thiên hà của Hitchhiker . Nhưng tôi tự hỏi nếu tôi tạo ra sự thiên vị bằng cách sử dụng cùng một hạt giống nhiều lần.
Câu trả lời:
Không có sự thiên vị nếu RNG là tốt. Tuy nhiên, bằng cách luôn luôn sử dụng cùng một hạt giống, tạo ra sự phụ thuộc lẫn nhau mạnh mẽ giữa tất cả các mô phỏng bạn thực hiện trong sự nghiệp của mình. Điều này tạo ra một loại rủi ro bất thường.
Bằng cách sử dụng cùng một hạt giống mỗi lần, hoặc bạn luôn nhận được một chuỗi giả ngẫu nhiên khá hay và mọi công việc của bạn đều diễn ra tốt đẹp - với xác suất rất thấp nhưng khác không - bạn luôn sử dụng một chuỗi khá tệ và mô phỏng của bạn thì không như đại diện của các bản phân phối cơ bản như bạn nghĩ chúng có thể. Tất cả công việc của bạn là khá tốt hoặc tất cả đều khá tệ hại!
Tương phản điều này với việc sử dụng hạt giống bắt đầu thực sự ngẫu nhiên mỗi lần. Một lần trong một thời gian rất dài, bạn có thể có được một chuỗi các giá trị ngẫu nhiên không đại diện cho phân phối mà bạn đang lập mô hình, nhưng hầu hết thời gian bạn sẽ ổn. Nếu bạn không bao giờ cố gắng tái tạo tác phẩm của riêng bạn (với một hạt giống mới), thì một hoặc hai lần trong sự nghiệp của bạn, bạn có thể nhận được kết quả sai lệch, nhưng phần lớn thời gian bạn sẽ ổn.
Có một cách chữa trị đơn giản và rõ ràng: Luôn luôn, luôn kiểm tra công việc của bạn bằng cách khởi động lại với một hạt giống khác. Hầu như không thể hai hạt giống vô tình sẽ cho kết quả sai lệch theo cùng một cách.
Mặt khác, có một công đức phi thường khi có một "hạt giống cá nhân" nổi tiếng: nó cho thấy thế giới bạn đang trung thực. Một cách khéo léo, tinh tế để nói dối với các mô phỏng là lặp lại chúng cho đến khi chúng cho bạn một kết quả được xác định trước. Đây là một R
ví dụ hoạt động để "chứng minh" rằng ngay cả một đồng tiền công bằng cũng có khả năng hạ cánh hơn một nửa thời gian:
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")
Các hàm ý có thể hấp dẫn và quan trọng. Chẳng hạn, nếu tôi biết trước mình sẽ tuyển dụng ai trong một thử nghiệm kiểm soát mù đôi ngẫu nhiên, và theo thứ tự nào (mà tôi có thể kiểm soát như một giáo sư đại học kiểm tra một nhóm sinh viên đại học hoặc chuột thí nghiệm), sau đó trước đó tôi có thể chạy một bộ mô phỏng như vậy để tìm một hạt giống nhóm các sinh viên theo ý thích của tôi để ủng hộ bất cứ điều gì tôi hy vọng "chứng minh". Tôi có thể bao gồm thứ tự kế hoạch và hạt giống đó trong kế hoạch thử nghiệm của tôi trước đâytiến hành thử nghiệm, do đó tạo ra một quy trình mà không một nhà phê bình quan trọng nào có thể luận tội - nhưng vẫn sắp xếp bộ bài theo ý tôi. (Tôi tin rằng có toàn bộ các ngành khoa học giả sử dụng một số biến thể của thủ thuật này để đạt được sự tin cậy. Bạn có tin rằng tôi thực sự đã sử dụng ESP để điều khiển máy tính không? Tôi cũng có thể làm điều đó từ xa với bạn!)
Ai đó có hạt giống mặc định được biết đến không thể chơi trò chơi này.
Hạt giống cá nhân của tôi là 17 , như một tỷ lệ lớn các bài viết của tôi chứng thực (hiện 155 trong số 161 bài viết đặt hạt giống sử dụng bài này). Trong R
đó là một hạt giống khó làm việc, bởi vì (vì nó bật ra) hầu hết các bộ dữ liệu nhỏ mà tôi tạo ra với nó có một ngoại lệ mạnh mẽ. Đó không phải là một đặc điểm xấu ....
R
Hành vi của họ hoàn toàn là tình cờ.
Như đã nêu ở trên, một RNG tốt sẽ không tạo ra sự thiên vị khi sử dụng cùng một hạt giống. Tuy nhiên, sẽ có một mối tương quan giữa các kết quả. (Số giả ngẫu nhiên giống nhau sẽ bắt đầu mỗi tính toán.) Cho dù vấn đề này không phải là vấn đề của toán học.
Đôi khi sử dụng cùng một hạt giống: để gỡ lỗi hoặc khi bạn biết bạn muốn kết quả tương quan.