Do Vegans have Less Children?

When I was on the last Ljubljana Python Meetup, the conversation somehow ended up at the question, if vegans have less children and meat eaters. Trust me, it was a very legit question, and was well to the point, considering the topic at the time.

So now, a couple of days later, I decided to put the question and see if what the correct answer is. Imagine my disappointment, when the search engines completely failed me. I got the entries related to whenever it is healthy for children to eat vegan food to the effect of the school food on the children. Which was... not what I was asking.

The first statistics, that touched upon this was Comparison of Sociodemographic and Nutritional Characteristics between Self-Reported Vegetarians, Vegans, and Meat-Eaters from the NutriNet-Santé Study. At the very end of the table 2, there were statistics, that could be helpful. They made a break down of vegans, vegetarians and meat-eaters by what kind of households do they live in. And they could be living alone or with the partner, and with children on not. So, combining houses without children should at least give me the indication, how many people in each category were without children.

The data, copied from that table is here:

Food Preference Total Living without Children Living with Children
Vegan 789 658 131
Vegetarian 2370 1774 596
Meet-Eaters 90,664 69846 33759

So far this data does not tell much. About 37% of meat-eaters have children, compared to 25% of vegetarians and 17% of vegans. So far the data seems to hold. Since I think that if we have statistics, we should use it, I will try to do this now and fail miserably. The problem is, and this can already be seen from the table above, the number don't add up. If I go by the percentage, then the number for meat eaters is 33%. Which is lower, than what I got with simple statistics.

So this data set was a bit of a failure. So what I did then, I figure out that maybe I am able to find some indirect data. For example, vegans are more likely to be urban, and they are more likely to have less children. Or that vegans are more likely to be left-wing, and they (at least in US) have less children. It would not give me the effect the veganism has on children, but it would give me at least what can I expect to see in reality.

I found General Social Survey. I find tried to start with number of children and political orientation, but then for fun I entered the following phrases: "vegan", "food" and "meat". And with meat, I had found that they did ask people, if they refused to eat meat for environmental reasons. Well, that does not talk about vegans, but much more vegetarians. And it is for one reason. Since environment was a topic, that was touched upon, and I had not found anything else, this data-set was good enough.

The data can be found here:

The data-set also includes the ability to add the chi-square results next to it. The results of chi.square are X-squared = 41.016, df = 24, p-value = 0.01659. By the standards of social sciences, this would mean that putting people in how frequently people refuse to eat meat for environmental reasons, has an effect on how many children do they have. But it does not tell us, which groups are more likely to have children.

But maybe stacked graphs would be able to show this.

Graph showing that vegetarian-like-people have more chance of having 0-child households, while also showing that they are a little more likely to have big households.

As it can be seen from the picture (the darker spots mean less children, with the darkest being none), the people that always refuse to eat meat are more likely to live withour children.

So I am going to assume that the chi-square meant, that vegetarian-like people are less likely to have children and probablly have less children overall. I would need to go into more details, with either ad-hoc testing or testing some other statistics. But for me, this is enough to sate my curiosity.

The R code used to create this was the following:

always <- c(30, 11, 16, 4, 9, 3, 0, 2, 1)/76
often <- c(54, 29, 62, 31, 15, 9, 0, 1, 2)/203
never <- c(558, 328, 541, 283, 165, 68, 26, 11, 23)/2003
sometimes <- c(160, 98, 145, 117, 34, 27, 5, 3, 5)/594
df <- data.frame(always, often, sometimes, never)
df <- data.matrix(df)