---
title: 'Sampling Strategies in Decisions from Experience'
author: "Linus Hof, Thorsten Pachur, Veronika Zilker"
bibliography: sampling-strategies-in-dfe.bib
output:
html_document:
code_folding: hide
toc: yes
toc_float: yes
number_sections: no
pdf_document:
toc: yes
csl: apa.csl
editor_options:
markdown:
wrap: sentence
---
```{r}
# load packages
pacman::p_load(repro,
tidyverse,
knitr,
viridis)
```
# Author Note
This document was created from the commit with the hash `r repro::current_hash()`.
- Add information on how to reproduce the project.
- Add contact.
# Abstract
A probability theoretic definition of sampling and a rough stochastic model of the random process underlying decisions from experience are proposed.
It is demonstrated how the stochastic model can be used a) to explicate assumptions about the sampling and decision strategies that agents may apply and b) to derive predictions about the resulting decision behavior in terms of function forms and parameter values.
Synthetic choice data is simulated and modeled in cumulative prospect theory to test these predictions.
# Introduction
...
## Random Processes in Sequential Sampling
In research on the decision theory, a standard paradigm is the choice between at least two (monetary) prospects.
Let a prospect be a probability space $(\Omega, \mathscr{F}, P)$.
$\Omega$ is the sample space
$$\begin{equation}
\omega_i = \{\omega_1, ..., \omega_n\} \in \Omega
\end{equation}$$
containing a finite set of possible outcomes, monetary gains and/or losses respectively.
$\mathscr{F}$ is the set of all possible subsets of $\Omega$:
$$\begin{equation}
A_i = \{A_1, ..., A_n\} \in \mathscr{F} = \mathscr{P}(\Omega)
\; .
\end{equation}$$
$P$ is a probability mass function
$$\begin{equation}
P: \mathscr{F} \mapsto [0,1]
\end{equation}$$
that assigns each outcome a probability of $0 \leq p(\omega_i) \leq 1$ with $P(\Omega) = 1$ [cf. @kolmogorovFoundationsTheoryProbability1950, pp. 2-3].
In such a choice paradigm, agents are asked to evaluate the prospects and build a preference for either one of them.
It is common to make a rather crude distinction between two variants of this evaluation process [cf. @hertwigDescriptionexperienceGapRisky2009].
For decisions from description (DfD), agents are provided a full symbolic description of the prospects.
For decisions from experience [DfE; e.g., @hertwigDecisionsExperienceEffect2004], the prospects not described but must be explored by the means of sampling.
To provide a formal definition of sampling in risky choice, we make use of the mathematical concept of a random variable and start by referring to a prospect as *"risky"* in the case where all $p(\omega_{i}) \neq 1$.
Here, risky describes the fact that if agents would choose a prospect and any of its outcomes in $\Omega$ must occur, none of these outcomes will occur with certainty.
It is acceptable to speak of the occurrence of $\omega_{i}$ as a realization of a random variable $X$ defined on a prospect iff the following conditions A and B are met:
A) $X$ is the measurable function
$$\begin{equation}
X: (\Omega, \mathscr{F}) \mapsto (\Omega', \mathscr{F'})
\; ,
\end{equation}$$
where $\Omega'$ is a set of real numbered values $X$ can take and $\mathscr{F'}$ is a set of subsets of $\Omega'$.
I.e., $\Omega$ maps into $\Omega'$ such that correspondingly each subset $A'_i \in \mathscr{F'}$ has a pre-image
$$\begin{equation}
X^{-1}A'_i \in \mathscr{F} \; ,
\end{equation}$$
which is the set $\{\omega_i \in \Omega: X(\omega_i) \in A'_i\}$ [@kolmogorovFoundationsTheoryProbability1950, p. 21].
B) The mapping is such that $X(\omega_i) = \omega_i$.
Given conditions A and B, we denote any occurrence of $\omega_i$ as a *single sample*, or realization, of a random variable defined on a prospect and any systematic approach to generate, in discrete time, a sequence of single samples that originate from multiple prospects as a *sampling strategy* [see also @hillsInformationSearchDecisions2010].
## A Stochastical Sampling Model for DfE
Consider a choice between $1, ...,j,..., n$ prospects.
To construct a rough stochastic sampling model (hereafter SSM) of the random process underlying DfE, it is assumed that agents base their decisions on the information provided by the prospects, which is in principle fully described by their probability triples.
Thus, a decision variable
$$\begin{equation}
D := f((\Omega, \mathscr{F}, P)_j)
\end{equation}$$
is defined.
Since in DfE no symbolic descriptions of the triples are provided, the model is restricted to the case where decisions are based on sequences of single samples generated from the triples:
$$\begin{equation}
D := f((X: (\Omega, \mathscr{F}) \mapsto (\Omega', \mathscr{F'}))_j) = f(X_1, ..., X_j, ..., X_n)
\; ,
\end{equation}$$
where $\Omega_j = \Omega'_j$.
Note that the decision variable $D$ is defined as a function $f$ of the random variables associated with the prospects' probability spaces, where $f$ can operate on any quantitative measure, or moment, related to these random variables.
Since decision models differ in the form of $f$ and the measures the latter utilizes [@heOntologyDecisionModels2020, for an ontology of decision models], we take the stance that these choices should be informed by psychological or other theory and empirical protocols.
For what do these choices mean?
They reflect the assumptions about the kind of information agents process and the way they do, not to mention the question of whether they are capable of doing so.
In the following section, it is demonstrated how such assumptions about the processing strategies that agents may apply in DfE can be captured by the SSM.
## Integrating sampling and decision strategies into the SSM
Hills and Hertwig [-@hillsInformationSearchDecisions2010] discussed a potential link between the sampling and decision strategies of agents in DfE, i.e., a systematic relation between the pattern according to which sequences of single samples are generated and the mechanism of integrating and evaluating these sample sequences to arrive at a decision.
Specifically, the authors suppose that frequent switching between prospects in the sampling phase translates to a round-wise decision strategy, for which the evaluation process is separated into multiple rounds of ordinal comparisons between single samples (or small chunks thereof), such that the unit of the final evaluation are round wins rather than raw outcomes.
In contrast, infrequent switching is supposed to translate to a decision strategy, for which only a single ordinal comparison of the summaries across all samples of the respective prospects is conducted [@hillsInformationSearchDecisions2010, see Figure 1].
The authors assume that these distinct sampling and decision strategies lead to characteristic patterns in decision behavior and may serve as an additional explanation for the many empirical protocols which indicate that DfE differ from DfD [@wulffMetaanalyticReviewTwo2018, for a meta-analytic review; but see @foxDecisionsExperienceSampling2006].
In the following, choices between two prospects are considered to integrate the assumptions about the sampling and decision strategies from above into the SSM.
Let $X$ and $Y$ be random variables related to the prospects with the probability spaces $(\Omega, \mathscr{F}, P)_X$ and $(\Omega, \mathscr{F}, P)_Y$.
By definition, the decision variable $D$ should quantify the accumulated evidence for one prospect over the other, which Hills and Hertwig [-@hillsInformationSearchDecisions2010] describe in units of won comparisons.
Hence, $f$ should map the possible outcomes of a comparison of quantitative measures related to $X$ and $Y$, hereafter the sampling space $S = \mathbb{R}$, to a measure space $S' = \{0,1\}$, indicating the possible outcomes of a single comparison:
$$\begin{equation}
D:= f: S \mapsto S'
\; .
\end{equation}$$
Since Hills and Hertwig [-@hillsInformationSearchDecisions2010] assume that comparisons of prospects are based on sample means, $S$ is the set
$$\begin{equation}
S =
\left\{
\frac{\frac{1}{N_X} \sum\limits_{i=1}^{N_X} x_i}
{\frac{1}{N_Y} \sum\limits_{j=1}^{N_Y} y_j}
\right\}
=
\left\{
\frac{\overline{X}_{N_X}} {\overline{Y}_{N_Y}}
\right\}
\; ,
\end{equation}$$
where $x_i$ and $y_j$ are single samples and $N_X$ and $N_Y$ denotes the number of single samples within a comparison.
To indicate that the comparison of prospects on the ordinal scale is of primary interest, we define
$$\begin{equation}
\mathscr{D} = \left\{\frac{\overline{X}_{N_X}}{\overline{Y}_{N_Y}} > 0, \frac{\overline{X}_{N_X}}{\overline{Y}_{N_Y}} \leq 0 \right\}
\end{equation}$$
as a set of subsets of $S$, i.e., the *event space*, and the decision variable as the measure
$$\begin{equation}
D:= f: (S, \mathscr{D}) \mapsto S'
\end{equation}$$
with the mapping
$$\begin{equation}
D:=
\left(
\frac{\overline{X}_{N_X}} {\overline{Y}_{N_Y}}
\right)
\in S :
f
\left(
\frac{\overline{X}_{N_X}} {\overline{Y}_{N_Y}}
\right)
=
\begin{cases}
1 & \text{if} & \frac{\overline{X}_{N_X}}{\overline{Y}_{N_Y}} > 0 \in \mathscr{D} \\
0 & \text{else}.
\end{cases}
\end{equation}$$
It can be shown that for the case $N_X = N_Y = 1$, $D$ is a random variable that follows the Bernoulli distribution
$$\begin{equation}
D \sim B\left( p \left( \frac{\overline{X}_{N_X = 1}}{\overline{Y}_{N_Y = 1}} > 0\right), n\right) \; ,
\end{equation}$$
where $n$ is the number of comparisons (see *Proof 1* in Appendix).
## Predicting Choices From the SSM
Hills and Hertwig [-@hillsInformationSearchDecisions2010] proposed the two different sampling strategies in combination with the respective decision strategies, i.e., piecewise sampling and round-wise comparison vs. comprehensive sampling and summary comparison, as an explanation for different choice patterns in DfE.
How does the current version of the SSM support this proposition?
Given prospects $X$ and $Y$, the sample spaces $S = \left\{\frac{\overline{X}_{N_X}} {\overline{Y}_{N_Y}}\right\}^{\mathbb{N}}$ can be varied by changes on three parameters, i.e., the number of comparisons $\mathbb{N}$ and the sample sizes $N_X$ and $N_Y$ on which these comparisons are based.
First, only considering the pure cases formulated by the above authors, the following restrictions are put the parameters:
$$\begin{equation}
\mathbb{N}
=
\begin{cases}
1 & \text{if} & \text{Summary} \\
\geq 1 & \text{if} & \text{Round-wise}
\end{cases}\\
\end{equation}$$
and
$$\begin{equation}
N_X \, \text{and} \, N_Y
=
\begin{cases}
\geq 1 & \text{if} & \text{Summary} \\
1 & \text{if} & \text{Round-wise}
\end{cases}\\
\end{equation}$$
For the summary strategy, the following prediction is obtained:
Given that
$$\begin{equation}
P\left(\lim_{N_X \to \infty} \overline{X}_{N_X} = E(X) \right) =
P\left(\lim_{N_Y \to \infty} \overline{Y}_{N_Y} = E(Y) \right) =
1 \; ,
\end{equation}$$
we obtain that
$$\begin{equation}
\left(
\frac{\overline{X}_{N_X}} {\overline{Y}_{N_Y}}
\right)
\in S :
P\left(\lim_{N_X \to \infty} \lim_{N_Y \to \infty} \frac{\overline{X}_{N_X}} {\overline{Y}_{N_Y}} =
\frac{E(X)} {E(Y)}
\right ) =
1 \; ,
\end{equation}$$
I.e., for the summary strategy, we assume that for increasing sample sizes $N_X$ and $N_Y$, the prospect with the larger expected value is chosen almost surely.
For the round-wise strategy, the following prediction is obtained:
Given that $N_X$ and $N_Y$ are set to 1, $D$ follows the binomial distribution
$$\begin{equation}
B(k \, | \, p_X, \mathbb{N}) \; ,
\end{equation}$$
where $p$ is the probability that a single sample of prospect $X$ is larger than a single sample of prospect $Y$, $\mathbb{N}$ is the number of comparisons and $k$ is the number of times $x \in X$ is larger than $y \in Y$.
*Proof.*
For $N_X = N_Y = 1$, the sample space is
$$\begin{equation}
\left\{\frac{\overline{X}_{N_X = 1}} {\overline{Y}_{N_Y = 1}} \right\}^{\mathbb{N}} =
\left\{\frac{x_i \in \Omega'_X} {y_j \in \Omega'_Y}\right\}^{\mathbb{N}}
\end{equation}$$
# Method
## Test set
Under each condition, i.e., strategy-parameter combinations, all gambles are played by 100 synthetic agents.
We test a set of gambles, in which one of the prospects contains a safe outcome and the other two risky outcomes (*safe-risky gambles*).
Therefore, 60 gambles from an initial set of 10,000 are sampled.
Both outcomes and probabilities are drawn from uniform distributions, ranging from 0 to 20 for outcomes and from .01 to .99 for probabilities of the lower risky outcomes $p_{low}$.
The probabilities of the higher risky outcomes are $1-p_{low}$, respectively.
To omit dominant prospects, safe outcomes fall between both risky outcomes.
The table below contains the test set of 60 gambles.
Sampling of gambles was stratified, randomly drawing an equal number of 20 gambles with no, an attractive, and an unattractive rare outcome.
Risky outcomes are considered *"rare"* if their probability is $p < .2$ and *"attractive"* (*"unattractive"*) if they are higher (lower) than the safe outcome.
```{r message=FALSE}
gambles <- read_csv("data/gambles/sr_subset.csv")
gambles %>% kable()
```
## Model Parameters
**Switching probability** $s$ is the probability with which agents draw the following single sample from the prospect they did not get their most recent single sample from.
$s$ is varied between .1 to 1 in increments of .1.
The **boundary type** is either the minimum value any prospect's sample statistic must reach (absolute) or the minimum value for the difference of these statistics (relative).
Sample statistics are sums over outcomes (comprehensive strategy) and sums over wins (piecewise strategy), respectively.
For comprehensive integration, the **boundary value** $a$ is varied between 15 to 75 in increments of 15.
For piecewise integration $a$ is varied between 1 to 5 in increments of 1.
```{r message=FALSE}
# read choice data
cols <- list(.default = col_double(),
strategy = col_factor(),
boundary = col_factor(),
gamble = col_factor(),
rare = col_factor(),
agent = col_factor(),
choice = col_factor())
choices <- read_csv("data/choices/choices.csv", col_types = cols)
```
In sum, 2 (strategies) x 60 (gambles) x 100 (agents) x 100 (parameter combinations) = `r nrow(choices)` choices are simulated.
# Results
Because we are not interested in deviations from normative choice due to sampling artifacts (e.g., ceiling effects produced by low boundaries), we remove trials in which only one prospect was attended.
In addition, we use relative frequencies of sampled outcomes rather than 'a priori' probabilities to compare actual against normative choice behavior.
```{r}
# remove choices where prospects were not attended
choices <- choices %>%
filter(!(is.na(a_ev_exp) | is.na(b_ev_exp)))
```
```{r eval = FALSE}
# remove choices where not all outcomes were sampled
choices <- choices %>%
filter(!(is.na(a_ev_exp) | is.na(b_ev_exp) | a_p1_exp == 0 | a_p2_exp == 0))
```
Removing the respective trials, we are left with `r nrow(choices)` choices.
## Sample Size
```{r message=FALSE}
samples <- choices %>%
group_by(strategy, s, boundary, a) %>%
summarise(n_med = median(n_sample))
samples_piecewise <- samples %>% filter(strategy == "piecewise")
samples_comprehensive <- samples %>% filter(strategy == "comprehensive")
```
The median sample sizes generated by different parameter combinations ranged from `r min(samples_piecewise$n_med)` to `r max(samples_piecewise$n_med)` for piecewise integration and `r min(samples_comprehensive$n_med)` to `r max(samples_comprehensive$n_med)` for comprehensive integration.
### Boundary type and boundary value (a)
As evidence is accumulated sequentially, relative boundaries and large boundary values naturally lead to larger sample sizes, irrespective of the integration strategy.
```{r message=FALSE}
group_med <- samples_piecewise %>%
group_by(boundary, a) %>%
summarise(group_med = median(n_med)) # to get the median across all s values
samples_piecewise %>%
ggplot(aes(a, n_med, color = a)) +
geom_jitter(alpha = .5, size = 2) +
geom_point(data = group_med, aes(y = group_med), size = 3) +
facet_wrap(~boundary) +
scale_color_viridis() +
labs(title = "Piecewise Integration",
x ="a",
y="Sample Size",
col="a") +
theme_minimal()
```
```{r message=FALSE}
group_med <- samples_comprehensive %>%
group_by(boundary, a) %>%
summarise(group_med = median(n_med))
samples_comprehensive %>%
ggplot(aes(a, n_med, color = a)) +
geom_jitter(alpha = .5, size = 2) +
geom_point(data = group_med, aes(y = group_med), size = 3) +
facet_wrap(~boundary) +
scale_color_viridis() +
labs(title = "Comprehensive Integration",
x ="a",
y="Sample Size",
col="a") +
theme_minimal()
```
### Switching probability (s)
For piecewise integration, there is an inverse relationship between switching probability and sample size.
I.e., the lower s, the less frequent prospects are compared and thus, boundaries are only approached with larger sample sizes.
This effect is particularly pronounced for low probabilities such that the increase in sample size accelerates as switching probability decreases.
```{r message=FALSE}
group_med <- samples_piecewise %>%
group_by(boundary, s) %>%
summarise(group_med = median(n_med)) # to get the median across all a values
samples_piecewise %>%
ggplot(aes(s, n_med, color = s)) +
geom_jitter(alpha = .5, size = 2) +
geom_point(data = group_med, aes(y = group_med), size = 3) +
facet_wrap(~boundary) +
scale_color_viridis() +
labs(title = "Piecewise Integration",
x ="s",
y="Sample Size",
col="s") +
theme_minimal()
```
For comprehensive integration, boundary types differ in the effects of switching probability.
For absolute boundaries, switching probability has no apparent effect on sample size as the distance of a given prospect to its absolute boundary is not changed by switching to (and sampling from) the other prospect.
For relative boundaries, however, samples sizes increase with switching probability.
```{r message=FALSE}
group_med <- samples_comprehensive %>%
group_by(boundary, s) %>%
summarise(group_med = median(n_med)) # to get the median across all a values
samples_comprehensive %>%
ggplot(aes(s, n_med, color = s)) +
geom_jitter(alpha = .5, size = 2) +
geom_point(data = group_med, aes(y = group_med), size = 3) +
facet_wrap(~boundary) +
scale_color_viridis() +
labs(title = "Comprehensive Integration",
x ="s",
y = "Sample Size",
col="s") +
theme_minimal()
```
## Choice Behavior
Below, in extension to Hills and Hertwig [-@hillsInformationSearchDecisions2010], the interplay of integration strategies, gamble features, and model parameters in their effects on choice behavior in general and their contribution to underweighting of rare events in particular is investigated.
We apply two definitions of underweighting of rare events: Considering false response rates, we define underweighting such that the rarity of an attractive (unattractive) outcome leads to choose the safe (risky) prospect although the risky (safe) prospect has a higher expected value.
```{r message=FALSE}
fr_rates <- choices %>%
mutate(ev_ratio_exp = round(a_ev_exp/b_ev_exp, 2),
norm = case_when(ev_ratio_exp > 1 ~ "A", ev_ratio_exp < 1 ~ "B")) %>%
filter(!is.na(norm)) %>% # exclude trials with normative indifferent options
group_by(strategy, s, boundary, a, rare, norm, choice) %>% # group correct and incorrect responses
summarise(n = n()) %>% # absolute numbers
mutate(rate = round(n/sum(n), 2), # response rates
type = case_when(norm == "A" & choice == "B" ~ "false safe", norm == "B" & choice == "A" ~ "false risky")) %>%
filter(!is.na(type)) # remove correct responses
```
Considering the parameters of Prelec's [-@prelecProbabilityWeightingFunction1998] implementation of the weighting function [CPT; cf. @tverskyAdvancesProspectTheory1992], underweighting is reflected by decisions weights estimated to be smaller than the corresponding objective probabilities.
### False Response Rates
```{r message=FALSE}
fr_rates_piecewise <- fr_rates %>% filter(strategy == "piecewise")
fr_rates_comprehensive <- fr_rates %>% filter(strategy == "comprehensive")
```
The false response rates generated by different parameter combinations ranged from `r min(fr_rates_piecewise$rate)` to `r max(fr_rates_piecewise$rate)` for piecewise integration and from `r min(fr_rates_comprehensive$rate)` to `r max(fr_rates_comprehensive$rate)` for comprehensive integration.
However, false response rates vary considerably as a function of rare events, indicating that their presence and attractiveness are large determinants of false response rates.
```{r message=FALSE}
fr_rates %>%
group_by(strategy, boundary, rare) %>%
summarise(min = min(rate),
max = max(rate)) %>%
kable()
```
The heatmaps below show the false response rates for all strategy-parameter combinations.
Consistent with our - somewhat rough - definition of underweighting, the rate of false risky responses is generally higher, if the unattractive outcome of the risky prospect is rare (top panel).
Conversely, if the attractive outcome of the risky prospect is rare, the rate of false safe responses is generally higher (bottom panel).
As indicated by the larger range of false response rates, the effects of rare events are considerably larger for piecewise integration.
```{r message=FALSE}
fr_rates %>%
filter(strategy == "piecewise", boundary == "absolute") %>%
ggplot(aes(a, s, fill = rate)) +
facet_grid(type ~ fct_relevel(rare, "attractive", "none", "unattractive"), switch = "y") +
geom_tile(colour="white", size=0.25) +
scale_x_continuous(expand=c(0,0), breaks = seq(1, 5, 1)) +
scale_y_continuous(expand=c(0,0), breaks = seq(.1, 1, .1)) +
scale_fill_viridis() +
labs(title = "Piecewise Integration | Absolute Boundary",
x = "a",
y= "s",
fill = "% False Responses") +
theme_minimal()
```
```{r message=FALSE}
fr_rates %>%
filter(strategy == "piecewise", boundary == "relative") %>%
ggplot(aes(a, s, fill = rate)) +
facet_grid(type ~ fct_relevel(rare, "attractive", "none", "unattractive"), switch = "y") +
geom_tile(colour="white", size=0.25) +
scale_x_continuous(expand=c(0,0), breaks = seq(1, 5, 1)) +
scale_y_continuous(expand=c(0,0), breaks = seq(.1, 1, .1)) +
scale_fill_viridis() +
labs(title = "Piecewise Integration | Relative Boundary",
x = "a",
y= "s",
fill = "% False Responses") +
theme_minimal()
```
```{r message=FALSE}
fr_rates %>%
filter(strategy == "comprehensive", boundary == "absolute") %>%
ggplot(aes(a, s, fill = rate)) +
facet_grid(type ~ fct_relevel(rare, "attractive", "none", "unattractive"), switch = "y") +
geom_tile(colour="white", size=0.25) +
scale_x_continuous(expand=c(0,0), breaks = seq(15, 75, 15)) +
scale_y_continuous(expand=c(0,0), breaks = seq(.1, 1, .1)) +
scale_fill_viridis() +
labs(title = "Comprehensive Integration | Absolute Boundary",
x = "a",
y= "s",
fill = "% False Responses") +
theme_minimal()
```
```{r message=FALSE}
fr_rates %>%
filter(strategy == "comprehensive", boundary == "relative") %>%
ggplot(aes(a, s, fill = rate)) +
facet_grid(type ~ fct_relevel(rare, "attractive", "none", "unattractive"), switch = "y") +
geom_tile(colour="white", size=0.25) +
scale_x_continuous(expand=c(0,0), breaks = seq(15, 75, 15)) +
scale_y_continuous(expand=c(0,0), breaks = seq(.1, 1, .1)) +
scale_fill_viridis() +
labs(title = "Comprehensive Integration | Relative Boundary",
x = "a",
y= "s",
fill = "% False Responses") +
theme_minimal()
```
#### Switching Probability (s) and Boundary Value (a)
As for both piecewise and comprehensive integration the differences between boundary types are rather minor and of magnitude than of qualitative pattern, the remaining analyses of false response rates are summarized across absolute and relative boundaries.
Below, the $s$ and $a$ parameter are considered as additional sources of variation in the false response pattern above and beyond the interplay of integration strategies and the rarity and attractiveness of outcomes.
```{r message=FALSE}
fr_rates %>%
filter(strategy == "piecewise") %>%
ggplot(aes(s, rate, color = a)) +
facet_grid(type ~ fct_relevel(rare, "attractive", "none", "unattractive"), switch = "y") +
geom_jitter(size = 2) +
scale_x_continuous(breaks = seq(0, 1, .1)) +
scale_y_continuous(breaks = seq(0, 1, .1)) +
scale_color_viridis() +
labs(title = "Piecewise Integration",
x = "s",
y= "% False Responses",
color = "a") +
theme_minimal()
```
```{r message=FALSE}
fr_rates %>%
filter(strategy == "comprehensive") %>%
ggplot(aes(s, rate, color = a)) +
facet_grid(type ~ fct_relevel(rare, "attractive", "none", "unattractive"), switch = "y") +
geom_jitter(size = 2) +
scale_x_continuous(breaks = seq(0, 1, .1)) +
scale_y_continuous(breaks = seq(0, 1, .1)) +
scale_color_viridis() +
labs(title = "Comprehensive Integration",
x = "s",
y= "% False Responses",
color = "a") +
theme_minimal()
```
For piecewise integration, switching probability is naturally related to the size of the samples on which the round-wise comparisons of prospects are based on, with low values of $s$ indicating large samples and vice versa.
Accordingly, switching probability is positively related to false response rates.
I.e., the larger the switching probability, the smaller the round-wise sample size and the probability of experiencing a rare event within a given round.
Because round-wise comparisons are independent of each other and binomial distributions within a given round are skewed for small samples and outcome probabilities [@kolmogorovFoundationsTheoryProbability1950], increasing boundary values do not reverse but rather amplify this relation.
For comprehensive integration, switching probability is negatively related to false response rates, i.e., an increase in $s$ is associated with decreasing false response rates.
This relation, however, may be the result of an artificial interaction between the $s$ and $a$ parameter.
Precisely, in the current algorithmic implementation of sampling with a comprehensive integration mechanism, decreasing switching probabilities cause comparisons of prospects based on increasingly unequal sample sizes immediately after switching prospects.
Consequentially, reaching (low) boundaries is rather a function of switching probability and associated sample sizes than of actual evidence for a given prospect over the other.
### Cumulative Prospect Theory
In the following, we examine the possible relations between the parameters of the *choice-generating* sampling models and the *choice-describing* cumulative prospect theory.
For each distinct strategy-parameter combination, we ran 20 chains of 40,000 iterations each, after a warm-up period of 1000 samples.
To reduce potential autocorrelation during the sampling process, we only kept every 20th sample (thinning).
```{r}
# read CPT data
cols <- list(.default = col_double(),
strategy = col_factor(),
boundary = col_factor(),
parameter = col_factor())
estimates <- read_csv("data/estimates/estimates_cpt_pooled.csv", col_types = cols)
```
#### Convergence
```{r}
gel_92 <- max(estimates$Rhat) # get largest scale reduction factor (Gelman & Rubin, 1992)
```
The potential scale reduction factor $\hat{R}$ was $n \leq$ `r round(gel_92, 3)` for all estimates, indicating good convergence.
#### Piecewise Integration
```{r}
# generate subset of all strategy-parameter combinations (rows) and their parameters (columns)
curves_cpt <- estimates %>%
select(strategy, s, boundary, a, parameter, mean) %>%
pivot_wider(names_from = parameter, values_from = mean)
```
##### Weighting function w(p)
We start by plotting the weighting curves for all parameter combinations under piecewise integration.
```{r}
cpt_curves_piecewise <- curves_cpt %>%
filter(strategy == "piecewise") %>%
expand_grid(p = seq(0, 1, .1)) %>% # add vector of objective probabilities
mutate(w = round(exp(-delta*(-log(p))^gamma), 2)) # compute decision weights (cf. Prelec, 1998)
# all strategy-parameter combinations
cpt_curves_piecewise %>%
ggplot(aes(p, w)) +
geom_path(size = .5) +
geom_abline(intercept = 0, slope = 1, color = "red", size = 1) +
labs(title = "Piecewise Integration: Weighting functions",
x = "p",
y= "w(p)") +
theme_minimal()
```
```{r}
cpt_curves_piecewise %>%
ggplot(aes(p, w)) +
geom_path() +
geom_abline(intercept = 0, slope = 1, color = "red", size = 1) +
facet_wrap(~a) +
labs(title = "Piecewise Integration: Weighting functions",
x = "p",
y= "w(p)",
color = "Switching Probability") +
scale_color_viridis() +
theme_minimal()
```
```{r}
cpt_curves_piecewise %>%
ggplot(aes(p, w, color = s)) +
geom_path() +
geom_abline(intercept = 0, slope = 1, color = "red", size = 1) +
labs(title = "Piecewise Integration: Weighting functions",
x = "p",
y= "w(p)",
color = "Switching Probability") +
scale_color_viridis() +
theme_minimal()
```
```{r}
cpt_curves_piecewise %>%
ggplot(aes(p, w, color = s)) +
geom_path() +
geom_abline(intercept = 0, slope = 1, color = "red", size = 1) +
facet_wrap(~a) +
labs(title = "Piecewise Integration: Weighting functions",
x = "p",
y= "w(p)",
color = "Switching Probability") +
scale_color_viridis() +
theme_minimal()
```
##### Value function v(x)
```{r}
cpt_curves_piecewise <- curves_cpt %>%
filter(strategy == "piecewise") %>%
expand_grid(x = seq(0, 20, 2)) %>% # add vector of objective outcomes
mutate(v = round(x^alpha, 2)) # compute decision weights (cf. Prelec, 1998)
# all strategy-parameter combinations
cpt_curves_piecewise %>%
ggplot(aes(x, v)) +
geom_path(size = .5) +
geom_abline(intercept = 0, slope = 1, color = "red", size = 1) +
labs(title = "Piecewise Integration: Value functions",
x = "p",
y= "w(p)") +
theme_minimal()
```
```{r}
cpt_curves_piecewise %>%
ggplot(aes(x, v, color = s)) +
geom_path(size = .5) +
geom_abline(intercept = 0, slope = 1, color = "red", size = 1) +
labs(title = "Piecewise Integration: Value functions",
x = "p",
y= "w(p)") +
scale_color_viridis() +
theme_minimal()
```
```{r}
cpt_curves_piecewise %>%
ggplot(aes(x, v, color = s)) +
geom_path(size = .5) +
geom_abline(intercept = 0, slope = 1, color = "red", size = 1) +
facet_wrap(~a) +
labs(title = "Piecewise Integration: Value functions",
x = "p",
y= "w(p)") +
scale_color_viridis() +
theme_minimal()
```
#### Comprehensive Integration
##### Weighting function w(p)
We start by plotting the weighting curves for all parameter combinations under piecewise integration.
```{r}
cpt_curves_comprehensive <- curves_cpt %>%
filter(strategy == "comprehensive") %>%
expand_grid(p = seq(0, 1, .1)) %>% # add vector of objective probabilities
mutate(w = round(exp(-delta*(-log(p))^gamma), 2)) # compute decision weights (cf. Prelec, 1998)
# all strategy-parameter combinations
cpt_curves_comprehensive %>%
ggplot(aes(p, w)) +
geom_path(size = .5) +
geom_abline(intercept = 0, slope = 1, color = "red", size = 1) +
labs(title = "Comprehensive Integration: Weighting functions",
x = "p",
y= "w(p)") +
theme_minimal()
```
```{r}
cpt_curves_comprehensive %>%
ggplot(aes(p, w)) +
geom_path(size = .5) +
geom_abline(intercept = 0, slope = 1, color = "red", size = 1) +
labs(title = "Comprehensive Integration: Weighting functions",
x = "p",
y= "w(p)") +
facet_wrap(~a) +
theme_minimal()
```
```{r}
cpt_curves_comprehensive %>%
ggplot(aes(p, w, color = s)) +
geom_path() +
geom_abline(intercept = 0, slope = 1, color = "red", size = 1) +
labs(title = "Comprehensive Integration: Weighting functions",
x = "p",
y= "w(p)",
color = "Switching Probability") +
scale_color_viridis() +
theme_minimal()
```
```{r}
cpt_curves_comprehensive %>%
ggplot(aes(p, w, color = s)) +
geom_path() +
geom_abline(intercept = 0, slope = 1, color = "red", size = 1) +
facet_wrap(~a) +
labs(title = "Comprehensive Integration: Weighting functions",
x = "p",
y= "w(p)",
color = "Switching Probability") +
scale_color_viridis() +
theme_minimal()
```
```{r}
cpt_curves_comprehensive %>%
filter(s >= .7) %>%
ggplot(aes(p, w, color = s)) +
geom_path() +
geom_abline(intercept = 0, slope = 1, color = "red", size = 1) +
facet_wrap(~a) +
labs(title = "Comprehensive Integration: Weighting functions",
x = "p",
y= "w(p)",
color = "Switching Probability") +
scale_color_viridis() +
theme_minimal()
```
##### Value function v(x)
```{r}
cpt_curves_comprehensive <- curves_cpt %>%
filter(strategy == "comprehensive") %>%
expand_grid(x = seq(0, 20, 2)) %>% # add vector of objective outcomes
mutate(v = round(x^alpha, 2)) # compute decision weights (cf. Prelec, 1998)
# all strategy-parameter combinations
cpt_curves_comprehensive %>%
ggplot(aes(x, v)) +
geom_path(size = .5) +
geom_abline(intercept = 0, slope = 1, color = "red", size = 1) +
labs(title = "Comprehensive Integration: Value functions",
x = "p",
y= "w(p)") +
theme_minimal()
```
```{r}
cpt_curves_comprehensive %>%
ggplot(aes(x, v)) +
geom_path(size = .5) +
geom_abline(intercept = 0, slope = 1, color = "red", size = 1) +
facet_wrap(~a) +
labs(title = "Comprehensive Integration: Value functions",
x = "p",
y= "w(p)") +
theme_minimal()
```
```{r}
cpt_curves_comprehensive %>%
ggplot(aes(x, v, color = s)) +
geom_path(size = .5) +
geom_abline(intercept = 0, slope = 1, color = "red", size = 1) +
labs(title = "Comprehensive Integration: Value functions",
x = "p",
y= "w(p)") +
scale_color_viridis() +
theme_minimal()
```
```{r}
cpt_curves_comprehensive %>%
ggplot(aes(x, v, color = s)) +
geom_path(size = .5) +
geom_abline(intercept = 0, slope = 1, color = "red", size = 1) +
facet_wrap(~a) +
labs(title = "Comprehensive Integration: Value functions",
x = "p",
y= "w(p)") +
scale_color_viridis() +
theme_minimal()
```
# Discussion
# Conclusion
# Appendix
Let $X_n$ and $Y_m$ be independent and discrete random variables of the sequences
$$\begin{equation}
X_1, ..., X_n, ..., X_{N_X}
\end{equation}$$
and
$$\begin{equation}
Y_1, ..., Y_m, ..., Y_{N_Y} \; .
\end{equation}$$
Then
$$\begin{equation}
P\left(\frac{\overline{X}_{N_X}}{\overline{Y}_{N_Y}} > 0 \right) =
P\left(\frac{\frac{1}{N_X}\sum\limits_{n=1}^{N_X} (X(\omega_i) = A'_X \in \mathscr{F'}_X)_n}
{\frac{1}{N_Y}\sum\limits_{m=1}^{N_Y} (Y(\omega_j) = A'_Y \in \mathscr{F'}_Y)_m} > 0 \right)
\end{equation}$$
is the probability that the quotient of the mean of both sequences takes on a value larger $0$.
Given the sample sizes $N_X = N_Y = 1$, the equation reduces to
$$\begin{equation}
P\left(\frac{X(\omega_i \in \Omega_X) = A'_X \in \mathscr{F'}_X}{Y(\omega_j \in \Omega_Y) = A'_Y \in \mathscr{F'}_Y} > 0 \right) \; ,
\end{equation}$$
which is the sum across all joint probabilities $p(\omega_i \cap \omega_j)$ for which the above inequation holds:.
$$\begin{equation}
D:=
f
\left(
\frac{\overline{X}_{N_X}} {\overline{Y}_{N_Y}}
\right)
=
\begin{cases}
1 & \text{if} & \frac{\overline{X}_{N_X}}{\overline{Y}_{N_Y}} > 0 \in \mathscr{D} \\
0 & \text{else}.
\end{cases}
\end{equation}$$
# References