{ "cells": [ { "cell_type": "code", "execution_count": 1, "metadata": {}, "outputs": [], "source": [ "import os\n", "import numpy as np\n", "import pandas as pd\n", "import bambi\n", "import pymc3 as pm\n", "import arviz as az\n", "from scipy.stats import spearmanr\n", "\n", "import seaborn as sns\n", "sns.set_context('paper')\n", "sns.set_style(\"ticks\")\n", "\n", "import matplotlib.pyplot as plt\n", "%matplotlib inline\n", "\n", "# custom imports\n", "from utils.stats import sem_p, compute_ttests, get_var\n", "from utils.plotting import add_ttest, despine, cm2inch, violin\n", "from utils.general import make_sure_path_exists\n", "from utils.descriptives import compute_gaze_influence_score, compute_p_last_gaze_choice" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ "# Descriptives & data" ] }, { "cell_type": "code", "execution_count": 2, "metadata": {}, "outputs": [], "source": [ "# directory of data\n", "subject_data_dir = 'data/subject_files/'\n", "summary_data_dir = 'data/summary_files/'\n", "# output directory for mixed effects models\n", "mfx_dir = 'results/posterior_traces/mixed_effects_models/'\n", "\n", "# make sure output dir exists\n", "make_sure_path_exists('figures/')\n", "make_sure_path_exists(mfx_dir)\n", "\n", "# choice set sizes\n", "setsizes = np.array([9, 16, 25, 36])\n", "colors = ['darkturquoise', 'orange', 'mediumseagreen', 'lightcoral']\n", "n_trials_per_setsize = 50\n", "\n", "# read in response data\n", "data =[]\n", "for setsize in setsizes:\n", " df_setsize = pd.read_csv(summary_data_dir+'{}_data.csv'.format(setsize))\n", " df_setsize['setsize'] = setsize\n", " data.append(df_setsize)\n", "data = pd.concat(data, sort=True)\n", "\n", "# add RT in seconds\n", "data['rt_s'] = data['rt'].values / 1000.\n", " \n", "# read out subject IDs\n", "subjects = np.unique(data.subject)\n", "n_subjects = subjects.size\n", " \n", "# read in gaze data\n", "gaze_data = []\n", "for subject in subjects:\n", " for c in setsizes:\n", " tmp_data = pd.read_csv(subject_data_dir+'{}_{}_fixations.csv'.format(subject, c))\n", " tmp_data = tmp_data[[c for c in tmp_data.columns if not 'Unnamed:' in c]]\n", " gaze_data.append(tmp_data)\n", "gaze_data = pd.concat(gaze_data, sort=True)" ] }, { "cell_type": "code", "execution_count": 3, "metadata": {}, "outputs": [ { "data": { "text/html": [ "
\n", " | best_chosen | \n", "best_seen_chosen | \n", "choice | \n", "fixation_count | \n", "fixation_onset_0 | \n", "fixation_onset_1 | \n", "fixation_onset_10 | \n", "fixation_onset_11 | \n", "fixation_onset_12 | \n", "fixation_onset_13 | \n", "... | \n", "stimulus_35 | \n", "stimulus_4 | \n", "stimulus_5 | \n", "stimulus_6 | \n", "stimulus_7 | \n", "stimulus_8 | \n", "stimulus_9 | \n", "subject | \n", "trial | \n", "rt_s | \n", "
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | \n", "1.0 | \n", "1.0 | \n", "1 | \n", "18.0 | \n", "1662.0 | \n", "1238.0 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "... | \n", "NaN | \n", "nr62.png | \n", "nr125.png | \n", "nr63.png | \n", "nr113.png | \n", "nr27.png | \n", "NaN | \n", "0 | \n", "2 | \n", "8.468078 | \n", "
1 | \n", "1.0 | \n", "1.0 | \n", "0 | \n", "14.0 | \n", "907.0 | \n", "625.0 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "... | \n", "NaN | \n", "nr76.png | \n", "nr93.png | \n", "nr79.png | \n", "nr4.png | \n", "nr92.png | \n", "NaN | \n", "0 | \n", "3 | \n", "4.734945 | \n", "
2 | \n", "1.0 | \n", "1.0 | \n", "1 | \n", "20.0 | \n", "893.0 | \n", "503.0 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "... | \n", "NaN | \n", "nr56.png | \n", "nr91.png | \n", "nr30.png | \n", "nr106.png | \n", "nr121.png | \n", "NaN | \n", "0 | \n", "7 | \n", "7.822484 | \n", "
3 | \n", "1.0 | \n", "1.0 | \n", "3 | \n", "12.0 | \n", "773.0 | \n", "4625.0 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "... | \n", "NaN | \n", "nr21.png | \n", "nr85.png | \n", "nr2.png | \n", "nr58.png | \n", "nr7.png | \n", "NaN | \n", "0 | \n", "9 | \n", "5.557554 | \n", "
4 | \n", "1.0 | \n", "1.0 | \n", "4 | \n", "22.0 | \n", "786.0 | \n", "1010.0 | \n", "NaN | \n", "NaN | \n", "NaN | \n", "NaN | \n", "... | \n", "NaN | \n", "nr69.png | \n", "nr81.png | \n", "nr79.png | \n", "nr58.png | \n", "nr28.png | \n", "NaN | \n", "0 | \n", "14 | \n", "9.125540 | \n", "
5 rows × 157 columns
\n", "\n", " | choice | \n", "dur | \n", "fixnum | \n", "is_first | \n", "is_last | \n", "is_last_to_choice | \n", "is_refixation | \n", "item | \n", "onset | \n", "refixnum | \n", "setsize | \n", "stimulus | \n", "subject | \n", "trial | \n", "value | \n", "
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
0 | \n", "1 | \n", "552 | \n", "1 | \n", "1.0 | \n", "0.0 | \n", "1 | \n", "0 | \n", "4 | \n", "76 | \n", "0.0 | \n", "9 | \n", "nr62.png | \n", "0 | \n", "2 | \n", "0 | \n", "
1 | \n", "1 | \n", "188 | \n", "2 | \n", "0.0 | \n", "0.0 | \n", "1 | \n", "0 | \n", "3 | \n", "678 | \n", "0.0 | \n", "9 | \n", "nr48.png | \n", "0 | \n", "2 | \n", "0 | \n", "
2 | \n", "1 | \n", "260 | \n", "3 | \n", "0.0 | \n", "0.0 | \n", "1 | \n", "0 | \n", "7 | \n", "922 | \n", "0.0 | \n", "9 | \n", "nr113.png | \n", "0 | \n", "2 | \n", "0 | \n", "
3 | \n", "1 | \n", "348 | \n", "4 | \n", "0.0 | \n", "0.0 | \n", "1 | \n", "0 | \n", "1 | \n", "1238 | \n", "0.0 | \n", "9 | \n", "nr10.png | \n", "0 | \n", "2 | \n", "2 | \n", "
4 | \n", "1 | \n", "326 | \n", "5 | \n", "0.0 | \n", "0.0 | \n", "1 | \n", "0 | \n", "0 | \n", "1662 | \n", "0.0 | \n", "9 | \n", "nr91.png | \n", "0 | \n", "2 | \n", "0 | \n", "