From 413aa2fd2661a504b9a83a63eab4f731ad95ee1c Mon Sep 17 00:00:00 2001 From: Rausch Date: Tue, 15 Oct 2024 21:14:44 +0200 Subject: [PATCH] updated readme --- README.md | 63 ++++++++++-------- README.rmd | 20 ++++-- README_files/figure-gfm/unnamed-chunk-5-1.png | Bin 9356 -> 8490 bytes 3 files changed, 48 insertions(+), 35 deletions(-) diff --git a/README.md b/README.md index 524b970..6aedc96 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ The `statConfR` package provides functions to fit static models of decision-making and confidence derived from signal detection theory for -binary discrimination tasks, meta-d′/d′, a wide-spread measure of +binary discrimination tasks, meta-d′/d′, the most prominent measure of metacognitive efficiency, meta-I, an information-theoretic measures of metacognitive sensitivity, as well as $`meta-I_{1}^{r}`$ and $`meta-I_{2}^{r}`$, two information-theoretic measures of metacognitive @@ -210,28 +210,31 @@ quantities of information theory. - Meta-I is a measure of metacognitive sensitivity defined as the mutual information between the confidence and accuracy and is calculated as the transmitted information minus the minimal information given the - accuracy, - ``` math - meta-I = I(Y; \hat{Y}, C) - I(Y; \hat{Y}). - ``` - This is equivalent to Dayan’s formulation where meta-I is the - information that confidences transmit about the correctness of a - response: - ``` math - meta-I = I(Y = \hat{Y}; C) - ``` -- Meta-$`I_{1}^{r}`$ is meta-I normalized by the value of meta-I - expected assuming a signal detection model (Green & Swets, 1966) with - Gaussian noise, based on calculating the sensitivity index d’: - ``` math - meta-I_{1}^{r} = meta-I / meta-I(d') - ``` -- Meta-$`I_{2}^{r}`$ is meta-I normalized by its theoretical upper - bound, which is the information entropy of accuracy, - $`H(Y = \hat{Y})`$: - ``` math - meta-I_{2}^{r} = meta-I / H(Y = \hat{Y}) - ``` + accuracy: + +``` math +meta-I = I(Y; \hat{Y}, C) - I(Y; \hat{Y}) +``` +This is equivalent to Dayan’s formulation where meta-I is the +information that confidences transmit about the correctness of a +response: + +``` math +meta-I = I(Y = \hat{Y}; C) +``` + - Meta-$`I_{1}^{r}`$ is meta-I normalized by the value of meta-I +expected assuming a signal detection model (Green & Swets, 1966) with +Gaussian noise, based on calculating the sensitivity index d’: + +``` math +meta-I_{1}^{r} = meta-I / meta-I(d') +``` + - Meta-$`I_{2}^{r}`$ is meta-I normalized by its theoretical upper +bound, which is the information entropy of accuracy, $`H(Y = \hat{Y})`$: + +``` math +meta-I_{2}^{r} = meta-I / H(Y = \hat{Y}) +``` Notably, Dayan (2023) pointed out that a liberal or conservative use of the confidence levels will affected the mutual information and thus all @@ -410,7 +413,8 @@ PlotMeans <- aes(ymin = ratings-se, ymax = ratings+se), color="black") + geom_point(data = AggregatedData, aes(shape=correct), color="black") + scale_shape_manual(values = c(15, 16), - labels = c("Error", "Correct response"), name = "observed data") + labels = c("Error", "Correct response"), name = "observed data") + + theme_bw() ``` @@ -463,12 +467,13 @@ r <- factor(ifelse(OneSbj$response == 0, -1, 1) * as.numeric(OneSbj$rating)) counts <- table(y, r) ``` -Then, the different information-theoretic measures of metacognitive -sensitivity and accuracy can be computed: +Then, the different information-theoretic measures of metacognition can +be computed: ``` r +meta_I <- estimate_meta_I(counts) meta_Ir1 <- estimate_meta_Ir1(counts) -meta_Ir1 <- estimate_meta_Ir1(counts) +meta_Ir1_acc <- estimate_meta_Ir1_acc(counts) meta_Ir2 <- estimate_meta_Ir2(counts) RMI <- estimate_RMI(counts) ``` @@ -476,7 +481,7 @@ RMI <- estimate_RMI(counts) ### Documentation The documentation of each function of the currently installed version of -`statConfR` can be accessed by typing ?*functionname* into the console. +`statConfR` can be accessed by typing *?functionname* into the console. ## Contributing to the package @@ -531,6 +536,8 @@ issue](https://github.com/ManuelRausch/StatConfR/issues). ## References +- Dayan, P. (2023). Metacognitive Information Theory. Open Mind, 7, + 392–411. - Fleming, S. M. (2017). HMeta-d: Hierarchical Bayesian estimation of metacognitive efficiency from confidence ratings. Neuroscience of Consciousness, 1, 1–14. diff --git a/README.rmd b/README.rmd index 9c85c05..4012309 100644 --- a/README.rmd +++ b/README.rmd @@ -20,7 +20,7 @@ gitbranch <- "main/" The `statConfR` package provides functions to fit static models of decision-making and confidence derived from signal detection theory for -binary discrimination tasks, meta-d′/d′, a wide-spread measure of metacognitive efficiency, +binary discrimination tasks, meta-d′/d′, the most prominent measure of metacognitive efficiency, meta-I, an information-theoretic measures of metacognitive sensitivity, as well as $meta-I_{1}^{r}$ and $meta-I_{2}^{r}$, two information-theoretic measures of metacognitive efficiency. @@ -165,14 +165,18 @@ because both are measured on the same scale. Meta-d′ can be compared against t Dayan (2023) proposed several measures of metacognition based on quantities of information theory. -- Meta-I is a measure of metacognitive sensitivity defined as the mutual information between the confidence and accuracy and is calculated as the transmitted information minus the minimal information given the accuracy, -$$meta-I = I(Y; \hat{Y}, C) - I(Y; \hat{Y}).$$ +- Meta-I is a measure of metacognitive sensitivity defined as the mutual information between the confidence and accuracy and is calculated as the transmitted information minus the minimal information given the accuracy: + +$$meta-I = I(Y; \hat{Y}, C) - I(Y; \hat{Y})$$ This is equivalent to Dayan's formulation where meta-I is the information that confidences transmit about the correctness of a response: + $$meta-I = I(Y = \hat{Y}; C)$$ - Meta-$I_{1}^{r}$ is meta-I normalized by the value of meta-I expected assuming a signal detection model (Green & Swets, 1966) with Gaussian noise, based on calculating the sensitivity index d': + $$meta-I_{1}^{r} = meta-I / meta-I(d')$$ - Meta-$I_{2}^{r}$ is meta-I normalized by its theoretical upper bound, which is the information entropy of accuracy, $H(Y = \hat{Y})$: + $$meta-I_{2}^{r} = meta-I / H(Y = \hat{Y})$$ Notably, Dayan (2023) pointed out that a liberal or conservative use of the confidence levels will affected the mutual information and thus all information-theoretic measures of metacognition. @@ -289,7 +293,8 @@ PlotMeans <- aes(ymin = ratings-se, ymax = ratings+se), color="black") + geom_point(data = AggregatedData, aes(shape=correct), color="black") + scale_shape_manual(values = c(15, 16), - labels = c("Error", "Correct response"), name = "observed data") + labels = c("Error", "Correct response"), name = "observed data") + + theme_bw() ``` @@ -320,18 +325,19 @@ r <- factor(ifelse(OneSbj$response == 0, -1, 1) * as.numeric(OneSbj$rating)) counts <- table(y, r) ``` -Then, the different information-theoretic measures of metacognitive sensitivity and accuracy can be computed: +Then, the different information-theoretic measures of metacognition can be computed: ```{r} +meta_I <- estimate_meta_I(counts) meta_Ir1 <- estimate_meta_Ir1(counts) -meta_Ir1 <- estimate_meta_Ir1(counts) +meta_Ir1_acc <- estimate_meta_Ir1_acc(counts) meta_Ir2 <- estimate_meta_Ir2(counts) RMI <- estimate_RMI(counts) ``` ### Documentation -The documentation of each function of the currently installed version of `statConfR` can be accessed by typing ?*functionname* into the console. +The documentation of each function of the currently installed version of `statConfR` can be accessed by typing *?functionname* into the console. ## Contributing to the package The package is under active development. We are planning to implement new models of decision confidence when they are published. Please feel free to [contact us](malto::manuel.rausch@ku.de) to suggest new models to implement in in the package, or to volunteer adding additional models. diff --git a/README_files/figure-gfm/unnamed-chunk-5-1.png b/README_files/figure-gfm/unnamed-chunk-5-1.png index 8cca74a06028a22caaefb07b567846da68268223..03c60efd776e794492f54f343bac2035d234803d 100644 GIT binary patch literal 8490 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