Before I started constructing the dataset I took a look around the internet for some other views on who was, and was not, a companion. I didn't know what I was letting myself in for. It's not just that there are plethora of answers. That was to be expected. What startled me was the ferocity at which there people defended their ideas. It almost harkened on being hostile to someone who disagreed with them.
I can't say that I found two lists that were the same.
Some Really Heavy Discussion About The Subject
If you want to read just how adament some people are, take a look at these discussion from TARDIS.wiki. BY the time I got through the majority of them I was so utterly confused about how to classify a companion I just gave up and created my own list. A list which was far, far simpler and much easier to maintain.
UNIT really aren't companions!
Who counts as a companion?
My final definitions came down to three categories. The full description is rather long and can be read HERE. Short and sweet. I needed that because the analysis was going to take up a fair chunk of the time. There a rather large article on it on Wikipedia. And just goggling it will present you with more articles than you'd rather read.
It doesn't matter if you agree or disagree with my categorizations, you probably will have some differing opinions. But I do hope you enjoy the actual analysis (if you like that sort of number thing).