Laura Duffy, Executive Research Assistant
Our initial welfare range calculations included point estimates of the welfare range (conditional on moral patienthood) for each animal type, and then multiplied by an assumed probability of moral patienthood. However, estimating the welfare range to be 0.45 for pigs, for instance, does not tell us how wide or narrow our confidence interval should be around that central estimate. We needed to take uncertainty into account, both for welfare ranges and probabilities of moral patienthood, because our knowledge about animals’ psychological capacities is uncertain. So:
Ultimately, we replaced our initial welfare range point estimates with the median welfare ranges (conditional on sentience) generated by the second procedure.
Here are the main results about the probability of sentience and welfare ranges for the organisms studied:
Table 1: Overall probability of sentience estimates
Species | Mean | 5th-percentile | 50th-percentile | 95th-percentile |
Pigs | 0.925 |
0.737 |
0.973 |
0.99 |
Cows | 0.91 |
0.712 |
0.945 |
0.99 |
Chickens | 0.876 |
0.629 |
0.904 |
0.99 |
Octopuses | 0.783 |
0.439 |
0.775 |
0.99 |
Bees | 0.466 |
0.038 |
0.422 |
0.905 |
Fruit Flies | 0.451 |
0.067 |
0.329 |
0.919 |
Carp | 0.453 |
0.081 |
0.328 |
0.912 |
Crayfish | 0.453 |
0.082 |
0.327 |
0.91 |
Salmon | 0.451 |
0.078 |
0.327 |
0.909 |
Crabs | 0.426 |
0.078 |
0.308 |
0.85 |
Ants | 0.3 |
0.032 |
0.234 |
0.58 |
Black Soldier Flies | 0.294 |
0.079 |
0.218 |
0.574 |
Spiders | 0.257 |
0.016 |
0.208 |
0.521 |
Cockroaches | 0.265 |
0.018 |
0.184 |
0.57 |
Earthworms | 0.083 |
0.002 |
0.041 |
0.244 |
Sea Hares | 0.128 |
0.002 |
0.04 |
0.384 |
Silkworms | 0.082 |
0.002 |
0.039 |
0.239 |
C. elegans | 0.068 |
0 |
0.004 |
0.268 |
Table 2: P(sentience)-adjusted welfare range estimates (including neuron counts)
Species | Mean | 5th-percentile | 50th-percentile | 95th-percentile |
Pigs | 0.484 |
0.005 |
0.512 |
1.031 |
Chickens | 0.326 |
0.002 |
0.327 |
0.856 |
Octopuses | 0.349 |
0.004 |
0.238 |
1.527 |
Carp | 0.175 |
0 |
0.087 |
0.59 |
Bees | 0.148 |
0 |
0.071 |
0.449 |
Salmon | 0.136 |
0 |
0.055 |
0.495 |
Crayfish | 0.119 |
0 |
0.035 |
0.503 |
Shrimp | 0.19 |
0 |
0.029 |
1.095 |
Crabs | 0.093 |
0 |
0.026 |
0.444 |
Black Soldier Flies | 0.044 |
0 |
0.014 |
0.215 |
Silkworms | 0.018 |
0 |
0.001 |
0.068 |
Figure 1: Probability-of-sentience-adjusted welfare ranges
There are two qualifications to note.
First, because the inputs to our models are publications in the scholarly literature, they’re biased against under-studied animals, as we discuss in our post about the Welfare Range Table.
The second important qualification is that these welfare range distributions reflect our uncertainties conditional on the methodology we’ve developed; they don’t reflect our uncertainties about the entire methodology behind these distributions. We discuss our overall views about relative welfare ranges at the end of the main post.
Overall, the process of estimating an organism’s probability of sentience involves three steps: choosing the model parameters, simulating the sentience proxies that the animal possesses, and using models that use these simulated proxies to estimate the probability of sentience.
To generate the distributions of probabilities of sentience across organisms and models, the user must answer three questions:
For our simulations, we specified that:
The evidence used to estimate the probability of each organism’s sentience are found in the “Overall judgments” spreadsheet in the sheet:
The program runs 10,000 simulations where the presence or absence of each proxy in the “Simple_Scoring” spreadsheet was a random variable. For a given organism, the steps taken in a single simulation to generate the proxies possessed by that organism were:
For example, if pigs scored a “Likely yes” on taste aversion behavior, then the probability that pigs exhibit taste aversion behavior is sampled uniformly over the interval [0.75, 1.0]. If a proxy was judged “Unknown”, then we defaulted to giving a zero probability of it being present; however, this default can be changed at the start of running the program.
For a given organism, this process was repeated for 10,000 simulations, where each proxy’s score in a given simulation was appended to its respective list. Then, we repeated this procedure for all eighteen organism types studied and saved the simulated proxy data.
One important issue with using behavioral proxies as evidence for sentience is that some behaviors) may arise from unconscious processes (including some of those which we are quite confident matter for sentience). For instance, if classical conditioning occurs both in black soldier flies and unconscious human processes, we should not significantly update our probability that black soldier flies are sentient. Conversely, if the evidence that black soldier flies can navigate unknown paths is stronger than the evidence that unconscious human processes can do the same, we should give greater credence to the hypothesis that black soldier flies are conscious.
With this issue in mind, we decided to take the following approach to estimating the probability of sentience amongst each of the organisms for a given simulation, once the Bernoulli variables were generated:
Once we had calculated the organism’s probability of sentience for each of the 10,000 simulations, we found the 5th-, 50th-, and 95th-percentile probabilities of sentience and stored them in a table. This procedure was repeated for all eighteen organisms and for each of the five models.
We estimated the probability of sentience distributions for eighteen organisms using five sets of proxies:
To generate the prior distributions, we created a mixture model in Squigglepy using the probability of sentience estimates from Marcus A. Davis, Daniela Waldhorn, and Peter Wildeford’s 2019 paper on estimating invertebrate sentience. For Davis’ estimates, we used the low, best guess, and high estimates for the probability of sentience to create a distribution of each species’ probability of sentience.2 For Waldhorn’s estimates, we assigned each judgment (ranging from “very probably no” to “very probably yes”) a probability range3 and used a normal distribution (clipped at 0 and 1) to simulate the prior probabilities of sentience for each species. Finally, Wildeford’s probability estimates were estimated using 90% confidence intervals centered around his posterior probabilities of sentience for each organism, plus or minus 10% of the mean value. Each of Davis, Waldhorn, and Wildeford’s models was given equal weight in the mixture model, which was used to generate 10,000 prior probabilities of sentience for each organism.
There were five organisms (black soldier flies, salmon, carp, silkworms, and pigs) whose sentience proxies had been studied but which were not included in Davis, Waldhorn, and Wildeford’s 2019 sentience estimates. As such, we used the prior probabilities of similar organisms for these five animals. Specifically, we used the fruit flies’ priors distribution for black soldier flies, the crabs' priors distribution for carp and salmon, the cows’ priors distribution for pigs, and the earthworms’ priors distribution for silkworms.
Table 3 below displays the 5th, 50th, and 95th percentile values for each organism’s prior probability of sentience.
Table 3: Prior probabilities of sentience
Species | Mean | 5th-percentile | 50th-percentile | 95th-percentile |
Pigs | 0.85 |
0.659 |
0.864 |
0.983 |
Cows | 0.85 |
0.657 |
0.863 |
0.983 |
Chickens | 0.817 |
0.576 |
0.822 |
0.983 |
Octopuses | 0.749 |
0.416 |
0.729 |
0.985 |
Bees | 0.45 |
0.037 |
0.406 |
0.863 |
Black Soldier Flies | 0.457 |
0.135 |
0.325 |
0.853 |
Crabs | 0.434 |
0.08 |
0.311 |
0.856 |
Crayfish | 0.434 |
0.078 |
0.311 |
0.862 |
Salmon | 0.433 |
0.075 |
0.311 |
0.861 |
Carp | 0.432 |
0.077 |
0.31 |
0.858 |
Fruit Flies | 0.425 |
0.064 |
0.309 |
0.859 |
Ants | 0.334 |
0.036 |
0.258 |
0.632 |
Spiders | 0.316 |
0.02 |
0.255 |
0.625 |
Cockroaches | 0.297 |
0.02 |
0.205 |
0.63 |
Silkworms | 0.11 |
0.003 |
0.052 |
0.317 |
Earthworms | 0.107 |
0.003 |
0.051 |
0.311 |
Sea Hares | 0.16 |
0.002 |
0.05 |
0.47 |
C. elegans | 0.078 |
0 |
0.005 |
0.306 |
The formula for updating the probability of sentience is inspired by Bayes theorem, in which the prior probability of event A is updated, based on evidence E, using the formula:
In this case, the analogy to Bayes’ theorem is not watertight: for example, we do not know the true probability of seeing a certain number of proxies given the organism is sentient since the only organism we know for certain is sentient is humans. However, the use of sentience sums updates the probability of sentience in a similar manner as Bayes theorem: if the sentience proxies rarely appear in an organism relative to their presence in unconscious human processes, the probability of sentience decreases; it stays the same if the sums are equal; and it rises when the organism’s sentience sum is larger than that of unconscious human processes.
The choice of ¼ as an exponent is somewhat arbitrary; one could choose ½ or ⅙ and be equally justified in doing so. Whenever the exponent is below 1, it has the effect of dampening the extent to which the prior is updated in response to behavioral evidence, and the smaller the exponent, the more “conservative” we are in updating the probability to sentience. Because this is an arbitrary choice point, we invite others to run the models using an alternative positive fraction in the exponent.
Summary statistics for all five models across all eighteen organisms under the parameter assumptions described above are available in the spreadsheet: as well as in the sentience_estimates folder of the GitHub repository.
Because the prior distributions mixture model was trimodal, none of the results from the five models resembled an easy-to-model distribution (i.e. normal, lognormal, uniform, etc.). As such, we could not combine the five models into an aggregate mixture model without making inaccurate assumptions. Fortunately, the results of each sentience model overlapped sufficiently so that choosing one model to use in the welfare range calculations would not be misleading.
We chose the “#1 High-Value Proxies Model” to represent the probabilities of sentience for the organisms studied. This model is likely the most reliable individual model because it only includes proxies that we are confident matter for an organism’s sentience, so proxies that cannot be well-justified (such as “does the organism move?”) are omitted. As such, if an organism possesses a high-value proxy which is not present in unconscious human processes, we have gained more information about the organism’s likelihood of sentience. The estimated probabilities of sentience from this model are in Table 4 below.
Compared to the priors, the sentience evidence significantly increased the probability of sentience for many vertebrates and octopuses; in particular, pigs, cows, and chickens are almost certainly sentient. Sea life, fruit flies, and bees’ probabilities of sentience remained relatively unchanged. On the other hand, the sentience evidence led to decreases in the probabilities of sentience for many invertebrates. However, one should be still cautious about interpreting this decline in invertebrate sentience, since “Unknowns” are given zero weight and less is known about invertebrate capacities.
Table 4: #1 High-value proxies model for the probability of sentience
Species | Mean | 5th-percentile | 50th-percentile | 95th-percentile |
Pigs | 0.925 |
0.737 |
0.973 |
0.99 |
Cows | 0.91 |
0.712 |
0.945 |
0.99 |
Chickens | 0.876 |
0.629 |
0.904 |
0.99 |
Octopuses | 0.783 |
0.439 |
0.775 |
0.99 |
Bees | 0.466 |
0.038 |
0.422 |
0.905 |
Fruit Flies | 0.451 |
0.067 |
0.329 |
0.919 |
Carp | 0.453 |
0.081 |
0.328 |
0.912 |
Crayfish | 0.453 |
0.082 |
0.327 |
0.91 |
Salmon | 0.451 |
0.078 |
0.327 |
0.909 |
Crabs | 0.426 |
0.078 |
0.308 |
0.85 |
Ants | 0.3 |
0.032 |
0.234 |
0.58 |
Black Soldier Flies | 0.294 |
0.079 |
0.218 |
0.574 |
Spiders | 0.257 |
0.016 |
0.208 |
0.521 |
Cockroaches | 0.265 |
0.018 |
0.184 |
0.57 |
Earthworms | 0.083 |
0.002 |
0.041 |
0.244 |
Sea Hares | 0.128 |
0.002 |
0.04 |
0.384 |
Silkworms | 0.082 |
0.002 |
0.039 |
0.239 |
C. elegans | 0.068 |
0 |
0.004 |
0.268 |
For each model and organism type, the overall method involved:
Finally, we created a mixture model for the welfare ranges of each animal, both conditioned on sentience and after the probability of sentience is taken into account. A second mixture model also included the results from the neuron count model for welfare ranges.
To generate the distributions of welfare ranges across species and models, the user must answer the same three questions about whether to give non-zero probability to “Unknown,” “Lean no,” and “Likely no” judgments and what weight should be given to proxies we’re highly confident matter for welfare ranges as were asked for the probabilities of sentience. As before, users can change the probabilities given to “Unknowns” for one or more species of their choosing.
In our final simulations:
The method of simulating the presence or absence of welfare range proxies in the eleven species studied is nearly the same as is used for the probabilities of sentience. However, there was one notable difference.
Because some proxies were included in both the welfare range table and the sentience table, and because we want welfare ranges given sentience, we needed to account for the dependence amongst these two lists. For a given simulation and species, we extracted the sentience scores for each overlapping proxy and used the average of these sentience scores (if more than one sentience proxy mapped onto a single welfare range proxy) as the welfare range score for that species and that simulation. This procedure included re-weighting the proxies for whether or not they were high-confidence proxies in either list. For example, the judgment for the “Navigation strategies” welfare range proxy (which is not a high-confidence welfare proxy) was determined using the same evidence as was used to determine the ability to “Navigate known paths/areas” (not a high-confidence sentience proxy) and “Navigate unknown paths/areas” (a high-confidence sentience proxy) in the sentience proxy table. Assuming the high-confidence proxies are given 5 times the weight of other proxies, the welfare score for the “Navigation strategies” proxy is equal to the average of the “Navigate unknown paths/areas” score (divided by 5) and the “Navigate known paths/areas” score. Most overlapping proxies did not map onto several sentience proxies, so the scores were simply equivalent after reweighting for importance. No sentience proxies mapped onto multiple welfare range proxies.
There were eight models for which we generated welfare range distributions. These were selected because they were based on the Welfare Range Table, which we take to be our best guide to differences between the taxa of interest. From the twelve welfare range models, we included:
In addition, we added a model that is like the qualitative model, in that it divides the species welfare sum by the human welfare sum without applying a non-linear formula, but it differs from the qualitative model by only including higher-confidence proxies. We called it the “High-confidence (simple scoring)” model.
After the presence of welfare range proxies was simulated, the first step in estimating the welfare ranges for a given model involved filtering out all proxies that were not included in the model.
Next, for each simulation, we calculated an organism’s “welfare sum” by adding up all the Bernoulli variables for that simulation across all proxies included in the model. (For example, for the first simulation, all Bernoulli variables at the 0th index were added up, across all proxies, to get the 0th simulation’s welfare sum). Then, under the assumption that humans definitively possess all of the welfare proxies, we created a welfare sum for humans (which applies any additional weight to the high-confidence proxies).
Each model involved applying a particular mathematical formula to the welfare sums to generate a “welfare score”–such as cubing the welfare sum, dividing the sum of hedonic proxies by cognitive proxies, or simply raising the welfare sum to the first power (doing nothing). This formula was applied at this stage to the welfare sums for both the non-human animal and humans separately.
Finally, the welfare range of the non-human animal (conditioned on sentience and not adjusted by flicker-fusion frequency) was estimated by dividing the animal’s welfare score by that of humans.
After estimating the welfare range (conditioned on sentience) of an animal relative to that of humans, we weighted this welfare range by the expected influence that flicker-fusion frequency matters for an organism’s welfare range. Specifically, we assume that there’s a 28% chance that an animal’s flicker fusion frequency matters for its welfare range. Thus, we applied the formula:
Where is the ratio of the non-human species’ flicker fusion frequency to that of humans.
After the flicker-fusion frequency adjustment, we imported the array of 10,000 probabilities of sentience for each organism as generated by the probability of sentience data. Specifically, we used the probabilities generated by the “#1 high-value proxies” model. Because each of the welfare ranges was generated conditioned on the sentience data with the corresponding index, we multiplied the welfare range by the probability of sentience. This created, for each animal, a welfare range adjusted by its probability of sentience.
Shrimp were not studied in the probability of sentience project. However, we approximated that their probability of sentience distribution is roughly equivalent to the prior probability distribution for crabs (a similar organism), and we used this assumed distribution to estimate the sentience-adjusted welfare ranges for shrimp.
Then, we created a mixture model to aggregate the welfare range distributions across all models to factor in our uncertainty about which model is correct. Specifically, for a given organism and model, we modeled each distribution as a normal distribution5 with a 90% interval with lower and upper bounds equal to the fifth- and ninety-fifth percentile welfare ranges. Each of the eight models was assigned an equal probability of being correct. Then, we sampled 10,000 welfare ranges from this mixture model and stored the resulting 5th-, 50th-, and 95th-percentile welfare ranges in a data frame.
Finally, we created a mixture model that incorporated the results from the neuron count model (Table 5) to see how the central welfare range estimates would change if we give equal weight to the neuron count model as we do to each of the eight models for which simulations were conducted. Specifically, this mixture model gives one-ninth weight to the possibility that an organism’s welfare range is equal to the number of neurons it possesses relative to humans.
Table 5: Neuron Count Model of Welfare Range Results
Organism | Neuron Count Relative to Humans |
Pigs | 0.005350 |
Chickens | 0.002439 |
Carp | 0.000160 |
Salmon | 0.000160 |
Octopuses | 0.005407 |
Shrimp | 0.000001 |
Crabs | 0.000001 |
Crayfish | 0.000001 |
Bees | 0.0000013 |
Black Soldier Flies | 0.000004 |
Silkworms | 0.000010 |
Tables containing the distribution summary statistics for welfare ranges (unadjusted by probabilities of sentience) for all models are found in the spreadsheet:
The welfare ranges for each model after adjusting for the probability of sentience are found in the spreadsheet:
All outputs are also in the welfare_range_estimates folder of the GitHub repository.
Tables 6 and 7 below display the probability-of-sentience-adjusted welfare ranges for the mixture models that exclude and include the neuron count model, respectively.
Ultimately, the median welfare range estimates dropped slightly but not significantly for most organisms (the maximum drop was about 0.04). However, as can be expected, the 5th-percentile welfare ranges dropped to equal the neuron count model’s estimated welfare ranges.
Even when we include the neuron count model, chickens and pigs are estimated to have approximately a third to a half of the welfare range of humans, respectively. On the other end, sea life invertebrates are estimated to have under 10% of the welfare range as humans.
Table 6: P(Sentience)-adjusted welfare ranges – Mixture model (without neuron counts)
Species | Mean | 5th-percentile | 50th-percentile | 95th-percentile |
Pigs | 0.548 |
0.199 |
0.565 |
1.069 |
Chickens | 0.368 |
0.086 |
0.368 |
0.892 |
Octopuses | 0.38 |
0.037 |
0.271 |
1.528 |
Carp | 0.199 |
0.01 |
0.107 |
0.716 |
Bees | 0.165 |
0.006 |
0.1 |
0.47 |
Salmon | 0.157 |
0.004 |
0.079 |
0.602 |
Crayfish | 0.137 |
0.002 |
0.057 |
0.591 |
Shrimp | 0.21 |
0.001 |
0.045 |
1.222 |
Crabs | 0.102 |
0.001 |
0.036 |
0.484 |
Black Soldier Flies | 0.05 |
0 |
0.019 |
0.232 |
Silkworms | 0.02 |
0 |
0.003 |
0.08 |
Table 6: P(Sentience)-adjusted welfare ranges – Mixture model (with neuron counts)
Species | Mean | 5th-percentile | 50th-percentile | 95th-percentile |
Pigs | 0.484 |
0.005 |
0.512 |
1.031 |
Chickens | 0.326 |
0.002 |
0.327 |
0.856 |
Octopuses | 0.349 |
0.004 |
0.238 |
1.527 |
Carp | 0.175 |
0 |
0.087 |
0.59 |
Bees | 0.148 |
0 |
0.071 |
0.449 |
Salmon | 0.136 |
0 |
0.055 |
0.495 |
Crayfish | 0.119 |
0 |
0.035 |
0.503 |
Shrimp | 0.19 |
0 |
0.029 |
1.095 |
Crabs | 0.093 |
0 |
0.026 |
0.444 |
Black Soldier Flies | 0.044 |
0 |
0.014 |
0.215 |
Silkworms | 0.018 |
0 |
0.001 |
0.068 |
Another possibility would be to, for each organism, randomize the order in which proxies are simulated and update the probabilities of that species possessing other proxies based on the simulated presence or absence of the original proxy by some amount. For instance, we could generate a correlation matrix for the association among cognitive proxies whose pair-wise correlations are randomly chosen from a uniform distribution centered on some value, such as 0.5, and sample probabilities of proxy presence from this. However, this method requires assumptions about the degree of association among proxies that are, at best, based on expert intuition and, at worst, entirely made up.
In the end, we chose to keep the assumption that traits are independent to avoid having to make judgments about associations that overfit on the animal studied and/or are not easily replicable because they are based on individual judgment. However, an avenue of further research could be to try to estimate correlations between variables, or at least test the models under different degrees of association.
This issue presents itself with the disparity between carp and salmon welfare ranges: there were 13 welfare range proxies for which carp had a “lean/likely yes” judgment and salmon had an “Unknown” judgment, but there was only one proxy (transitive inference) for which the reverse was true.
As such, an important opportunity for future improvement would be to try to fill in the “Unknown” judgments, perhaps using evolutionary arguments or statistical interpolation.
All of the probability of sentience and welfare range code can be found in the public GitHub repository for the moral weight project. The input data are in the input_data folder of this GitHub repository. The sent_simulate.py and sentience_models.ipynb files contain the code used to generate the sentience simulations and analyze them for the six models studied, respectively. Thanks to Matthew Romer for run time optimizations. ↩
We used a Guesstimate model to create probability distributions (either normal or lognormal) whose means were as close as possible to the best guesses given by Davis while keeping the lower and upper bounds of the 90% confidence interval close to Davis’. However, there are slight differences because not all of his ranges could be neatly classified as normal or lognormal. ↩
The map from probability judgments to probability intervals is as follows: “very probably yes” = (0.9, 1.0), “probably yes” = (0.65, 0.9), “possibly yes” = (0.5, 0.65), “possibly no” = (0.35. 0.5), “probably no” = (0.1, 0.35), “very probably no” = (0, 0.1) ↩
In the GitHub repository, the wr_simulate.py and wr_models.ipynb files contain the code used to generate the Monte Carlo simulations and analyze the results for each welfare range model. Thanks again to Matthew Romer for his contributions to run-time efficiency. ↩
The undiluted experience model was the only model whose results were not approximately normal; because of its heavy right skew, it was modeled as a lognormal distribution. ↩