Many trends are apparent over the history of life: Living creatures have apparently become bigger and more complex over the last 600 million years, for instance. Such large-scale trends may have adaptive causes, such as natural selection benefiting those organisms that are larger or more complex. But such trends may also be explained by non-adaptive processes, the equivalent of passive diffusion or a random walk away from a lower bound. How can we decide whether an observed trend is due to an adaptive or passive cause, or some combination of both? We introduce a method for answering this question, the Analysis of Skewness, that is analogous to the Analysis of Variance. We partition the total skewness of a dataset into three components: (1) skewness between group means, (2) skewness within groups, and (3) skewness due to heteroskedasticity of groups. We calculate a statistic analogous to R-squared that quantifies the extent to which an observed evolutionary trend is due to driven and passive causes.