From Leo Tiokhin: "This strongly selects against individuals who have phenotypes that aren't in the most extreme values and thereby selects for individuals who do anything possible to get in the top percentiles of phenotype values. For instance, if I'm in the bottom 20% of false alpha levels (e.g. 0.03 or something) but 15% of the population is composed of individuals who have alpha levels of 0.02, then even though I'm pretty rigorous relative to most people, I only get a grant 0.85^9= 23% of the time."
R code snippet showing differences, with resulting plots pasted below (all three also thanks to Leo):
#wright-fisher
nums <- 0:100
fitness <- 0:100
fitness2 <- fitness/sum(fitness)
nextgen <- sample(nums, size=1e4, replace=TRUE, prob=fitness2)
hist(nextgen, main = paste("Wright-Fisher. Mean = ", mean(nextgen), "SD = ", round(sd(nextgen), 3)))
#paul version
nextgen_paul <- rep(NA, 1e4)
d <- 10
for(i in 1:1e4){
paul_sample <- sample(nums, size = d, replace = FALSE)
indexes <- which(nums %in% paul_sample)
fitnesses <- fitness2[indexes]
selected_indv <- which.max(fitnesses)
nextgen_paul[i] <- nums[indexes[selected_indv]]
}
hist(nextgen_paul, main = paste("Paul Implementation. Mean = ", mean(nextgen_paul), "SD = ", round(sd(nextgen_paul), 3)))
![image](https://user-images.githubusercontent.com/2425472/48636608-40613c00-e980-11e8-95cd-652e68d08c25.png)
![image](https://user-images.githubusercontent.com/2425472/48636643-5969ed00-e980-11e8-9c5c-3123f3dbfc85.png)