https://github.com/daeh/emotionreasoning-cogsci22

Emotion Reasoning. Models, analyses and data for the 2022 CogSci paper, "Reasoning about the antecedents of emotions: Bayesian causal inference over an intuitive theory of mind"

https://github.com/daeh/emotionreasoning-cogsci22

Science Score: 23.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
  • Committers with academic emails
    1 of 1 committers (100.0%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (9.8%) to scientific vocabulary

Keywords

affective-computing bayesian-inference cognitive-science computational-intelligence psychology
Last synced: 5 months ago · JSON representation

Repository

Emotion Reasoning. Models, analyses and data for the 2022 CogSci paper, "Reasoning about the antecedents of emotions: Bayesian causal inference over an intuitive theory of mind"

Basic Info
  • Host: GitHub
  • Owner: daeh
  • License: mit
  • Language: HTML
  • Default Branch: main
  • Homepage:
  • Size: 4.14 MB
Statistics
  • Stars: 7
  • Watchers: 1
  • Forks: 1
  • Open Issues: 0
  • Releases: 0
Topics
affective-computing bayesian-inference cognitive-science computational-intelligence psychology
Created almost 4 years ago · Last pushed almost 2 years ago
Metadata Files
Readme License

README.md

Reasoning about the antecedents of emotions: Bayesian causal inference over an intuitive theory of mind (CogSci 2022)

Emotion Reasoning Splash Image

ABSTRACT It is commonly believed that expressions visually signal rich diagnostic information to human observers. We studied how observers interpret the dynamic expressions that people spontaneously produced during a real-life high-stakes televised game. We find that human observers are remarkably poor at recovering what events elicited others' facial and bodily expressions. Beyond simple inaccuracy, people's causal reasoning exhibits systematic model-based patterns of errors. We show that latent emotion representations can explain people's reasoning about the unseen causes of expressions. A hierarchical Bayesian model simulates which events people infer to be the cause of others' expressions by comparing the emotions inferred from the expressions against the emotions people were predicted to experience in various situations. This causal model provides a close, parameter-free fit to human causal judgments, suggesting that humans interpret expressions in the context of emotion predictions generated by a causally-structured mental model of other minds.

Project

This repository provides all of the raw behavioral data, analyses, and models related to the 2022 CogSci talk and paper

  • Houlihan SD, Ong D, Cusimano M, & Saxe R. (2022). Reasoning about the antecedents of emotions: Bayesian causal inference over an intuitive theory of mind. In Proceedings of the 44th Annual Conference of the Cognitive Science Society.

| Dae Houlihan presenting at CogSci2022 | Emotion Reasoning Paper | | :----------------------------------------------------------: | :----------------------------------------------------------: | | Talk Recording | Paper PDF |

Citing the work

If you use this repository, the data it includes, or build on the models/analyses, please cite the paper (NB citation given in BibLaTeX):

BibTeX @inproceedings{houlihan2022emotionreasoning, title = {Reasoning about the Antecedents of Emotions: {{Bayesian}} Causal Inference over an Intuitive Theory of Mind}, shorttitle = {Causal Reasoning over Emotions}, booktitle = {Proceedings of the {{Annual Meeting}} of the {{Cognitive Science Society}}}, author = {Houlihan, Sean Dae and Ong, Desmond and Cusimano, Maddie and Saxe, Rebecca}, date = {2022}, volume = {44}, pages = {854--861}, url = {https://escholarship.org/uc/item/7sn3w3n2}, eventtitle = {{{CogSci}}} }

Demos of the stimuli

The introductory video (explaining the rules of the game) and examples of the 5 second videos of players' reactions can be viewed here: Demos of dynamic expressions spontaneously produced by players on the Golden Balls Gameshow.

Contents of the repository

  • code - models and analyses
  • datain - the raw behavioral data collected from human observers
  • experiments - mTurk experiments used to collect the behavioral data in datain/
  • figs - figures generated by the analyses in code/
  • manuscript - latex code that generates the submitted manuscript
  • website - the project website, which includes demos of the stimuli used in experiments/

Running the project

You can install the dependencies necessary to regenerate the results and figures using (1) a Docker container (2) a conda environment (3) a pip requirements specification.

1. As a Docker container (recommended for reproducibility)

Requires Docker. NB Docker is finicky about the cpu architecture. These instructions are for building the image on an arm64 processor. For an example of building the image for an amd64 processor, see .devcontainer/.

```bash

Clone git repo to the current working directory

git clone --branch main https://github.com/daeh/emotionreasoning-cogsci22.git emotionreasoning-cogsci22

Enter the new directory

cd emotionreasoning-cogsci22

Build Docker Image

docker buildx build --platform=linux/arm64 --tag emoreasimg .

Run Container

docker run --rm --platform=linux/arm64 --name=emoreas --volume $(pwd)/:/host/ \ emoreasimg -u /host/code/wrapper_cogsci.py --projectdir /host/ ```

The container tag is arbitrary (you can replace emoreasimg with a different label).

2. As a conda environment (recommended for customization)

You can use the conda-lock.yml file to create an environment. Requires conda, conda-lock, and a local installation of TeX Live.

```bash

Clone git repo to the current working directory

git clone --branch main https://github.com/daeh/emotionreasoning-cogsci22.git emotionreasoning-cogsci22

Enter the new directory

cd emotionreasoning-cogsci22

Create the conda environment

conda-lock install --name emoreasenv conda-lock.yml

Activate the conda environment

conda activate emoreasenv

Run the python code

python ./code/wrapper_cogsci.py --projectdir $(pwd) ```

The conda environment name is arbitrary (you can replace emoreasenv with a different label).

If the conda-lock.yml lock file cannot resolve the dependencies for your system, you can use the environment.yml file to create an environment with the latest package versions available. Simply replace the conda-lock install line with conda env create -f environment.yml. NB the environment.yml package specifications are not version-locked, so it is possible that there will be package-version idiosyncrasies.

3. As a pip requirements specification

If you use a strategy other than conda or Docker to manage python environments, you can install the dependencies using the requirements.txt file located in the root directory of the project. You additionally need to have TeX Live installed locally.

Authors

Sean Dae Houlihan, Desmond Ong, Maddie Cusimano, Rebecca Saxe

Owner

  • Name: Dae
  • Login: daeh
  • Kind: user
  • Location: Cambridge, MA
  • Company: MIT

Neukom Computational Science Postdoc Fellow at Dartmouth. PhD from MIT Brain and Cognitive Sciences.

GitHub Events

Total
  • Watch event: 1
Last Year
  • Watch event: 1

Committers

Last synced: 8 months ago

All Time
  • Total Commits: 5
  • Total Committers: 1
  • Avg Commits per committer: 5.0
  • Development Distribution Score (DDS): 0.0
Past Year
  • Commits: 0
  • Committers: 0
  • Avg Commits per committer: 0.0
  • Development Distribution Score (DDS): 0.0
Top Committers
Name Email Commits
Dae Houlihan d****a@m****u 5
Committer Domains (Top 20 + Academic)
mit.edu: 1

Issues and Pull Requests

Last synced: 8 months ago

All Time
  • Total issues: 0
  • Total pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Total issue authors: 0
  • Total pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 0
  • Pull requests: 0
  • Average time to close issues: N/A
  • Average time to close pull requests: N/A
  • Issue authors: 0
  • Pull request authors: 0
  • Average comments per issue: 0
  • Average comments per pull request: 0
  • Merged pull requests: 0
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
Pull Request Authors
Top Labels
Issue Labels
Pull Request Labels

Dependencies

.devcontainer/Dockerfile docker
  • debian bullseye-slim build
Dockerfile docker
  • debian bullseye-slim build
experiments/exp_e_xc/package-lock.json npm
  • 690 dependencies
experiments/exp_e_xc/package.json npm
  • @babel/core ^7.11.1 development
  • @babel/preset-env ^7.11.0 development
  • babel-loader ^8.1.0 development
  • copy-webpack-plugin ^6.0.3 development
  • css-loader ^4.2.1 development
  • file-loader ^6.0.0 development
  • html-webpack-plugin ^4.3.0 development
  • less-loader ^6.2.0 development
  • mini-css-extract-plugin ^0.10.0 development
  • postcss-loader ^3.0.0 development
  • postcss-preset-env ^6.7.0 development
  • sass ^1.26.10 development
  • sass-loader ^9.0.3 development
  • webpack ^4.44.1 development
  • webpack-cli ^3.3.12 development
  • core-js ^3.6.5
  • jquery ^3.5.1
website/package-lock.json npm
  • 453 dependencies
website/package.json npm
  • @babel/core ^7.17.12 development
  • @babel/preset-env ^7.17.12 development
  • babel-loader ^8.2.5 development
  • copy-webpack-plugin ^11.0.0 development
  • css-loader ^6.7.1 development
  • file-loader ^6.2.0 development
  • html-webpack-plugin ^5.5.0 development
  • less-loader ^11.0.0 development
  • mini-css-extract-plugin ^2.6.0 development
  • postcss-loader ^7.0.0 development
  • postcss-preset-env ^7.5.0 development
  • sass ^1.51.0 development
  • sass-loader ^13.0.0 development
  • url-loader ^4.1.1 development
  • webpack ^5.72.1 development
  • webpack-cli ^4.9.2 development
  • core-js ^3.22.5
  • jquery ^3.6.0
requirements.txt pypi
  • Babel ==2.11.0
  • CacheControl ==0.12.12
  • Jinja2 ==3.1.2
  • MarkupSafe ==2.1.1
  • Pillow ==9.2.0
  • PySocks ==1.7.1
  • PyYAML ==6.0
  • Pygments ==2.13.0
  • Send2Trash ==1.8.0
  • anyio ==3.6.2
  • appdirs ==1.4.4
  • appnope ==0.1.3
  • argon2-cffi ==21.3.0
  • argon2-cffi-bindings ==21.2.0
  • asttokens ==2.1.0
  • attrs ==22.1.0
  • autopep8 ==2.0.0
  • backcall ==0.2.0
  • backports.functools-lru-cache ==1.6.4
  • beautifulsoup4 ==4.11.1
  • bleach ==5.0.1
  • brotlipy ==0.7.0
  • cachy ==0.3.0
  • certifi ==2022.9.24
  • cffi ==1.15.1
  • charset-normalizer ==2.1.1
  • click ==8.1.3
  • click-default-group ==1.2.2
  • clikit ==0.6.2
  • conda_lock ==1.2.1
  • contourpy ==1.0.6
  • crashtest ==0.3.1
  • cryptography ==38.0.3
  • cycler ==0.11.0
  • debugpy ==1.6.3
  • decorator ==5.1.1
  • defusedxml ==0.7.1
  • distlib ==0.3.6
  • ensureconda ==1.4.3
  • entrypoints ==0.4
  • executing ==1.2.0
  • fastjsonschema ==2.16.2
  • filelock ==3.8.0
  • flit_core ==3.8.0
  • fonttools ==4.38.0
  • html5lib ==1.1
  • idna ==3.4
  • importlib-metadata ==5.0.0
  • importlib-resources ==5.10.0
  • ipykernel ==6.17.1
  • ipython ==8.6.0
  • ipython-genutils ==0.2.0
  • jaraco.classes ==3.2.3
  • jedi ==0.18.1
  • joblib ==1.2.0
  • json5 ==0.9.5
  • jsonschema ==4.17.0
  • jupyter-server ==1.23.2
  • jupyter_client ==7.4.6
  • jupyter_core ==5.0.0
  • jupyterlab ==3.5.0
  • jupyterlab-pygments ==0.2.2
  • jupyterlab_server ==2.16.3
  • keyring ==23.11.0
  • kiwisolver ==1.4.4
  • matplotlib ==3.6.2
  • matplotlib-inline ==0.1.6
  • mistune ==2.0.4
  • more-itertools ==9.0.0
  • msgpack ==1.0.4
  • munkres ==1.1.4
  • nbclassic ==0.4.8
  • nbclient ==0.7.0
  • nbconvert ==7.2.5
  • nbformat ==5.7.0
  • nest-asyncio ==1.5.6
  • notebook ==6.5.2
  • notebook_shim ==0.2.2
  • numpy ==1.23.4
  • packaging ==21.3
  • pandas ==1.5.1
  • pandocfilters ==1.5.0
  • parso ==0.8.3
  • pastel ==0.2.1
  • patsy ==0.5.3
  • pexpect ==4.8.0
  • pickleshare ==0.7.5
  • pip ==22.3.1
  • pkginfo ==1.8.3
  • pkgutil_resolve_name ==1.3.10
  • platformdirs ==2.5.2
  • prometheus-client ==0.15.0
  • prompt-toolkit ==3.0.32
  • psutil ==5.9.4
  • ptyprocess ==0.7.0
  • pure-eval ==0.2.2
  • pyOpenSSL ==22.1.0
  • pycodestyle ==2.9.1
  • pycparser ==2.21
  • pydantic ==1.10.2
  • pylev ==1.4.0
  • pyparsing ==3.0.9
  • pyrsistent ==0.19.2
  • python-dateutil ==2.8.2
  • pytz ==2022.6
  • pyzmq ==24.0.1
  • requests ==2.28.1
  • ruamel.yaml ==0.17.21
  • ruamel.yaml.clib ==0.2.7
  • scikit-learn ==1.1.3
  • scipy ==1.9.3
  • seaborn ==0.12.1
  • setuptools ==65.5.1
  • six ==1.16.0
  • sniffio ==1.3.0
  • soupsieve ==2.3.2.post1
  • stack-data ==0.6.1
  • statsmodels ==0.13.5
  • terminado ==0.17.0
  • threadpoolctl ==3.1.0
  • tinycss2 ==1.2.1
  • tomli ==2.0.1
  • tomlkit ==0.11.6
  • toolz ==0.12.0
  • torch ==1.13.0
  • tornado ==6.2
  • traitlets ==5.5.0
  • typing_extensions ==4.4.0
  • unicodedata2 ==15.0.0
  • urllib3 ==1.26.11
  • virtualenv ==20.16.7
  • wcwidth ==0.2.5
  • webencodings ==0.5.1
  • websocket-client ==1.4.2
  • wheel ==0.38.4
  • zipp ==3.10.0
environment.yml pypi