Майже у всіх аналітичних роботах, які я коли-небудь робив, я використовую:
set.seed(42)
Це вшанування Посібника з автостопом до Галактики . Але мені цікаво, чи я створюю упередження, використовуючи одне і те ж насіння знову і знову.
Майже у всіх аналітичних роботах, які я коли-небудь робив, я використовую:
set.seed(42)
Це вшанування Посібника з автостопом до Галактики . Але мені цікаво, чи я створюю упередження, використовуючи одне і те ж насіння знову і знову.
Відповіді:
Немає упередженості, якщо RNG є корисним. Завжди використовуючи одне і те ж насіння, ви створюєте сильну взаємозалежність між усіма імітаціями, які ви виконуєте у своїй кар'єрі. Це створює незвичний вид ризику.
Використовуючи одне і те ж насіння кожного разу, ви завжди отримуєте досить приємну псевдовипадкову послідовність, і вся ваша робота йде добре, або - з дуже низькою, але ненульовою ймовірністю - ви завжди використовуєте досить погану послідовність, і ваші імітації не є як представник базових розподілів, як ви думаєте, що вони можуть бути. Або вся ваша робота досить гарна, або вся вона досить паршива!
Контрастуйте це з використанням справді випадкових початкових насінин кожного разу. Раз у дуже довгий час ви можете отримати послідовність випадкових значень, яка не є репрезентативною для розподілу, який ви моделюєте, але більшу частину часу вам було б просто чудово. Якщо ви ніколи не намагалися відтворити власну роботу (з новим насінням), то один-два рази у вашій кар’єрі ви можете отримати оманливі результати, але в переважній більшості випадків вам буде все в порядку.
Існує просте і очевидне лікування: Завжди завжди перевіряйте свою роботу, перезавантажившись іншим насінням. Практично неможливо, що два насіння випадково дадуть оманливі результати однаково.
З іншого боку, є надзвичайна заслуга мати добре відоме «особисте насіння»: це показує світові, до якого ви чесні. Хитрий, тонкий спосіб лежати з імітацією - це повторювати їх, поки вони не дадуть вам заздалегідь визначений результат. Ось робочий R
приклад для того, щоб "продемонструвати", що навіть справедлива монета має велику ймовірність посадити голови більше половини часу:
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")
Наслідки можуть бути захоплюючими та важливими. Наприклад, якби я заздалегідь знав, кого я буду залучати до рандомізованого подвійного сліпого контрольованого випробування, і в якому порядку (який я міг би контролювати як університетський професор, який тестує групу полонених магістрантів або лабораторних щурів), то заздалегідь я міг запустити такий набір симуляцій, щоб знайти насіння, яке групує учнів більше на мій уподобання на користь тому, що я сподівався «довести». Я міг би включити запланований порядок і це насіння в свій експериментальний план ранішепроведення експерименту, тим самим створивши процедуру, яку жоден критичний рецензент не міг би імпічувати - але все-таки укладаючи колоду на мою користь. (Я вважаю, що існують цілі гілки псевдонауки, які використовують певний варіант цього трюку, щоб отримати надійність. Чи повірите ви, що я фактично використовував ESP для управління комп'ютером? Я можу це зробити і на відстані з вашим!)
Хтось, чиє насіння за замовчуванням відоме, не може грати в цю гру.
Моє особисте насіння - 17 , як свідчить велика частка моїх публікацій (зараз 155 з 161 публікацій, які встановлюють насіння, використовують це). З R
цим важко працювати з насінням, тому що (як виявляється) більшість малих наборів даних, які я створюю з ним, мають сильну сторону. Це не погана характеристика ....
R
Поведінка Росії є чисто випадковою.
Як було сказано вище, хороший RNG не призведе до упередженості використання одного і того ж насіння. Однак між результатами буде співвідношення. (Одне і те ж псевдовипадкове число розпочне кожне обчислення.) Чи це має значення не питання математики.
Використовувати одне і те ж насіння іноді добре: для налагодження або коли ви знаєте, що хочете співвіднести результати.