What factors are known to affect evolution?
Evolution is defined as a change in the allele frequency of population through time.  The Hardy-Weinberg model predicts that the allele frequency of a population will not change (i.e., evolution will not occur) if the following conditions are met:


no natural or sexual selection
no gene flow (immigration or emigration from the population)
no mutatation
no genetic drift (changes in allele frequency due to random events)


So we can conclude that if any of the above conditions are not met then there is a change in allele frequency and thus evolution, and thus that factor is the cause of evolution.