Code
library(tidyverse)
library(easystats)
library(patchwork)
Study 2
library(tidyverse)
library(easystats)
library(patchwork)
library(gt)
# APA style ####
<- function(gt_table, font.size=12) {
gt_apastyle |>
gt_table ::opt_table_lines(extent = "none") %>%
gt::tab_options(
gtheading.border.bottom.width = 2,
heading.border.bottom.color = "black",
heading.border.bottom.style = "solid",
table.border.top.color = "black",
table.border.top.style = "solid",
table.border.top.width = 2,
table_body.hlines.color = "white",
table_body.border.top.color = "black",
table_body.border.top.style = "solid",
table_body.border.top.width = 2,
heading.title.font.size = font.size,
table.font.size = font.size,
heading.subtitle.font.size = font.size,
table_body.border.bottom.color = "black",
table_body.border.bottom.width = 2,
table_body.border.bottom.style = "solid",
column_labels.border.bottom.color = "black",
column_labels.border.bottom.style = "solid",
column_labels.border.bottom.width = 1,
latex.use_longtable = FALSE
|>
) ::opt_table_font(font = "times")
gt
}
<- data.frame(
table Questionnaire = c(
# Interoception
"Interoceptive Related", "MAIA-2", "BPQ-SF", "BPQ-VSF", "ICQ", "TAS-20", "BVAQ",
# Mood/Anxiety
"Mood", "BDI-II", "PHQ-4", "PHQ-9", "PHQ-15", "MFQ", "STAI-T", "GAD-7",
# Personality
"Personality", "NEO-FFI (neuroticism subscale)", "Mini IPIP6", "BFI-S",
# Psychopathology
"Psychopathology", "PID-5-SFF", "SPQ-BR", "MSI-BPD", "ASQ - Short",
# Beliefs and Misbeliefs
"Beliefs and Misbeliefs", "GCBS", "PI-18", "LIE scale"
),Number_of_Dimensions = c(
"", 8, 2, 1, 3, 3, 5,
"", 2, 2, 1, 1, 1, 1, 1,
"", 1, 6, 5,
"", 5, 9, 1, 5,
"", 5, 3, 4
),Assessment = c(
"", "Interoceptive awareness", "Body awareness and autonomic reactivity", "Body awareness", "Interoceptive confusion", "Alexithymia", "Alexithymia",
"", "Depressive symptoms severity", "Depression and Anxiety", "Depressive symptoms", "Somatic symptom distress", "Mood and affect", "Trait anxiety", "General anxiety disorder symptoms",
"", "Neuroticism", "Personality traits", "Personality traits",
"", "Maladaptive personality traits", "Schizotypy", "Borderline personality disorder", "Autistic traits",
"", "Conspiracy beliefs", "Primal world beliefs", "Lying tendencies"
),Number_of_Items = c(
"", 37, 46, 12, 20, 20, 40,
"", 21, 4, 9, 15, 13, 20, 7,
"", 12, 24, 10,
"", 25, 32, 9, 28,
"", 15, 18, 16
),Scoring = c(
"", "6-point Likert scale", "5-point Likert scale", "5-point Likert scale", "5-point Likert scale", "5-point Likert scale", "5-point Likert scale",
"", "4-point scale", "4-point Likert scale", "4-point Likert scale", "3-point scale", "3-point scale", "4-point Likert scale", "4-point Likert scale",
"", "5-point Likert scale", "Visual analogue scales", "7-point Likert scale",
"", "4-point Likert scale", "5-point Likert scale", "Dichotomous (yes/no)", "4-point Likert scale",
"", "5-point Likert scale", "5-point Likert scale", "Visual analogue scales"
),Example_Items = c(
# Interoception
"", "I notice when I am uncomfortable in my body", "My heart often beats irregularily", "My mouth being dry", " I cannot tell when my muscles are sore or tight", "I have feelings I can't quite identify", "I like to tell others how I feel",
#Mood
"", "I feel sad much of the time","Little interest or pleasure in doing things", "Feeling tired or having little energy?", "Over the last week, how often have you been bothered by back pain?", "I felt miserable or unhappy", "I worry too much about something that really doesn't matter", "Not being able to stop or control worrying",
# Personality
"", "I often feel inferior to others", "Am the life of the party", "I see myself as someone who ...is considerate and kind to almost everyone",
# Psychopathology
"", "Plenty of people are out to get me", "I am an odd, unusual person", "Have any of your closest relationships been troubled by a lot of arguments or repeated breakups?", "I find it difficult to work out people’s intentions",
# Beliefs and Misbeliefs
"", "Secret organizations communicate with extraterrestrials, but keep this fact from the public", "Nearly everything in the world is beautiful", "I am a good liar"
),stringsAsFactors = FALSE
)
<- table |>
table_apa gt() |>
cols_align(align = c("right"), columns = "Scoring") |>
cols_label(Number_of_Dimensions = "Number of Dimensions", Number_of_Items = "Number of Items", Example_Items = "Example Items") |>
# tab_footnote("* Information taken from the sample description of relevant paper rather than recomputed.")
tab_style( style = list(cell_text(weight = "bold")), locations = cells_body(columns = Questionnaire, rows = Questionnaire %in% c("Interoceptive Related", "Mood", "Personality", "Psychopathology", "Beliefs and Misbeliefs")))
gt_apastyle(table_apa, font.size=12)
gtsave(gt_apastyle(table_apa, font.size=9), "figures/table2.tex")
saveRDS(table, "figures/table2.rds")
load("../data/data.RData")
load("../data/scores.RData")
<- cbind(data$df1a, scores$sample1a)
df1a <- cbind(data$df1b, scores$sample1b)
df1b <- cbind(data$df2, scores$sample2)
df2 <- cbind(data$df3, scores$sample3)
df3 <- cbind(data$df4, scores$sample4)
df4 <- cbind(data$df5, scores$sample5)
df5 <- cbind(data$df6, scores$sample6)
df6 <- cbind(data$df7a, scores$sample7a)
df7a <- cbind(data$df7b, scores$sample7b)
df7b <- cbind(data$df7c, scores$sample7c)
df7c <- cbind(data$df8a, scores$sample8a)
df8a <- cbind(data$df8b, scores$sample8b)
df8b <- cbind(data$df9, scores$sample9)
df9 <- cbind(data$df10, scores$sample10)
df10 <- cbind(data$df11, scores$sample11)
df11 <- cbind(data$df12, scores$sample12)
df12 <- cbind(data$df13, scores$sample13)
df13 <- cbind(data$df14, scores$sample14)
df14 <- cbind(data$df15, scores$sample15)
df15 <- cbind(data$df16, scores$sample16)
df16
<- names(select(scores$sample1a, -Sample))
vars_intero
# names(df1a)
# names(df1b)
# names(df2) #TAS(20 items), MAIA(37 items), ICQ (20 items), BPQ(46 items), BVAQ (40 items)
# names(df3) # TAS (20), BPQ (46)
# names(df4) # BPQ(26), PBCS (private bodily consciousness?), MAIA (37), BAQ (18), BRS (4)
# names(df5)
# names(df6) # PHQ2 (2 items), GAD2 (2 items), SSS8, IATS
# names(df7a) # STAIT (20), MAIA(37), CES (not reported in the paper), FFMQ (39), NEOFFI (12)
# names(df7b) # BPQ (12), PHQ15 (15), PHQ9 (9), MAIA (37), STAIT(20),
# names(df7c) # CI01 (not reported in the paper), TAS, BPQ, MAIA, ASI, ICQ - no individual items
# names(df8a) # EDI (10), BPQ (12)
# names(df8b) # PHQ9 (9), PHQ15 (15), TAS (20)
# names(df9) # ECR (Experience in Close Relationship Scale), TEAQ (touch experiences and attitudes questionnaire), STQ, TACSEN, UCLA, BFI (15), DBIA, BO, EQ
# names(df10) # ASQ(28), BPD(9), GCBS (15), IPIP6 (24), LIE (16), MAIA(37), PHQ4 (4), PI (32), PID (25), SPQ (32)
# names(df11) # PHQ4 (4), STAIT5 (5), BDI (21), MAIA (37)
# names(df12) # MAIA (37), PI (99),
# names(df13) # PI (18), MAIA (37)
# names(df14) # MAIA(37), TAS (20), MFQ(DEP, 13), STAI(ANX, 20)
# names(df15)
# names(df16) # MAIA (37), GAD (7), PHQ9 (9)
<- function(with = "Age", component = "Demographic", name = with, unequalrange=FALSE) {
pool_coef <- data.frame()
rez for(intero in vars_intero) {
<- data.frame()
data for(dataset in list(df1a, df1b, df2, df3, df4,
df5, df6, df7a, df7b, df7c,
df8a, df8b, df9, df10, df11,
df12, df14, df15, df16)) {if (with %in% names(dataset)) {
<- dataset[c(with, intero, "Sample")]
d <- rbind(data, d)
data
}
}
# Make sure that min-max of "with" is the equal across all samples
<- summarize(data,
check min = min(!!sym(with), na.rm = TRUE),
max = max(!!sym(with), na.rm = TRUE), .by = "Sample")
if (with != "Gender" && (any(check$min != min(check$min)) || any(check$max != max(check$max)))) {
if(unequalrange == FALSE) {
print(check)
stop(paste0("The range of '", with, "' is not equal across samples."))
}
}
<- standardize(data[complete.cases(data), ])
data
if (with == "Gender") {
<- data[data$Gender != "Other",]
data $Gender <- factor(data$Gender, levels = c("Male", "Female"))
data<- as.formula(paste0(intero, "~", with, " + (", with, "|Sample)"))
f <- as.formula(paste0(intero, "~", with, " + (1|Sample)"))
f2 else {
} <- as.formula(paste0(intero, "~", with, " + (", with, "|Sample)"))
f <- as.formula(paste0(intero, "~", with, " + (1|Sample)"))
f2
}
# if(length(unique(data$Sample)) == 1)
<- glmmTMB::glmmTMB(f, data = data)
m <- "Full"
type if(!insight::is_converged(m)) {
<- glmmTMB::glmmTMB(f2, data = data)
m <- "Reduced"
type
}<- parameters::parameters(m)[2, ] |>
out select(r = Coefficient, CI_low, CI_high, p) |>
as.data.frame()
$var_Interoception <- intero
out$var_Correlate <- with
out$Component <- component
out$Type <- type
out$Converged <- insight::is_converged(m)
out$N <- nrow(data)
out<- rbind(rez, out)
rez
}$var_Correlate <- name
rez
rez
}
<- pool_coef(with = "Gender", component = "Demographic", name = "Gender (Female - Male)") data
<- rbind(data, pool_coef(with = "Age", component = "Demographic", unequalrange=TRUE)) data
# names(df2)[str_detect(names(df2), "MAIA")]
# names(df4)[str_detect(names(df4), "MAIA")] # individual items
# names(df7a)[str_detect(names(df7a), "MAIA")]
# names(df7b)[str_detect(names(df7b), "maia")]
# names(df7c)[str_detect(names(df7c), "MAIA")]
# names(df10)[str_detect(names(df10), "MAIA")]
# names(df11)[str_detect(names(df11), "MAIA2")] # all columns with NA values
# names(df12)[str_detect(names(df12), "MAIA")]
# names(df14)[str_detect(names(df15), "MAIA")]
<- rbind(
data
data,pool_coef(with = "MAIA_AttentionReg", component = "MAIA", name = "Attention Regulation", unequalrange=TRUE),
pool_coef(with = "MAIA_BodyListening", component = "MAIA", name = "Listening", unequalrange=TRUE),
pool_coef(with = "MAIA_Trusting", component = "MAIA", name = "Trusting", unequalrange=TRUE),
pool_coef(with = "MAIA_EmoAwareness", component = "MAIA", name = "Emotional Awareness", unequalrange=TRUE),
pool_coef(with = "MAIA_NotDistracting", component = "MAIA", name = "Not Distracting", unequalrange=TRUE),
pool_coef(with = "MAIA_Noticing", component = "MAIA", name = "Noticing", unequalrange=TRUE),
pool_coef(with = "MAIA_NotWorrying", component = "MAIA", name = "Not Worrying", unequalrange=TRUE),
pool_coef(with = "MAIA_SelfReg", component = "MAIA", name = "Self Regulation", unequalrange=TRUE)
)
# names(df2)[str_detect(names(df2), "ICQ")]
# names(df7c)[str_detect(names(df7c), "ICQ")]
<- rbind(data, pool_coef(with = "ICQ", component="Alexithymia", name = "ICQ", unequalrange=TRUE)) data
# df3$BPQ_BodyAwareness <- -1*normalize(df3$BPQ_BodyAwareness)
# df3$BPQ_AutonomicReactivity <- -1*normalize(df3$BPQ_AutonomicReactivity)
# names(df2)[str_detect(names(df2), "BPQ")] # BPQ_R_Supra and _Sub?
# names(df3)[str_detect(names(df3), "BPQ")]
# names(df4)[str_detect(names(df4), "BPQ")] # individual items 1-26
# names(df7b)[str_detect(names(df7b), "BPQ")] # BPQ sum
# names(df8a)[str_detect(names(df8a), "BPQ")] # individual items
<- rbind(
data
data,pool_coef(with = "BPQ_BodyAwareness", component="BPQ", name = "Body Awareness (BPQ)",unequalrange=TRUE),
pool_coef(with = "BPQ_AutonomicReactivity", component="BPQ", name = "Autonomic Reactivity (BPQ)",unequalrange=TRUE)
)
# only one study assess alexithymia with BVAQ (df2)
# names(df2)[str_detect(names(df2), "TAS", "BVAQ)]
# names(df3)[str_starts(names(df3), "TAS")]
# names(df7c)[str_starts(names(df7c), "TAS")]
# names(df8b)[str_starts(names(df8b), "TAS")]
# names(df14)[str_starts(names(df14), "TAS")]
<- rbind(
data
data,pool_coef(with = "TAS_DIF", component="Alexithymia", name = "Difficulties Identifying Feelings (TAS)", unequalrange=TRUE),
pool_coef(with = "TAS_DDF", component="Alexithymia", name = "Difficulties Describing Feelings (TAS)", unequalrange=TRUE),
pool_coef(with = "TAS_EOT", component="Alexithymia", name = "External Thinking (TAS)",unequalrange=TRUE),
pool_coef(with = "BVAQ_Affective", component="Alexithymia", name = "Affective (BVAQ)"),
pool_coef(with = "BVAQ_Cognitive", component="Alexithymia", name = "Cognitive (BVAQ)")
)
# names(df6)[str_detect(names(df6), "PHQ")]
# names(df7b)[str_detect(names(df7b), "PHQ")]
# names(df7c)[str_detect(names(df7c), "BDI")]
# names(df8b)[str_detect(names(df8b), "PHQ")]
# names(df9)
# names(df14)
<- rbind(
data
data,pool_coef(with = "PHQ15_Sum", component="Mood", name = "Somatic Concerns (PHQ-15)",unequalrange=TRUE),
pool_coef(with = "PHQ9_Sum", component="Mood", name = "Depression (PHQ-9)",unequalrange=TRUE),
pool_coef(with = "BDI_Sum", component="Mood", name = "Depression (BDI)"),
pool_coef(with = "PHQ4_Depression", component="Mood", name = "Depression (PHQ-4)"),
pool_coef(with = "DEP", component = "Mood", name = "Depression (MFQ)")
)
# names(df6)[str_detect(names(df6), "GAD")]
# names(df7a)[str_detect(names(df7a), "STAI")]
# names(df7b)[str_detect(names(df7b), "STAI")]
# names(df7c)[str_detect(names(df7c), "STAI")]
# names(df10)[]
# names(df11)[str_detect(names(df11), "STAI")]
# names(df14)[str_detect(names(df14), "ANX")] # anx = stai-t
<- rbind(
data
data,pool_coef(with = "STAIT_Mean", component="Mood", name = "Anxiety (STAI-T)",unequalrange=TRUE),
pool_coef(with = "PHQ4_Anxiety", component="Mood", name = "Anxiety (PHQ-4)"),
pool_coef(with = "GAD7_Sum", component="Mood", name = "Anxiety (GAD-7)")
)
<- rbind(
data
data,pool_coef(with = "BPD", component="Mood", name = "Boderline Personality")
)
<- rbind(
data
data,pool_coef(with = "PID5_Antagonism", component="Maladaptive", name = "Antagonism"),
pool_coef(with = "PID5_Detachment", component="Maladaptive", name = "Detachment"),
pool_coef(with = "PID5_Disinhibition", component="Maladaptive", name = "Disinhibition"),
pool_coef(with = "PID5_NegativeAffect", component="Maladaptive", name = "Negative Affect"),
pool_coef(with = "PID5_Psychoticism", component="Maladaptive", name = "Psychoticism")
)
<- rbind(
data
data,pool_coef(with = "SPQ_ConstrictedAffect", component="Schizotypic", name = "Constricted Affect"),
pool_coef(with = "SPQ_Eccentric", component="Schizotypic", name = "Eccentric"),
pool_coef(with = "SPQ_MagicalThinking", component="Schizotypic", name = "Magical Thinking"),
pool_coef(with = "SPQ_NoCloseFriends", component="Schizotypic", name = "No Close Friends"),
pool_coef(with = "SPQ_OddSpeech", component="Schizotypic", name = "Odd Speech"),
pool_coef(with = "SPQ_Reference", component="Schizotypic", name = "Reference"),
pool_coef(with = "SPQ_SocialAnxiety", component="Schizotypic", name = "Social Anxiety"),
pool_coef(with = "SPQ_Suspiciousness", component="Schizotypic", name = "Suspiciousness"),
pool_coef(with = "SPQ_UnusualPerceptions", component="Schizotypic", name = "Unusual Perceptions")
)
# names(select(df10, starts_with("ASQ")))
<- rbind(
data
data,pool_coef(with = "ASQ_Imagination", component="Autistic", name = "Imagination"),
pool_coef(with = "ASQ_LackSocialSkills", component="Autistic", name = "Lack of Social Skills"),
pool_coef(with = "ASQ_LowAttentionalSwitching", component="Autistic", name = "Low Attentional Switching"),
pool_coef(with = "ASQ_Patterns", component="Autistic", name = "Patterns and Numbers"),
pool_coef(with = "ASQ_Routine", component="Autistic", name = "Routines")
)
# names(df7a)[str_detect(names(df7a), "NEO")]
# names(df9)[str_detect(names(df9), "BFI_")]
# names(df10)[str_detect(names(df10), "IPIP6_")]
<- rbind(
data
data,pool_coef(with = "Neuroticism", component = "Personality", name = "Neuroticism",unequalrange=TRUE),
pool_coef(with = "Agreeableness", component="Personality", name = "Agreeableness",unequalrange=TRUE),
pool_coef(with = "Conscientiousness", component="Personality", name = "Conscientiousness",unequalrange=TRUE),
pool_coef(with = "Openness", component="Personality", name = "Openness",unequalrange=TRUE),
pool_coef(with = "Extraversion", component="Personality", name = "Extraversion", unequalrange=TRUE),
pool_coef(with = "HonestyHumility", component="Personality", name = "Honesty-Humility",unequalrange=TRUE)
)
# names(df10)[str_detect(names(df10), "PI_Alive")]
# names(df12)[str_detect(names(df12), "PI_Alive")]
# names(df13)[str_detect(names(df13), "PI_Alive")]
# data <- rbind(
# data,
# pool_coef(with = "PI_Alive", component="World Beliefs", name = "Alive", unequalrange=TRUE))
<- rbind(
data
data,pool_coef(with = "PI_Alive", component="World Beliefs", name = "Alive", unequalrange=TRUE),
pool_coef(with = "PI_Changing", component="World Beliefs", name = "Changing", unequalrange=TRUE),
pool_coef(with = "PI_Enticing", component="World Beliefs", name = "Enticing", unequalrange=TRUE),
pool_coef(with = "PI_Good", component="World Beliefs", name = "Good", unequalrange=TRUE),
pool_coef(with = "PI_Hierarchical", component="World Beliefs", name = "Hierarchical", unequalrange=TRUE),
pool_coef(with = "PI_Safe", component="World Beliefs", name = "Safe",unequalrange=TRUE),
pool_coef(with = "PI_Understandable", component="World Beliefs", name = "Understandable",unequalrange=TRUE)
)
<- rbind(
data
data,pool_coef(with = "GCBS_Extraterrestrial", component="Conspiracy Beliefs", name = "Extraterrestrial"),
pool_coef(with = "GCBS_GlobalConspiracies", component="Conspiracy Beliefs", name = "Global Conspiracies"),
pool_coef(with = "GCBS_GovernmentMalfeasance", component="Conspiracy Beliefs", name = "Government Malfeasance"),
pool_coef(with = "GCBS_InformationControl", component="Conspiracy Beliefs", name = "Information Control"),
pool_coef(with = "GCBS_PersonalWellbeing", component="Conspiracy Beliefs", name = "Personal Wellbeing")
)
<- rbind(
data
data,pool_coef(with = "LIE_Ability", component="Lying Profile", name = "Ability"),
pool_coef(with = "LIE_Frequency", component="Lying Profile", name = "Frequency"),
pool_coef(with = "LIE_Contextuality", component="Lying Profile", name = "Contextuality"),
pool_coef(with = "LIE_Negativity", component="Lying Profile", name = "Negativity")
)
# names(df1a)
# names(df1b)
# names(df2) #TAS, MAIA, ICQ, BPQ, BVAQ
# names(df3) # TAS, BPQ
# names(df4) # BPQ, PBCS (private bodily consciousness?), MAIA, BAQ, BRS
# names(df5)
# names(df6) # PHQ2, GAD2, SSS8, IATS
# names(df7a) # STAIT, MAIA, CES (not reported in the paper), FFMQ, NEOFFI
# names(df7b) # BPQ, PHQ15, PHQ9, MAIA, STAIT,
# names(df7c) # CI01 (not reported in the paper), TAS, BPQ, MAIA, ASI, ICQ
# names(df8a) # EDI, BPQ
# names(df8b) # PHQ9, PHQ15, TAS
# names(df9) # ECR (Experience in Close Relationship Scale), TEAQ (touch experiences and attitudes questionnaire), STQ, TACSEN, UCLA, BFI, DBIA, BO, EQ
# names(df10) # ASQ, BPD, GCBS, IPIP6, LIE, MAIA, PHQ4, PI, PID, SPQ
# names(df11) # PHQ4, STAIT5, BDI, MAIA
# names(df12) # MAIA, PI,
# names(df14) # MAIA, TAS, MFQ(DEP), STAI(ANX)
# names(df15) #
# names(df16) #
<- data |>
average_corr summarise(min_r = min(r, na.rm = TRUE),
mean_r = mean(r, na.rm = TRUE),
max_r = max(r, na.rm = TRUE),
Max = var_Interoception[which.max(abs(r))],
.by=c("Component", "var_Correlate"))
sort(table(average_corr$Max), decreasing = TRUE)
Original HungryThirsty BruiseBlood MusclesPain UrinateDefecate
25 16 11 7 3
BreathingHeart CoughSneeze WindBurp
2 2 2
<- data |>
average_corr summarise(
min_r = min(r, na.rm = TRUE),
mean_r = mean(r, na.rm = TRUE),
max_r = max(r, na.rm = TRUE),
Max = var_Interoception[which.max(abs(r))],
n_sig_001 = sum(p < .001, na.rm = TRUE),
n_sig_01 = sum(p < .01 & p >= .001, na.rm = TRUE),
n_ns = sum(p >= .01 | is.na(p)),
total = dplyr::n(),
.by=c("Component", "var_Correlate")
|>
) mutate(
perc_sig = (n_sig_001 + n_sig_01) / total
)sort(table(average_corr$Max), decreasing = TRUE)
Original HungryThirsty BruiseBlood MusclesPain UrinateDefecate
25 16 11 7 3
BreathingHeart CoughSneeze WindBurp
2 2 2
|>
average_corr ::gt() |>
gt::data_color(
gtcolumns = c(mean_r, min_r, max_r),
palette = c("#2196F3", "white", "#FF5722"),
domain = c(-0.7, 0, 0.7)
|>
) ::data_color(
gtcolumns = c(Component, Max)
|>
) ::fmt_auto() gt
Warning: Some values were outside the color scale and will be treated as NA
Component | var_Correlate | min_r | mean_r | max_r | Max | n_sig_001 | n_sig_01 | n_ns | total | perc_sig |
---|---|---|---|---|---|---|---|---|---|---|
Demographic | Gender (Female - Male) | −0.138 | −0.011 | 0.066 | HungryThirsty | 4 | 1 | 3 | 8 | 0.625 |
Demographic | Age | 0.028 | 0.123 | 0.182 | Original | 8 | 0 | 0 | 8 | 1 |
MAIA | Attention Regulation | 0.153 | 0.249 | 0.369 | Original | 8 | 0 | 0 | 8 | 1 |
MAIA | Listening | 0.086 | 0.176 | 0.268 | BruiseBlood | 8 | 0 | 0 | 8 | 1 |
MAIA | Trusting | 0.147 | 0.236 | 0.357 | Original | 8 | 0 | 0 | 8 | 1 |
MAIA | Emotional Awareness | 0.132 | 0.197 | 0.296 | Original | 8 | 0 | 0 | 8 | 1 |
MAIA | Not Distracting | 0.019 | 0.06 | 0.126 | HungryThirsty | 4 | 0 | 4 | 8 | 0.5 |
MAIA | Noticing | 0.157 | 0.259 | 0.389 | Original | 8 | 0 | 0 | 8 | 1 |
MAIA | Not Worrying | −0.009 | 0.039 | 0.102 | UrinateDefecate | 1 | 2 | 5 | 8 | 0.375 |
MAIA | Self Regulation | 0.087 | 0.189 | 0.274 | Original | 8 | 0 | 0 | 8 | 1 |
Alexithymia | ICQ | −0.479 | −0.316 | −0.202 | Original | 8 | 0 | 0 | 8 | 1 |
BPQ | Body Awareness (BPQ) | 0.071 | 0.122 | 0.175 | Original | 1 | 1 | 6 | 8 | 0.25 |
BPQ | Autonomic Reactivity (BPQ) | −0.251 | −0.173 | −0.011 | UrinateDefecate | 6 | 1 | 1 | 8 | 0.875 |
Alexithymia | Difficulties Identifying Feelings (TAS) | −0.318 | −0.211 | −0.141 | Original | 8 | 0 | 0 | 8 | 1 |
Alexithymia | Difficulties Describing Feelings (TAS) | −0.244 | −0.15 | −0.111 | Original | 8 | 0 | 0 | 8 | 1 |
Alexithymia | External Thinking (TAS) | −0.128 | −0.081 | −0.023 | Original | 5 | 1 | 2 | 8 | 0.75 |
Alexithymia | Affective (BVAQ) | −0.036 | 0.042 | 0.159 | BruiseBlood | 1 | 0 | 7 | 8 | 0.125 |
Alexithymia | Cognitive (BVAQ) | −0.303 | −0.2 | −0.105 | Original | 7 | 1 | 0 | 8 | 1 |
Mood | Somatic Concerns (PHQ-15) | −0.269 | −0.128 | −0.024 | HungryThirsty | 5 | 1 | 2 | 8 | 0.75 |
Mood | Depression (PHQ-9) | −1.548 | −0.619 | −0.067 | Original | 0 | 2 | 6 | 8 | 0.25 |
Mood | Depression (BDI) | −0.342 | −0.204 | −0.134 | HungryThirsty | 8 | 0 | 0 | 8 | 1 |
Mood | Depression (PHQ-4) | −0.196 | −0.094 | −0.038 | HungryThirsty | 4 | 2 | 2 | 8 | 0.75 |
Mood | Depression (MFQ) | −0.345 | −0.139 | −0.007 | BreathingHeart | 1 | 0 | 7 | 8 | 0.125 |
Mood | Anxiety (STAI-T) | −0.322 | −0.189 | −0.09 | HungryThirsty | 8 | 0 | 0 | 8 | 1 |
Mood | Anxiety (PHQ-4) | −0.208 | −0.103 | −0.017 | HungryThirsty | 5 | 2 | 1 | 8 | 0.875 |
Mood | Anxiety (GAD-7) | −0.374 | −0.187 | −0.098 | HungryThirsty | 3 | 2 | 3 | 8 | 0.625 |
Mood | Boderline Personality | −0.14 | −0.061 | 0.022 | HungryThirsty | 0 | 1 | 7 | 8 | 0.125 |
Maladaptive | Antagonism | −0.082 | −0.024 | 0.141 | BruiseBlood | 0 | 1 | 7 | 8 | 0.125 |
Maladaptive | Detachment | −0.167 | −0.081 | 0.004 | HungryThirsty | 2 | 2 | 4 | 8 | 0.5 |
Maladaptive | Disinhibition | −0.065 | −0.016 | 0.069 | BruiseBlood | 0 | 0 | 8 | 8 | 0 |
Maladaptive | Negative Affect | −0.153 | −0.111 | −0.024 | Original | 1 | 4 | 3 | 8 | 0.625 |
Maladaptive | Psychoticism | −0.173 | −0.091 | 0.002 | MusclesPain | 2 | 1 | 5 | 8 | 0.375 |
Schizotypic | Constricted Affect | −0.146 | −0.085 | −0.009 | Original | 0 | 3 | 5 | 8 | 0.375 |
Schizotypic | Eccentric | −0.138 | −0.081 | −0.034 | HungryThirsty | 0 | 2 | 6 | 8 | 0.25 |
Schizotypic | Magical Thinking | −0.05 | 0.02 | 0.078 | BruiseBlood | 0 | 0 | 8 | 8 | 0 |
Schizotypic | No Close Friends | −0.172 | −0.122 | −0.062 | Original | 3 | 1 | 4 | 8 | 0.5 |
Schizotypic | Odd Speech | −0.15 | −0.089 | −4.804 × 10−4 | HungryThirsty | 1 | 1 | 6 | 8 | 0.25 |
Schizotypic | Reference | −0.111 | −0.041 | 0.023 | MusclesPain | 0 | 0 | 8 | 8 | 0 |
Schizotypic | Social Anxiety | −0.192 | −0.111 | −0.023 | BruiseBlood | 3 | 0 | 5 | 8 | 0.375 |
Schizotypic | Suspiciousness | −0.081 | −0.038 | 0.017 | WindBurp | 0 | 0 | 8 | 8 | 0 |
Schizotypic | Unusual Perceptions | −0.141 | −0.068 | 0.053 | MusclesPain | 0 | 2 | 6 | 8 | 0.25 |
Autistic | Imagination | −0.28 | −0.184 | −0.114 | Original | 6 | 1 | 1 | 8 | 0.875 |
Autistic | Lack of Social Skills | −0.189 | −0.119 | −0.04 | Original | 3 | 2 | 3 | 8 | 0.625 |
Autistic | Low Attentional Switching | −0.225 | −0.143 | −0.026 | Original | 5 | 0 | 3 | 8 | 0.625 |
Autistic | Patterns and Numbers | −0.064 | 0.005 | 0.083 | BruiseBlood | 0 | 0 | 8 | 8 | 0 |
Autistic | Routines | −0.225 | −0.133 | −0.019 | BruiseBlood | 3 | 1 | 4 | 8 | 0.5 |
Personality | Neuroticism | 3.578 × 10−4 | 0.067 | 0.132 | BruiseBlood | 4 | 0 | 4 | 8 | 0.5 |
Personality | Agreeableness | 0.025 | 0.053 | 0.086 | Original | 8 | 0 | 0 | 8 | 1 |
Personality | Conscientiousness | −0.021 | 0.028 | 0.063 | BreathingHeart | 6 | 1 | 1 | 8 | 0.875 |
Personality | Openness | 0.115 | 0.143 | 0.223 | Original | 8 | 0 | 0 | 8 | 1 |
Personality | Extraversion | −0.015 | 0.037 | 0.086 | BruiseBlood | 5 | 0 | 3 | 8 | 0.625 |
Personality | Honesty-Humility | −0.217 | −0.101 | −0.014 | HungryThirsty | 3 | 0 | 5 | 8 | 0.375 |
World Beliefs | Alive | −0.012 | 0.087 | 0.166 | HungryThirsty | 2 | 3 | 3 | 8 | 0.625 |
World Beliefs | Changing | −0.015 | 0.038 | 0.074 | Original | 0 | 0 | 8 | 8 | 0 |
World Beliefs | Enticing | −0.003 | 0.067 | 0.125 | MusclesPain | 0 | 2 | 6 | 8 | 0.25 |
World Beliefs | Good | −0.014 | 0.067 | 0.132 | MusclesPain | 0 | 2 | 6 | 8 | 0.25 |
World Beliefs | Hierarchical | 0.028 | 0.104 | 0.192 | HungryThirsty | 2 | 0 | 6 | 8 | 0.25 |
World Beliefs | Safe | −0.066 | 0.007 | 0.054 | UrinateDefecate | 0 | 0 | 8 | 8 | 0 |
World Beliefs | Understandable | 0.027 | 0.113 | 0.17 | Original | 2 | 4 | 2 | 8 | 0.75 |
Conspiracy Beliefs | Extraterrestrial | −0.017 | 0.026 | 0.057 | MusclesPain | 0 | 0 | 8 | 8 | 0 |
Conspiracy Beliefs | Global Conspiracies | 0.006 | 0.103 | 0.154 | Original | 1 | 3 | 4 | 8 | 0.5 |
Conspiracy Beliefs | Government Malfeasance | −0.021 | 0.053 | 0.096 | CoughSneeze | 0 | 0 | 8 | 8 | 0 |
Conspiracy Beliefs | Information Control | −0.059 | 0.06 | 0.124 | CoughSneeze | 0 | 1 | 7 | 8 | 0.125 |
Conspiracy Beliefs | Personal Wellbeing | 0.036 | 0.086 | 0.133 | HungryThirsty | 0 | 2 | 6 | 8 | 0.25 |
Lying Profile | Ability | 0.033 | 0.057 | 0.082 | WindBurp | 0 | 0 | 8 | 8 | 0 |
Lying Profile | Frequency | −0.088 | −0.041 | 0.034 | MusclesPain | 0 | 0 | 8 | 8 | 0 |
Lying Profile | Contextuality | −0.123 | −0.007 | 0.045 | BruiseBlood | 0 | 1 | 7 | 8 | 0.125 |
Lying Profile | Negativity | 0.011 | 0.064 | 0.106 | Original | 0 | 0 | 8 | 8 | 0 |
<- data |>
p mutate(sig = ifelse(p < .01, "p < .01", ifelse(p < .001, "p < .001", "N.S.")),
dir = sign(r),
var_Interoception = str_replace(var_Interoception, "CoughSneeze", "Cough/Sneeze"),
var_Interoception = str_replace(var_Interoception, "HungryThirsty", "Hungry/Thirsty"),
var_Interoception = str_replace(var_Interoception, "BruiseBlood", "Bruise/Blood sugar"),
var_Interoception = str_replace(var_Interoception, "MusclesPain", "Muscles/Pain"),
var_Interoception = str_replace(var_Interoception, "BreathingHeart", "Breathing/Heart"),
var_Interoception = str_replace(var_Interoception, "UrinateDefecate", "Urinate/Defecate"),
var_Interoception = str_replace(var_Interoception, "WindBurp", "Wind/Burp"),
var_Interoception = fct_relevel(var_Interoception, "Original", "Hungry/Thirsty", "Bruise/Blood sugar", "Muscles/Pain", "Cough/Sneeze", "Wind/Burp", "Breathing/Heart", "Urinate/Defecate")) |>
# Component = fct_relevel(
# Component, "Demographic", "MAIA", "Body", "Mood", "Maladaptive",
# "Schizotypic", "Autistic", "Personality", "Conspiracy Beliefs", "World Beliefs", "Lying Profile")) |>
ggplot(aes(y = var_Correlate)) +
annotate(geom = "rect", xmin = -0.1, xmax = 0.1, ymin = -Inf, ymax=Inf, fill = "#FFF8E1") +
annotate(geom = "rect", xmin = c(-0.3, 0.1), xmax = c(-0.1, 0.3), ymin = -Inf, ymax=Inf, fill = "#F1F8E9") +
annotate(geom = "rect", xmin = c(-0.6, 0.3), xmax = c(-0.3, 0.6), ymin = -Inf, ymax=Inf, fill = "#E8F5E9") +
geom_vline(xintercept = 0, linetype = "dashed") +
# geom_point2(aes(y=r, color = dir, alpha = sig), size = 3) +
geom_linerange(aes(color=dir, alpha=sig, xmax=r, xmin=0), linewidth = 1) +
geom_linerange(aes(color = dir, alpha = sig, xmin = CI_low, xmax = CI_high, linewidth = log(N))) +
# geom_linerange(aes(color=dir, alpha=sig, ymin=0, ymax=r, group=Sample), position = position_dodge2(width = 0.7), linewidth=2.5) +
# geom_linerange(aes(ymin = CI_low, ymax = CI_high, color = dir, alpha=sig, group=Sample), position = position_dodge2(width = 0.7),
# linewidth = 1) +
facet_grid(Component ~ var_Interoception, scales = "free", space ="free", switch = "y") +
scale_fill_gradient(low = "#2196F3", high = "#FF5722", guide = "none") +
scale_color_gradient(low = "#2196F3", high = "#FF5722", guide = "none") +
scale_alpha_discrete(range = c(0.2, 0.9), guide = "none") +
scale_x_continuous(expand = c(0, 0), breaks = c(-0.3, 0, 0.3)) +
scale_linewidth_continuous(range = c(3, 7), guide = "none") +
coord_cartesian(xlim = c(-0.45, 0.45)) +
theme_modern(axis.title.space = 5) +
labs(x = "Strength of Association (std. Beta)") +
theme(panel.grid.major.y = element_line(),
axis.title.y = element_blank(),
axis.line.x = element_blank(),
axis.text.y = element_text(size = rel(0.5)),
axis.text.x = element_text(size = rel(0.8)),
plot.title = element_text(face = "bold", hjust = 0),
strip.placement = "outside",
strip.background.y = element_rect(fill = "#E0E0E0", color = "white"),
strip.background.x = element_rect(fill = "#F8BBD0", color = "white"))
p
ggsave("figures/Figure3.png", p, width=21*0.5, height=29.7*0.5, dpi=300, bg="white")
Benefits of the IAS: - Straightforward and sensation-centered items
Recommendations: - Remove Itch (redundant + issue in Chinese) - Use analog scales
Limitations: - Not much clear theorethical or empirical structure (small grouping of items) - Limited variability (clear mode at 4/5), very low prevalence of 5/5 responses. - Ambiguous items which grouping depends on the context (and its awareness) - E.g., heart beating fast, vomit when nauseaous - Few items for some modalities (e.g., 1 for heart) - Positive phrasing: benefits but also might exacerbate positivity bias (and thus unidimensionality)
Need for context-specific items (cross-modal when possible, i.E., cardioception, respiroception, etc.).
New Scale: Multimodal Interoceptive Sensitivity Scale (MISS)