Most experiments within consciousness research assume the dictum that awareness is dichotomous phenomenon. Nonetheless, participants can distinguish multiple levels of subjective experience of simple features, which correlates with their performance in difference tasks.
It questions the idea that many forms of perception occurs unconsciously.
Here we show that awareness of food images is gradual rather than dichotomous, while showing, at the same time, that the effects of taste priming by music are predicted by the level of perceptual awareness of the food images. When the report is of “no image seen”, there is no effect.
These results question how much musical priming actually influence behavior when the target is either conscious or unconscious. Priming is believed to be one of the most established phenomena, but these results with others expands the growing body of evidence that question the contributions of unconscious processing on behavior.
Image types: 4 salty and 4 sweet.
Flashing-speed of these images: 0ms, 2ms, 17ms, 25ms, 33ms, 42ms, and 50ms.
Sound conditions blocks: Silent, Sweet, or Salty
8 images shown at 8 speeds equals 64 trials.
Each block at 5 minutes at 300s ≈ 60 trials.
Total of 64 trials in 3 blocks = 192 trials.
Practice test: 4 x 8 = 32 trials.
30 min total time with 50 participants on-site using 120Hz screen.
library(readxl)
library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.1.4 ✔ readr 2.1.5
## ✔ forcats 1.0.0 ✔ stringr 1.5.1
## ✔ ggplot2 3.5.1 ✔ tibble 3.2.1
## ✔ lubridate 1.9.3 ✔ tidyr 1.3.1
## ✔ purrr 1.0.2
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
# Load sweet
sweet <- read_excel("data_exp_17023-v16_task-ocq1-sweet.xlsx")
## New names:
## • `` -> `...53`
# Load salty
salty <- read_excel("data_exp_17023-v16_task-xl9t-salty.xlsx")
## New names:
## • `` -> `...53`
# Load silent
silent <- read_excel("data_exp_17023-v16_task-r4gk-silence.xlsx")
## New names:
## • `` -> `...53`
# Lowercase and sub space for '_'
sweet <- sweet %>% rename_with(~ gsub(" ", "_", .x) %>% tolower())
salty <- salty %>% rename_with(~ gsub(" ", "_", .x) %>% tolower())
silent <- silent %>% rename_with(~ gsub(" ", "_", .x) %>% tolower())
# Subset the meaningful columns by defining function
meaning_full <- function(data_set, sound_condition) {
# Subset and select relevant columns for "keyboard" screen name
data_some <- data_set %>%
subset(screen_name == "keyboard") %>%
select(
participant_private_id,
trial_number,
reaction_time,
response,
correct,
incorrect,
answer,
image_time
) %>%
mutate(
image_type = ifelse(answer == "f", "sweet", "salty"),
response_type = ifelse(response == "f", "sweet", "salty"),
display_time = ifelse(is.na(image_time), 0, image_time),
image_type = as.factor(image_type),
response_type = as.factor(response_type),
display_time = as.numeric(display_time)
)
# Subset PAS data and rename columns as needed
data_pas <- data_set %>%
subset(screen_name == "PAS") %>%
select(
participant_private_id,
trial_number,
reaction_time,
response,
image_file,
image_time) %>%
rename(
pas_reaction_time = reaction_time,
pas_response = response) %>%
mutate(
pas_response = as.numeric(pas_response)
)
# Inner join the 'some' data and the 'pas' data
combined_data <- left_join(data_some, data_pas, by = c("participant_private_id", "trial_number")) %>%
mutate(sound_condition = sound_condition) %>%
rename(id = participant_private_id)
return(combined_data)
}
# Run function
sweet <- meaning_full(sweet, "sweet")
salty <- meaning_full(salty, "salty")
silent <- meaning_full(silent, "silent")
# Define soundcondition levels
soundcondition_levels <- c("silent", "sweet", "salty")
# Combine all the data
data_sss <- bind_rows(sweet, salty, silent)
# Add levels
data_sss$sound_condition <- factor(data_sss$sound_condition, levels = soundcondition_levels)
# Select specific columns from data_sss
data_sss <- data_sss %>%
select(
id,
display_time,
reaction_time,
response_type,
pas_response,
pas_reaction_time,
sound_condition,
image_type
)
head(data_sss)
library(ggplot2)
library(showtext)
## Loading required package: sysfonts
## Loading required package: showtextdb
library(ggthemes)
# Font setup
font_add_google("Source Sans Pro", "source")
showtext_auto()
# Use the font in the plots
theme_daniel <- theme_minimal(base_family = "source") +
theme(
text = element_text(size = 14),
plot.title = element_text(size = 16, hjust = 0.5, face = "bold"),
plot.background = element_rect(fill = "#F9F9F9", color = NA, size = 0), # Soft gray background
panel.background = element_rect(fill = "#FFFFFF", color = NA, size = 0), # White panel
panel.grid.major = element_line(color = "#E5E5E5", size = 0.2),
panel.grid.minor = element_blank(),
axis.line = element_line(color = "#D1D1D1"),
axis.ticks = element_line(color = "#D1D1D1"),
legend.position = "top",
legend.title = element_blank(),
legend.text = element_text(size = 12),
plot.margin = margin(10, 10, 10, 10),
panel.border = element_rect(color = "#E5E5E5", fill = NA, size = 0.5, linetype = "solid", inherit.blank = TRUE)
)
## Warning: The `size` argument of `element_rect()` is deprecated as of ggplot2 3.4.0.
## ℹ Please use the `linewidth` argument instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
## Warning: The `size` argument of `element_line()` is deprecated as of ggplot2 3.4.0.
## ℹ Please use the `linewidth` argument instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
# Define the new colors for each condition
color_palette <- c("silent" = "#8A8D91", "sweet" = "#F4A582", "salty" = "#92C5DE")
# PAS Response by Sound Condition
ggplot(data_sss, aes(x = pas_response, fill = sound_condition)) +
geom_histogram(binwidth = 1, position = "dodge", color = "#E5E5E5", size = 0.2) +
scale_fill_manual(values = color_palette) +
labs(title = "PAS Response Distribution by Sound Condition", x = "PAS Response", y = "Count") +
theme_daniel
## Warning: Using `size` aesthetic for lines was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` instead.
## This warning is displayed once every 8 hours.
## Call `lifecycle::last_lifecycle_warnings()` to see where this warning was
## generated.
ggplot(data_sss, aes(x = sound_condition, y = reaction_time, fill = sound_condition)) +
geom_boxplot(outlier.shape = NA, width = 0.6, color = "#D1D1D1") +
scale_fill_manual(values = color_palette) +
labs(title = "Reaction Time by Sound Condition", y = "Reaction Time (ms)", x = "Sound Condition") +
theme_daniel +
theme(
panel.border = element_rect(color = "#D1D1D1", fill = NA, size = 0.5, linetype = "solid")
) +
geom_jitter(width = 0.1, size = 1, alpha = 0.6, color = "#888888")
Test whether sound_condition has a significant effect on pas_response and reaction_time.
# Linear model for reaction time
reaction_time_lm <- lm(reaction_time ~ sound_condition + response_type, data = data_sss)
summary(reaction_time_lm)
##
## Call:
## lm(formula = reaction_time ~ sound_condition + response_type,
## data = data_sss)
##
## Residuals:
## Min 1Q Median 3Q Max
## -1242 -715 -311 294 63306
##
## Coefficients:
## Estimate Std. Error t value Pr(>|t|)
## (Intercept) 1172.77 22.04 53.199 < 2e-16 ***
## sound_conditionsweet 70.21 26.74 2.625 0.00867 **
## sound_conditionsalty -36.00 26.74 -1.346 0.17826
## response_typesweet -42.54 21.86 -1.946 0.05166 .
## ---
## Signif. codes: 0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
##
## Residual standard error: 1362 on 15548 degrees of freedom
## Multiple R-squared: 0.001282, Adjusted R-squared: 0.001089
## F-statistic: 6.654 on 3 and 15548 DF, p-value: 0.0001739
The model’s purpose is to examine the effect of sound_condition (with levels “silent”, “sweet”, and “salty”) and response_type (with levels “sweet” and “salty”) on reaction time.
The “sweet” sound condition significantly increases reaction time by around 70 ms compared to the “silent” condition, while the “salty” sound condition does not have a significant effect. The “sweet” response type might slightly decrease reaction time compared to the “salty” response type, but this effect is marginally significant. Yet sound_condition and response_type do not explain much variation in reaction time.
library(MASS)
##
## Attaching package: 'MASS'
## The following object is masked from 'package:dplyr':
##
## select
# Ordinal regression for PAS response
pas_response_orm <- polr(as.factor(pas_response) ~ sound_condition + response_type, data = data_sss)
summary(pas_response_orm)
##
## Re-fitting to get Hessian
## Call:
## polr(formula = as.factor(pas_response) ~ sound_condition + response_type,
## data = data_sss)
##
## Coefficients:
## Value Std. Error t value
## sound_conditionsweet -0.01665 0.03595 -0.4632
## sound_conditionsalty 0.01793 0.03592 0.4992
## response_typesweet 0.06162 0.02938 2.0976
##
## Intercepts:
## Value Std. Error t value
## 1|2 -0.5831 0.0306 -19.0481
## 2|3 0.0368 0.0303 1.2171
## 3|4 0.5093 0.0306 16.6569
##
## Residual Deviance: 39484.08
## AIC: 39496.08
The model aims to predict pas_response, which is treated as an ordered categorical variable, based on sound_condition and response_type. The polr function fits a proportional odds model, assuming that the effects of sound_condition and response_type apply similarly across all levels of pas_response.
sound_condition (both “sweet” and “salty” compared to “silent”) does not significantly impact pas_response. response_type (“sweet” vs. “salty”) has a small but significant effect, with “sweet” responses slightly increasing the likelihood of a higher pas_response.The model suggests that response_type might be a weak predictor of pas_response, but sound_condition does not appear to meaningfully affect participants’ perceived awareness level (pas_response).
Test whether congruency between image_type and response_type (e.g., “sweet” sound with “sweet” image) significantly impacts pas_response or reaction_time.
# Create a congruency variable
data_sss <- data_sss %>%
mutate(congruent = ifelse(image_type == response_type, "yes", "no"))
# Chi-square test for congruency
congruency_table <- table(data_sss$congruent, data_sss$sound_condition)
chisq.test(congruency_table)
##
## Pearson's Chi-squared test
##
## data: congruency_table
## X-squared = 3.6321, df = 2, p-value = 0.1627
This implies that the likelihood of congruent responses is not significantly affected by the sound condition (“silent,” “sweet,” or “salty”).
library(rstan)
## Loading required package: StanHeaders
##
## rstan version 2.32.6 (Stan version 2.32.2)
## For execution on a local, multicore CPU with excess RAM we recommend calling
## options(mc.cores = parallel::detectCores()).
## To avoid recompilation of unchanged Stan programs, we recommend calling
## rstan_options(auto_write = TRUE)
## For within-chain threading using `reduce_sum()` or `map_rect()` Stan functions,
## change `threads_per_chain` option:
## rstan_options(threads_per_chain = 1)
##
## Attaching package: 'rstan'
## The following object is masked from 'package:tidyr':
##
## extract
library(brms)
## Loading required package: Rcpp
## Loading 'brms' package (version 2.22.0). Useful instructions
## can be found by typing help('brms'). A more detailed introduction
## to the package is available through vignette('brms_overview').
##
## Attaching package: 'brms'
## The following object is masked from 'package:rstan':
##
## loo
## The following object is masked from 'package:stats':
##
## ar
# Bayesian mixed model for reaction time
reaction_time_bayes <- brm(reaction_time ~ sound_condition * display_time + (1 | id),
data = data_sss, family = gaussian())
## Compiling Stan program...
## Trying to compile a simple C file
## Running /Library/Frameworks/R.framework/Resources/bin/R CMD SHLIB foo.c
## using C compiler: ‘Apple clang version 16.0.0 (clang-1600.0.26.4)’
## using SDK: ‘MacOSX15.1.sdk’
## clang -arch arm64 -I"/Library/Frameworks/R.framework/Resources/include" -DNDEBUG -I"/Library/Frameworks/R.framework/Versions/4.4-arm64/Resources/library/Rcpp/include/" -I"/Library/Frameworks/R.framework/Versions/4.4-arm64/Resources/library/RcppEigen/include/" -I"/Library/Frameworks/R.framework/Versions/4.4-arm64/Resources/library/RcppEigen/include/unsupported" -I"/Library/Frameworks/R.framework/Versions/4.4-arm64/Resources/library/BH/include" -I"/Library/Frameworks/R.framework/Versions/4.4-arm64/Resources/library/StanHeaders/include/src/" -I"/Library/Frameworks/R.framework/Versions/4.4-arm64/Resources/library/StanHeaders/include/" -I"/Library/Frameworks/R.framework/Versions/4.4-arm64/Resources/library/RcppParallel/include/" -I"/Library/Frameworks/R.framework/Versions/4.4-arm64/Resources/library/rstan/include" -DEIGEN_NO_DEBUG -DBOOST_DISABLE_ASSERTS -DBOOST_PENDING_INTEGER_LOG2_HPP -DSTAN_THREADS -DUSE_STANC3 -DSTRICT_R_HEADERS -DBOOST_PHOENIX_NO_VARIADIC_EXPRESSION -D_HAS_AUTO_PTR_ETC=0 -include '/Library/Frameworks/R.framework/Versions/4.4-arm64/Resources/library/StanHeaders/include/stan/math/prim/fun/Eigen.hpp' -D_REENTRANT -DRCPP_PARALLEL_USE_TBB=1 -I/opt/R/arm64/include -fPIC -falign-functions=64 -Wall -g -O2 -c foo.c -o foo.o
## In file included from <built-in>:1:
## In file included from /Library/Frameworks/R.framework/Versions/4.4-arm64/Resources/library/StanHeaders/include/stan/math/prim/fun/Eigen.hpp:22:
## In file included from /Library/Frameworks/R.framework/Versions/4.4-arm64/Resources/library/RcppEigen/include/Eigen/Dense:1:
## In file included from /Library/Frameworks/R.framework/Versions/4.4-arm64/Resources/library/RcppEigen/include/Eigen/Core:19:
## /Library/Frameworks/R.framework/Versions/4.4-arm64/Resources/library/RcppEigen/include/Eigen/src/Core/util/Macros.h:679:10: fatal error: 'cmath' file not found
## 679 | #include <cmath>
## | ^~~~~~~
## 1 error generated.
## make: *** [foo.o] Error 1
## Start sampling
##
## SAMPLING FOR MODEL 'anon_model' NOW (CHAIN 1).
## Chain 1:
## Chain 1: Gradient evaluation took 0.000617 seconds
## Chain 1: 1000 transitions using 10 leapfrog steps per transition would take 6.17 seconds.
## Chain 1: Adjust your expectations accordingly!
## Chain 1:
## Chain 1:
## Chain 1: Iteration: 1 / 2000 [ 0%] (Warmup)
## Chain 1: Iteration: 200 / 2000 [ 10%] (Warmup)
## Chain 1: Iteration: 400 / 2000 [ 20%] (Warmup)
## Chain 1: Iteration: 600 / 2000 [ 30%] (Warmup)
## Chain 1: Iteration: 800 / 2000 [ 40%] (Warmup)
## Chain 1: Iteration: 1000 / 2000 [ 50%] (Warmup)
## Chain 1: Iteration: 1001 / 2000 [ 50%] (Sampling)
## Chain 1: Iteration: 1200 / 2000 [ 60%] (Sampling)
## Chain 1: Iteration: 1400 / 2000 [ 70%] (Sampling)
## Chain 1: Iteration: 1600 / 2000 [ 80%] (Sampling)
## Chain 1: Iteration: 1800 / 2000 [ 90%] (Sampling)
## Chain 1: Iteration: 2000 / 2000 [100%] (Sampling)
## Chain 1:
## Chain 1: Elapsed Time: 16.808 seconds (Warm-up)
## Chain 1: 5.584 seconds (Sampling)
## Chain 1: 22.392 seconds (Total)
## Chain 1:
##
## SAMPLING FOR MODEL 'anon_model' NOW (CHAIN 2).
## Chain 2:
## Chain 2: Gradient evaluation took 0.000286 seconds
## Chain 2: 1000 transitions using 10 leapfrog steps per transition would take 2.86 seconds.
## Chain 2: Adjust your expectations accordingly!
## Chain 2:
## Chain 2:
## Chain 2: Iteration: 1 / 2000 [ 0%] (Warmup)
## Chain 2: Iteration: 200 / 2000 [ 10%] (Warmup)
## Chain 2: Iteration: 400 / 2000 [ 20%] (Warmup)
## Chain 2: Iteration: 600 / 2000 [ 30%] (Warmup)
## Chain 2: Iteration: 800 / 2000 [ 40%] (Warmup)
## Chain 2: Iteration: 1000 / 2000 [ 50%] (Warmup)
## Chain 2: Iteration: 1001 / 2000 [ 50%] (Sampling)
## Chain 2: Iteration: 1200 / 2000 [ 60%] (Sampling)
## Chain 2: Iteration: 1400 / 2000 [ 70%] (Sampling)
## Chain 2: Iteration: 1600 / 2000 [ 80%] (Sampling)
## Chain 2: Iteration: 1800 / 2000 [ 90%] (Sampling)
## Chain 2: Iteration: 2000 / 2000 [100%] (Sampling)
## Chain 2:
## Chain 2: Elapsed Time: 14.677 seconds (Warm-up)
## Chain 2: 5.674 seconds (Sampling)
## Chain 2: 20.351 seconds (Total)
## Chain 2:
##
## SAMPLING FOR MODEL 'anon_model' NOW (CHAIN 3).
## Chain 3:
## Chain 3: Gradient evaluation took 0.000294 seconds
## Chain 3: 1000 transitions using 10 leapfrog steps per transition would take 2.94 seconds.
## Chain 3: Adjust your expectations accordingly!
## Chain 3:
## Chain 3:
## Chain 3: Iteration: 1 / 2000 [ 0%] (Warmup)
## Chain 3: Iteration: 200 / 2000 [ 10%] (Warmup)
## Chain 3: Iteration: 400 / 2000 [ 20%] (Warmup)
## Chain 3: Iteration: 600 / 2000 [ 30%] (Warmup)
## Chain 3: Iteration: 800 / 2000 [ 40%] (Warmup)
## Chain 3: Iteration: 1000 / 2000 [ 50%] (Warmup)
## Chain 3: Iteration: 1001 / 2000 [ 50%] (Sampling)
## Chain 3: Iteration: 1200 / 2000 [ 60%] (Sampling)
## Chain 3: Iteration: 1400 / 2000 [ 70%] (Sampling)
## Chain 3: Iteration: 1600 / 2000 [ 80%] (Sampling)
## Chain 3: Iteration: 1800 / 2000 [ 90%] (Sampling)
## Chain 3: Iteration: 2000 / 2000 [100%] (Sampling)
## Chain 3:
## Chain 3: Elapsed Time: 13.764 seconds (Warm-up)
## Chain 3: 5.097 seconds (Sampling)
## Chain 3: 18.861 seconds (Total)
## Chain 3:
##
## SAMPLING FOR MODEL 'anon_model' NOW (CHAIN 4).
## Chain 4:
## Chain 4: Gradient evaluation took 0.000299 seconds
## Chain 4: 1000 transitions using 10 leapfrog steps per transition would take 2.99 seconds.
## Chain 4: Adjust your expectations accordingly!
## Chain 4:
## Chain 4:
## Chain 4: Iteration: 1 / 2000 [ 0%] (Warmup)
## Chain 4: Iteration: 200 / 2000 [ 10%] (Warmup)
## Chain 4: Iteration: 400 / 2000 [ 20%] (Warmup)
## Chain 4: Iteration: 600 / 2000 [ 30%] (Warmup)
## Chain 4: Iteration: 800 / 2000 [ 40%] (Warmup)
## Chain 4: Iteration: 1000 / 2000 [ 50%] (Warmup)
## Chain 4: Iteration: 1001 / 2000 [ 50%] (Sampling)
## Chain 4: Iteration: 1200 / 2000 [ 60%] (Sampling)
## Chain 4: Iteration: 1400 / 2000 [ 70%] (Sampling)
## Chain 4: Iteration: 1600 / 2000 [ 80%] (Sampling)
## Chain 4: Iteration: 1800 / 2000 [ 90%] (Sampling)
## Chain 4: Iteration: 2000 / 2000 [100%] (Sampling)
## Chain 4:
## Chain 4: Elapsed Time: 15.352 seconds (Warm-up)
## Chain 4: 5.341 seconds (Sampling)
## Chain 4: 20.693 seconds (Total)
## Chain 4:
## Warning: Bulk Effective Samples Size (ESS) is too low, indicating posterior means and medians may be unreliable.
## Running the chains for more iterations may help. See
## https://mc-stan.org/misc/warnings.html#bulk-ess
summary(reaction_time_bayes)
## Family: gaussian
## Links: mu = identity; sigma = identity
## Formula: reaction_time ~ sound_condition * display_time + (1 | id)
## Data: data_sss (Number of observations: 15552)
## Draws: 4 chains, each with iter = 2000; warmup = 1000; thin = 1;
## total post-warmup draws = 4000
##
## Multilevel Hyperparameters:
## ~id (Number of levels: 54)
## Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
## sd(Intercept) 412.58 42.12 341.11 506.50 1.01 419 663
##
## Regression Coefficients:
## Estimate Est.Error l-95% CI u-95% CI Rhat
## Intercept 1124.18 61.80 1000.53 1241.16 1.03
## sound_conditionsweet 169.04 37.70 94.16 242.91 1.00
## sound_conditionsalty -14.91 38.05 -89.98 59.47 1.00
## display_time 1.17 0.98 -0.71 3.11 1.00
## sound_conditionsweet:display_time -5.10 1.41 -7.88 -2.37 1.00
## sound_conditionsalty:display_time -1.09 1.44 -3.84 1.73 1.00
## Bulk_ESS Tail_ESS
## Intercept 227 525
## sound_conditionsweet 1259 1946
## sound_conditionsalty 1255 1894
## display_time 1014 1763
## sound_conditionsweet:display_time 1059 1667
## sound_conditionsalty:display_time 1075 1774
##
## Further Distributional Parameters:
## Estimate Est.Error l-95% CI u-95% CI Rhat Bulk_ESS Tail_ESS
## sigma 1300.86 7.44 1286.43 1315.34 1.00 5621 3114
##
## Draws were sampled using sampling(NUTS). For each parameter, Bulk_ESS
## and Tail_ESS are effective sample size measures, and Rhat is the potential
## scale reduction factor on split chains (at convergence, Rhat = 1).
The Bayesian model run using the brms package tested the effect of sound_condition and display_time on reaction_time, accounting for random intercepts by id to capture participant-level variability. The main findings indicate that the “sweet” sound condition significantly increases reaction time by about 166.45 ms compared to “silent,” while “salty” has no significant effect. Display time has a minimal effect on reaction time alone, but there is a significant interaction between “sweet” and display time, where reaction time decreases as display time increases. The warning about low Effective Sample Size (ESS) suggests that some posterior estimates, especially for the means and medians, might be unreliable; running more iterations could improve estimate stability. Overall, the model indicates that the “sweet” condition influences reaction time, particularly in combination with longer display times.
Since participants vary in sensitivity, a mixed model could account for both fixed effects (e.g., sound_condition, display_time) and random effects (e.g., individual participant variability).
library(lme4)
## Loading required package: Matrix
##
## Attaching package: 'Matrix'
## The following objects are masked from 'package:tidyr':
##
## expand, pack, unpack
##
## Attaching package: 'lme4'
## The following object is masked from 'package:brms':
##
## ngrps
# Mixed model for reaction time with random intercept for participants
reaction_time_mixed <- lmer(reaction_time ~ sound_condition * display_time + (1 | id), data = data_sss)
summary(reaction_time_mixed)
## Linear mixed model fit by REML ['lmerMod']
## Formula: reaction_time ~ sound_condition * display_time + (1 | id)
## Data: data_sss
##
## REML criterion at convergence: 267319.4
##
## Scaled residuals:
## Min 1Q Median 3Q Max
## -1.643 -0.456 -0.188 0.207 48.593
##
## Random effects:
## Groups Name Variance Std.Dev.
## id (Intercept) 163501 404.4
## Residual 1692348 1300.9
## Number of obs: 15552, groups: id, 54
##
## Fixed effects:
## Estimate Std. Error t value
## (Intercept) 1127.532 61.112 18.450
## sound_conditionsweet 168.733 37.568 4.491
## sound_conditionsalty -14.129 37.571 -0.376
## display_time 1.189 1.000 1.189
## sound_conditionsweet:display_time -5.084 1.414 -3.595
## sound_conditionsalty:display_time -1.120 1.419 -0.789
##
## Correlation of Fixed Effects:
## (Intr) snd_cndtnsw snd_cndtnsl dsply_ snd_cndtnsw:_
## snd_cndtnsw -0.308
## snd_cndtnsl -0.308 0.501
## display_tim -0.319 0.519 0.519
## snd_cndtnsw:_ 0.226 -0.733 -0.367 -0.707
## snd_cndtnsl:_ 0.225 -0.366 -0.733 -0.705 0.499
The model suggests that the “sweet” sound condition significantly increases reaction time compared to “silent.” However, as display time increases, this effect of “sweet” is moderated by a significant interaction, resulting in a decrease in reaction time with longer display times. The “salty” sound condition has no significant effect on reaction time, either alone or in interaction with display time. The model explains some of the participant-level variability, but a large amount of residual variance remains, indicating that factors beyond sound_condition and display_time contribute to variations in reaction time.