I tend to see things in terms of a formula with many variables. Take a schizophrenic person, give him a family unable to deal with his issues, expose him to a media that glorifies violence, make the access to weapons too little regulated, provide a psychological trigger that demonizes certain individuals or groups, and voila'. None of these factors are entirely responsible, and some are more responsible than others, but the lack of any particular one might make the difference with the particular person involved.
Everybody likes to simplify things, usually by creating mutually exclusive dichotomies reduced down to the level of "show me the direct relationship" , but you know -- life is not so simple as that, especially when considering people's behavior. Heck, none of us really know why WE act the way we do, so how can we expect to gain an understanding of others if we insist on creating these rigid, and often times politically motivated templates for evaluating them that discard all possibilities other than the one we have predetermined?