Code
library(tidyverse)
library(easystats)
library(patchwork)
library(ggside)
library(glmmTMB)
options(mc.cores = parallel::detectCores(),
brms.backend = "cmdstanr",
width = 300)
library(tidyverse)
library(easystats)
library(patchwork)
library(ggside)
library(glmmTMB)
options(mc.cores = parallel::detectCores(),
brms.backend = "cmdstanr",
width = 300)
<- read.csv("../data/data_participants.csv")
dfsub
<- read.csv("../data/data.csv") |>
df right_join(
select(dfsub, Participant, Mobile, starts_with(c("Feedback_","BAIT")), COPS_Frequency, SexualActivity,- Feedback_Text),
by = "Participant"
|>
) ::rescale(select= c("Arousal", "Enticing", "Valence"), range=c(0, 6), to=c(0,1)) |>
datawizard::rescale(select= c("Realness"), range=c(-3,3), to=c(0,1)) |>
datawizardmutate(Condition = case_when(
== "Fiction" ~ "AI-Generated",
Condition == "Reality" ~ "Photograph"
Condition |>
)) mutate(Condition = fct_relevel(Condition, "Photograph", "AI-Generated"),
Gender = fct_relevel(Gender, "Male", "Female"),
SexualOrientation = fct_relevel(SexualOrientation, "Heterosexual", "Homosexual", "Bisexual"),
PornFrequency = as.numeric(as.factor(COPS_Frequency)),
SexualActivity_num = as.numeric(as.factor(SexualActivity)),
ConditionBelief = case_when(
== "Photograph" & Realness > 0.5 ~ "True",
Condition == "AI-Generated" & Realness < 0.5 ~ "True",
Condition .default = "False",
|>
)) rename(AllRealConfidence = "Feedback_AllRealConfidence",
AllFakeConfidence = "Feedback_AllFakeConfidence",
Enjoyment = "Feedback_Enjoyment"
|>
)mutate(across(starts_with("Feedback_"), as.factor)) |>
mutate(ConditionBelief = as.factor(ConditionBelief)) |>
mutate(StimuliType = case_when(
grepl("couple", Stimulus, ignore.case = TRUE) ~ "Couple",
TRUE ~ "Individual")) |>
mutate(StimuliType = fct_relevel(StimuliType, "Individual", "Couple"))
<- function(model, effects="fixed", filter=NULL) {
results_table if("marginaleffects" %in% class(model)) {
|>
model ::parameters() |>
parametersas.data.frame() |>
select(-Parameter, -SE, -S, z=Statistic) |>
::format_table() |>
insight::display()
parameterselse {
} display(parameters::parameters(model, effects=effects, keep=filter))
} }
$BAIT_Videos <- (df$BAIT_VideosRealistic + (1 - df$BAIT_VideosIssues)) / 2
df
$BAIT_Visual = (df$BAIT_ImagesRealistic + (1 - df$BAIT_ImagesIssues) + df$BAIT_ImitatingReality + df$BAIT_EnvironmentReal) / 4
df
$BAIT_Text = (df$BAIT_TextRealistic + (1 - df$BAIT_TextIssues)) / 2
df
$BAIT_Negative <- (df$BAIT_Worry + df$BAIT_Dangerous)/2
df
$BAIT_Positive <- (df$BAIT_Exciting + df$BAIT_Benefit)/2 df
This section is about selecting the best model. Notably, all the stimuli presented are of an erotic nature. Note that variables were rescaled to [0,1] when fitting the models and that the stimuli presented to participants was assigned according to their self-rated sexuality, making all stimuli relevant to participants.
To summarise, women rate stimuli on average significantly lower in arousal, enticiment and valence than men. There was no difference between heterosexual, homosexual, and bisexual individuals within each gender on subjective ratings.
In general, males exhibited greater variability in their arousal ratings, while females tended to provide more lower arousal ratings.
The pattern of arousal ratings for images that participants believed to be either AI-generated or photos (i.e., initially labeled as photos and later rated as photos, or initially labeled as AI and later rated as AI), as well as for images where participants disagreed with the original labels, was generally similar within genders. However, between genders, women tended to provide more low arousal ratings than men.
<- df |>
arousal ggplot(aes(x=Arousal, fill = Gender)) +
geom_bar() +
scale_y_sqrt(expand = c(0, 0)) +
scale_x_continuous(
breaks = c(0, 1),
labels = c("Not at all","Very much")) +
labs(title = "Arousal", ) +
facet_wrap(Gender~SexualOrientation) +
scale_fill_manual(values=c("Male"="#E91E63", "Female"="#FF9800"), guide="none") +
theme_abyss() +
theme(plot.title = element_text(hjust = 0.5, face="bold"))
arousal
|>
df mutate(ConditionBelief = as.factor(ConditionBelief)) |>
mutate(ConditionBelief = case_when(
== "False" ~ "Not Believed",
ConditionBelief == "True" ~ "Believed",)) |>
ConditionBelief ggplot(aes(x=Arousal, fill=Gender)) +
geom_bar(position = "identity") +
scale_x_continuous(
breaks = c(0, 1),
labels = c("Not at all","Very much")) +
facet_grid(Gender~ConditionBelief, scales="free_y") +
scale_color_manual(values=c("red", "white"), guide="none") +
scale_fill_manual(values=c("Male"="#E91E63", "Female"="#FF9800"), guide="none") +
# scale_y_sqrt(expand = c(0, 0)) +
labs(title = "Arousal Ratings for Images Based on Belief in Original Labels") +
theme_abyss() +
theme(plot.title = element_text(hjust = 0.5, face="bold"))
# Get a sense of Random Factors
<- glmmTMB::glmmTMB(Arousal ~ Gender + (1|Participant), data=df)
m1 <- glmmTMB::glmmTMB(Arousal ~ Gender + (1|Participant) + (1|Stimulus ), data=df)
m2 <- glmmTMB::glmmTMB(Arousal ~ Gender + (1|Participant) + (1+Gender|Stimulus ), data=df)
m3 <- glmmTMB::glmmTMB(Arousal ~ Gender/SexualOrientation + (1|Participant), data=df)
m4 <- glmmTMB::glmmTMB(Arousal ~ Gender/SexualOrientation + (1|Participant) + (1|Stimulus ), data=df)
m5 <- glmmTMB::glmmTMB(Arousal ~ Gender/SexualOrientation + (1|Participant) + (1+Gender|Stimulus ), data=df)
m6
test_bf(m1,m2, m3, m4, m5,m6)
compare_performance(m1, m2, m3, m4, m5, m6)
# Model m3, which includes random intercepts for Participants and both random intercepts and slopes for Gender at the Stimulus level, seems to be the best
This model evaluate ths the effects of Gender and Sexual Orientation on Arousal, accounting for random variability due to participants (i.e., random effects). The analysis revealed that on average women rate erotic stimuli significantly lower in arousal than men. There was no difference between heterosexual, homosexual, and bisexual individuals within each gender on arousal ratings.
<- glmmTMB::glmmTMB(Arousal ~ Gender/ SexualOrientation + (1|Participant),
m_a data=df, family=glmmTMB::ordbeta(),
control = glmmTMB::glmmTMBControl(parallel = 8))
# control = glmmTMB::glmmTMBControl(optimizer=stats::optim, # nlminb, optim
# optArgs = list(method = "BFGS"), #Nelder-Mead, BFGS, CG
# parallel = 8))
results_table(m_a)
Parameter | Coefficient | SE | 95% CI | z | p |
---|---|---|---|---|---|
(Intercept) | 0.08 | 0.07 | (-0.07, 0.22) | 1.05 | 0.295 |
Gender (Female) | -0.57 | 0.11 | (-0.78, -0.36) | -5.34 | < .001 |
Gender (Male) × SexualOrientationHomosexual | -0.08 | 0.29 | (-0.65, 0.49) | -0.27 | 0.787 |
Gender (Female) × SexualOrientationHomosexual | 0.16 | 0.49 | (-0.81, 1.13) | 0.32 | 0.746 |
Gender (Male) × SexualOrientationBisexual | -0.04 | 0.27 | (-0.57, 0.49) | -0.16 | 0.872 |
Gender (Female) × SexualOrientationBisexual | 0.27 | 0.21 | (-0.15, 0.69) | 1.24 | 0.215 |
estimate_relation(m_a) |>
ggplot(aes(x=Gender, y=Predicted)) +
geom_pointrange(aes(ymin=CI_low, ymax=CI_high, color = Gender), position=position_dodge(width=0.5)) +
scale_color_manual(values=c("Male"="#E91E63", "Female"="#FF9800"), guide="none") + labs(y="Arousal") +
facet_wrap(~SexualOrientation) +
theme_abyss()
In general, males tended to rate images higher in enticement more often than females.
Enticing ratings for images where participants believed in the original labels, as well as for those where they disagreed with the labels, were similar for within genders, with males providing higher ratings of enticement.
For females, although a similar pattern was observed, they tended to provide more lower enticement ratings, particularly for images where they disagreed with the original labels.
<- df |>
enticiment ggplot(aes(x=Enticing, fill = Gender)) +
geom_bar() +
scale_y_sqrt(expand = c(0, 0)) +
scale_x_continuous(
breaks = c(0, 1),
labels = c("Not at all","Very much")) +
labs(title = "Enticement", ) +
facet_wrap(Gender~SexualOrientation) +
scale_fill_manual(values=c("Male"="#E91E63", "Female"="#FF9800"), guide="none") +
theme_abyss() +
theme(plot.title = element_text(hjust = 0.5, face="bold"))
enticiment
|>
df mutate(ConditionBelief = as.factor(ConditionBelief)) |>
mutate(ConditionBelief = case_when(
== "False" ~ "Not Believed",
ConditionBelief == "True" ~ "Believed",)) |>
ConditionBelief ggplot(aes(x=Enticing, fill=Gender)) +
geom_bar(position = "identity", binwidth = 0.5) +
scale_x_continuous(
breaks = c(0, 1),
labels = c("Not at all","Very much")) +
facet_grid(Gender~ConditionBelief, scales="free_y") +
scale_fill_manual(values=c("Female"="#E91E63", "Male"="#FF9800"), guide="none") +
# scale_y_sqrt(expand = c(0, 0)) +
labs(title = "Enticement Ratings for Images Based on Belief in Original Labels") +
theme_abyss() +
theme(plot.title = element_text(hjust = 0.5, face="bold"))
Warning in geom_bar(position = "identity", binwidth = 0.5): Ignoring unknown parameters: `binwidth`
This model evaluate ths the effects of Gender on Enticement, accounting for random variability due to participants (i.e., random effects). The analysis revealed that on average women rate erotic stimuli significantly lower in enticiment than men. There was no difference between heterosexual, homosexual, and bisexual individuals within each gender on enticement ratings.
<- glmmTMB::glmmTMB(Enticing ~ Gender/SexualOrientation + (1|Participant),
m_e data=df,family=glmmTMB::ordbeta(),
control = glmmTMB::glmmTMBControl(parallel = 8))
# control = glmmTMB::glmmTMBControl(optimizer=stats::optim, # nlminb, optim
# optArgs = list(method = "BFGS"), #Nelder-Mead, BFGS, CG
# parallel = 8))
results_table(m_e)
Parameter | Coefficient | SE | 95% CI | z | p |
---|---|---|---|---|---|
(Intercept) | 0.26 | 0.06 | (0.14, 0.38) | 4.23 | < .001 |
Gender (Female) | -0.42 | 0.09 | (-0.59, -0.25) | -4.73 | < .001 |
Gender (Male) × SexualOrientationHomosexual | 0.06 | 0.24 | (-0.42, 0.54) | 0.25 | 0.801 |
Gender (Female) × SexualOrientationHomosexual | 0.08 | 0.41 | (-0.72, 0.89) | 0.20 | 0.842 |
Gender (Male) × SexualOrientationBisexual | 0.12 | 0.23 | (-0.33, 0.56) | 0.51 | 0.609 |
Gender (Female) × SexualOrientationBisexual | 0.14 | 0.18 | (-0.21, 0.49) | 0.78 | 0.437 |
estimate_relation(m_e) |>
ggplot(aes(x=Gender, y=Predicted)) +
geom_pointrange(aes(ymin=CI_low, ymax=CI_high, color = Gender), position=position_dodge(width=0.5)) +
scale_color_manual(values=c("Male"="#E91E63", "Female"="#FF9800"), guide="none") +
facet_wrap(~SexualOrientation) +
labs(y="Enticement") +
theme_abyss()
In general, males tended to assign higher valence ratings to images more frequently. Females, on the other hand, showed higher frequencies of ratings in the middle and lower ranges of the valence scale.
The pattern of valence ratings for images, whether believed or not believed, was similar within genders, with ratings for believed images closely resembling those for non-believed images.
<- df |>
valence ggplot(aes(x=Valence, fill = Gender)) +
geom_bar() +
scale_y_sqrt(expand = c(0, 0)) +
scale_x_continuous(
breaks = c(0, 1),
labels = c("Unplesant","Pleasant")) +
scale_fill_manual(values=c("Male"="#E91E63", "Female"="#FF9800"), guide="none") +
labs(title = "Valence", ) +
facet_wrap(Gender~SexualOrientation) +
theme_abyss() +
theme(plot.title = element_text(hjust = 0.5, face="bold"))
valence
|>
df mutate(ConditionBelief = as.factor(ConditionBelief)) |>
mutate(ConditionBelief = case_when(
== "False" ~ "Not Believed",
ConditionBelief == "True" ~ "Believed",)) |>
ConditionBelief ggplot(aes(x=Valence, fill=Gender)) +
geom_bar(position = "identity", binwidth = 0.5) +
scale_x_continuous(
breaks = c(0, 1),
labels = c("Unplesant","Pleasant")) +
facet_grid(Gender~ConditionBelief, scales="free_y") +
scale_fill_manual(values=c("Female"="#E91E63", "Male"="#FF9800"), guide="none") +
# scale_y_sqrt(expand = c(0, 0)) +
labs(title = "Valence to Ratings for Images Based on Belief in Original Labels") +
theme_abyss() +
theme(plot.title = element_text(hjust = 0.5, face="bold"))
Warning in geom_bar(position = "identity", binwidth = 0.5): Ignoring unknown parameters: `binwidth`
This model evaluate ths the effects of Gender on valence, accounting for random variability due to participants. The analysis revealed that on average women rate erotic stimuli significantly lower in valence than men. There was no difference between heterosexual, homosexual, and bisexual individuals within each gender on arousal ratings.
<- glmmTMB::glmmTMB(Valence ~ Gender/SexualOrientation+ (1|Participant), family=glmmTMB::ordbeta(),
m_v data=df,
control = glmmTMB::glmmTMBControl(parallel = 8))
# control = glmmTMB::glmmTMBControl(optimizer=stats::optim, # nlminb, optim
# optArgs = list(method = "BFGS"), #Nelder-Mead, BFGS, CG
# parallel = 8))
results_table(m_v)
Parameter | Coefficient | SE | 95% CI | z | p |
---|---|---|---|---|---|
(Intercept) | 0.38 | 0.06 | (0.27, 0.49) | 6.84 | < .001 |
Gender (Female) | -0.33 | 0.08 | (-0.49, -0.17) | -4.07 | < .001 |
Gender (Male) × SexualOrientationHomosexual | -0.08 | 0.22 | (-0.51, 0.35) | -0.37 | 0.711 |
Gender (Female) × SexualOrientationHomosexual | 0.29 | 0.37 | (-0.44, 1.02) | 0.77 | 0.441 |
Gender (Male) × SexualOrientationBisexual | 0.22 | 0.21 | (-0.19, 0.62) | 1.06 | 0.290 |
Gender (Female) × SexualOrientationBisexual | 0.20 | 0.16 | (-0.12, 0.52) | 1.25 | 0.210 |
estimate_relation(m_v) |>
ggplot(aes(x=Gender, y=Predicted)) +
geom_pointrange(aes(ymin=CI_low, ymax=CI_high, color = Gender), position=position_dodge(width=0.5)) +
scale_color_manual(values=c("Male"="#E91E63", "Female"="#FF9800"), guide="none") + labs(y="Valence") +
facet_wrap(~SexualOrientation) +
theme_abyss()
<- df |>
df filter(SexualOrientation == "Heterosexual")
Due to the low number of participants self-described as Bisexual (N= 19) and Homosexual (N= 8) the main analysis will focus solely on Heterosexual individuals.
Exploratory analysis will then evaluate the effect of sexual orientation on ratings.
Similar to study1 arousal ratings for some “AI-generated” are lower then when they are presented as real photos.
<- function(df, target="Arousal") {
plot_descriptive # By item
<- df |>
order mutate(.Item_Order = paste0(Gender, "_", Stimulus)) |>
summarize(mean = mean(.data[[target]], na.rm=TRUE), .by=c("Condition", ".Item_Order")) |>
arrange(.Item_Order, desc(Condition)) |>
mutate(diff = sign(mean - lag(mean)),
Relevance = str_extract(.Item_Order, "^[^_]+"),
.Item_Order = str_extract(.Item_Order, "(?<=_).+")) |>
filter(Condition == "Photograph") |>
arrange(diff, mean)
<- df |>
p1 mutate(.Item_Order = paste0(Gender, "_", Stimulus)) |>
group_by(.Item_Order, Condition) |>
::mean_qi(.data[[target]], .width=0.95) |>
ggdistmutate(Gender = fct_rev(str_extract(.Item_Order, "^[^_]+"))) |>
left_join(order[c(".Item_Order", "diff")], by=".Item_Order") |>
mutate(.Item_Order = fct_relevel(.Item_Order, intersect(order$.Item_Order, unique(.Item_Order)))) |>
# mutate(.average = mean(.data[[target]]), .by="Item") |>
# mutate(Item = fct_reorder(Item, .average)) |>
ggplot(aes(y = .Item_Order, x=.data[[target]])) +
geom_line(aes(color=as.factor(diff)), linewidth=1) +
geom_point(aes(color=Condition), size=2) +
# ggdist::stat_slabinterval(aes(fill=Condition, color=Condition),
# .width=0.95, normalize="xy", slab_alpha=0.5) +
# ggdist::stat_histinterval(aes(fill=Condition, color=Condition),
# .width=0.95, normalize="xy", slab_alpha=0.5) +
scale_color_manual(values=c("AI-Generated"="#2196F3", "Photograph"="#F44336", "1"="#F44336", "-1"="#2196F3"),
breaks = c('AI-Generated', 'Photograph')) +
# scale_fill_manual(values=c("AI-Generated"="#2196F3", "Photograph"="#F44336")) +
scale_y_discrete(labels = function(x) str_extract(x, "(?<=_).+")) +
theme_minimal() +
theme(panel.grid.minor.x = element_blank(),
# panel.grid.major.x = element_blank(),
panel.border = element_blank(),
axis.line.x = element_blank()) +
labs(title = paste0(target, " by Item"), color="Condition", y="Items") +
facet_wrap(~Gender, scales="free_y")
# By participant
<- df |>
p2 summarize(.average = mean(.data[[target]]),
.by=c("Gender", "Participant", "Condition")) |>
pivot_wider(names_from = Condition, values_from = .average) |>
mutate(.diff = Photograph - `AI-Generated`) |>
mutate(Participant = fct_reorder(Participant, .diff)) |>
ggplot(aes(x = .diff, y=Participant)) +
geom_bar(aes(fill=.diff), stat = "identity") +
scale_fill_gradient2(guide="none", low="red", high="red", mid="blue") +
labs(title = paste0(target, " by Participant")) +
facet_wrap(~Gender, ncol=2, scales="free_y") +
theme_minimal() +
theme(panel.grid.major.y = element_blank(),
panel.border = element_blank(),
axis.line.x = element_blank(),
axis.text.y = element_blank()) +
labs(title = paste0(target, " by Participant"), x="Difference (Photograph - AI-Generated)", y="Participants")
/ p2 + plot_layout(heights = c(2, 1))
p1
}
# remove other
<- df |>
arousal_desc filter(Gender != "Other") |>
plot_descriptive("Arousal")
arousal_desc
This model examines the effect of Gender Sexual Orientation, stimuli type, and Condition on Arousal, accounting for random variability due to participants and items (i.e., random intercepts) and condition as random slope for participants.
Women rate photograph of individuals lower than males. Men show less arousal toward couple images (vs individual ones), regardless of condition. Women show greater arousal toward couple images than individual ones. Men show less arousal for AI-generated individual images compared to photographic individual images.
Looking at average slopes:
<- glmmTMB::glmmTMB(Arousal ~ Gender/ StimuliType/ Condition +
m_arousal | Participant) + (1|Stimulus), family=glmmTMB::ordbeta(),
(Conditiondata=df, control = glmmTMB::glmmTMBControl(parallel = 8))
results_table(m_arousal)
Parameter | Coefficient | SE | 95% CI | z | p |
---|---|---|---|---|---|
(Intercept) | 0.26 | 0.12 | (0.03, 0.50) | 2.17 | 0.030 |
Gender (Female) | -1.17 | 0.17 | (-1.52, -0.83) | -6.72 | < .001 |
Gender (Male) × StimuliTypeCouple | -0.39 | 0.13 | (-0.64, -0.14) | -3.02 | 0.003 |
Gender (Female) × StimuliTypeCouple | 0.60 | 0.13 | (0.34, 0.85) | 4.59 | < .001 |
Gender (Male) × StimuliTypeIndividual × ConditionAI-Generated | -0.08 | 0.04 | (-0.15, -0.01) | -2.34 | 0.019 |
Gender (Female) × StimuliTypeIndividual × ConditionAI-Generated | 0.01 | 0.05 | (-0.08, 0.10) | 0.23 | 0.815 |
Gender (Male) × StimuliTypeCouple × ConditionAI-Generated | -0.06 | 0.04 | (-0.14, 9.21e-03) | -1.72 | 0.086 |
Gender (Female) × StimuliTypeCouple × ConditionAI-Generated | -0.05 | 0.04 | (-0.13, 0.03) | -1.12 | 0.261 |
::avg_slopes(m_arousal, variables=c("Condition", "StimuliType"), by="Gender") |>
marginaleffectsresults_table()
Comparison | Gender | Coefficient | z | p | 95% CI |
---|---|---|---|---|---|
AI-Generated - Photograph | Male | -0.02 | -2.71 | 0.007 | [-0.03, 0.00] |
AI-Generated - Photograph | Female | -2.19e-03 | -0.34 | 0.735 | [-0.01, 0.01] |
Couple - Individual | Male | -0.08 | -3.01 | 0.003 | [-0.14, -0.03] |
Couple - Individual | Female | 0.11 | 4.50 | < .001 | [ 0.06, 0.16] |
This model explores whether various factors such as attitudes towards AI, knowledge about AI, frequency of porn consumption, and sexual activity moderate the relationship between gender, image relevance (specifically AI-generated versus photographs), and arousal ratings.
The analysis revealed a significant interaction effect only for positive attitudes towards AI among females. Specifically, females with higher positive attitudes towards AI rated AI-generated images as more arousing, relative to when they viewed images labelled as photographs.
No other moderators showed statistically significant effects on arousal across the interactions of gender, condition (AI-generated vs Photograph), and the respective moderators.
We also examined whether feedback moderates the relationship between gender and condition on arousal. Findings suggest that feedback moderates this relationship only for men. Specifically, males who reported finding AI-generated images as less and more arousing had lower and higher, respectively, arousal ratings for those images.
Lastly, the interaction between sexual activity and condition on Arousal levels. The three-way interaction between gender, condition (AI-Generated), and sexual activity did not reach statistical significance for either males or females, suggesting that the relationship between the AI-Generated condition and arousal ratings does not significantly vary with sexual activity levels for either gender.
<- function(df, outcome="Arousal", moderator="BAIT_Visual") {
test_moderator <- paste0(outcome, " ~ Gender / (Condition * ", moderator, ") + (Condition | Participant) + (1|Stimulus)")
f <- glmmTMB::glmmTMB(as.formula(f),
r data = df,
family=glmmTMB::ordbeta(),
control = glmmTMB::glmmTMBControl(parallel = 8)) |>
::parameters() |>
parametersas.data.frame() |>
select(-df_error, -Effects, -Group, -Component, -SE)
$Moderator <- moderator
r$Outcome <- outcome
r::format_table(r[c(7, 8), ])
insight
}
<- data.frame()
moderator_results for(m in c("BAIT_Visual", "BAIT_Text", "BAIT_ExpertAI", "BAIT_Positive", "BAIT_Negative", "PornFrequency", "SexualActivity_num")) {
<- rbind(moderator_results,
moderator_results test_moderator(df, "Arousal", m))
}
display(moderator_results)
Parameter | Coefficient | 95% CI | z | p | Moderator | Outcome |
---|---|---|---|---|---|---|
Gender [Male] × ConditionAI-Generated × BAIT Visual | 0.04 | [-0.02, 0.10] | 1.27 | 0.205 | BAIT_Visual | Arousal |
Gender [Female] × ConditionAI-Generated × BAIT Visual | 8.80e-03 | [-0.06, 0.07] | 0.26 | 0.792 | BAIT_Visual | Arousal |
Gender [Male] × ConditionAI-Generated × BAIT Text | -0.03 | [-0.07, 0.02] | -1.15 | 0.251 | BAIT_Text | Arousal |
Gender [Female] × ConditionAI-Generated × BAIT Text | -1.51e-03 | [-0.05, 0.05] | -0.06 | 0.955 | BAIT_Text | Arousal |
Gender [Male] × ConditionAI-Generated × BAIT ExpertAI | 0.02 | [-0.01, 0.06] | 1.29 | 0.198 | BAIT_ExpertAI | Arousal |
Gender [Female] × ConditionAI-Generated × BAIT ExpertAI | 0.03 | [-0.01, 0.08] | 1.56 | 0.119 | BAIT_ExpertAI | Arousal |
Gender [Male] × ConditionAI-Generated × BAIT Positive | 0.01 | [-0.04, 0.06] | 0.50 | 0.620 | BAIT_Positive | Arousal |
Gender [Female] × ConditionAI-Generated × BAIT Positive | 0.07 | [ 0.02, 0.12] | 2.69 | 0.007 | BAIT_Positive | Arousal |
Gender [Male] × ConditionAI-Generated × BAIT Negative | -0.02 | [-0.05, 0.01] | -1.07 | 0.285 | BAIT_Negative | Arousal |
Gender [Female] × ConditionAI-Generated × BAIT Negative | -0.02 | [-0.06, 0.03] | -0.77 | 0.439 | BAIT_Negative | Arousal |
Gender [Male] × ConditionAI-Generated × PornFrequency | 0.01 | [-0.02, 0.05] | 0.87 | 0.384 | PornFrequency | Arousal |
Gender [Female] × ConditionAI-Generated × PornFrequency | 0.01 | [-0.03, 0.06] | 0.56 | 0.577 | PornFrequency | Arousal |
Gender [Male] × ConditionAI-Generated × SexualActivity num | -8.01e-03 | [-0.04, 0.03] | -0.47 | 0.638 | SexualActivity_num | Arousal |
Gender [Female] × ConditionAI-Generated × SexualActivity num | -0.02 | [-0.06, 0.02] | -0.91 | 0.361 | SexualActivity_num | Arousal |
<- data.frame()
feedback_results for(m in c("Feedback_NoFacesAttractive", "Feedback_SomeFacesAttractive",
"Feedback_AIMoreAttractive", "Feedback_AILessAttractive",
"Feedback_AIMoreArousing", "Feedback_AILessArousing",
"Feedback_DiffObvious", "Feedback_DiffNone",
"Feedback_LabelsIncorrect", "Feedback_LabelsReversed",
"Feedback_AllReal", "Feedback_AllFake",
"AllRealConfidence","AllFakeConfidence" ,
"Enjoyment")) {
<- rbind(feedback_results,
feedback_results test_moderator(df, "Arousal", m))
}
Warning in finalizeTMB(TMBStruc, obj, fit, h, data.tmb.old): Model convergence problem; singular convergence (7). See vignette('troubleshooting'), help('diagnose')
Warning in finalizeTMB(TMBStruc, obj, fit, h, data.tmb.old): Model convergence problem; singular convergence (7). See vignette('troubleshooting'), help('diagnose')
display(feedback_results)
Parameter | Coefficient | 95% CI | z | p | Moderator | Outcome |
---|---|---|---|---|---|---|
Gender [Male] × ConditionAI-Generated × Feedback NoFacesAttractiveTrue | 0.09 | [-0.18, 0.35] | 0.66 | 0.511 | Feedback_NoFacesAttractive | Arousal |
Gender [Female] × ConditionAI-Generated × Feedback NoFacesAttractiveTrue | -0.31 | [-0.58, -0.03] | -2.19 | 0.029 | Feedback_NoFacesAttractive | Arousal |
Gender [Male] × ConditionAI-Generated × Feedback SomeFacesAttractiveTrue | -0.05 | [-0.15, 0.06] | -0.81 | 0.416 | Feedback_SomeFacesAttractive | Arousal |
Gender [Female] × ConditionAI-Generated × Feedback SomeFacesAttractiveTrue | 0.07 | [-0.06, 0.20] | 1.10 | 0.272 | Feedback_SomeFacesAttractive | Arousal |
Gender [Male] × ConditionAI-Generated × Feedback AIMoreAttractiveTrue | 0.14 | [ 0.01, 0.28] | 2.12 | 0.034 | Feedback_AIMoreAttractive | Arousal |
Gender [Female] × ConditionAI-Generated × Feedback AIMoreAttractiveTrue | 0.06 | [-0.09, 0.20] | 0.76 | 0.448 | Feedback_AIMoreAttractive | Arousal |
Gender [Male] × ConditionAI-Generated × Feedback AILessAttractiveTrue | -0.18 | [-0.36, 0.00] | -1.92 | 0.054 | Feedback_AILessAttractive | Arousal |
Gender [Female] × ConditionAI-Generated × Feedback AILessAttractiveTrue | 0.03 | [-0.18, 0.24] | 0.29 | 0.772 | Feedback_AILessAttractive | Arousal |
Gender [Male] × ConditionAI-Generated × Feedback AIMoreArousingTrue | 0.09 | [-0.12, 0.29] | 0.83 | 0.407 | Feedback_AIMoreArousing | Arousal |
Gender [Female] × ConditionAI-Generated × Feedback AIMoreArousingTrue | -1.92e-03 | [-0.35, 0.35] | -0.01 | 0.991 | Feedback_AIMoreArousing | Arousal |
Gender [Male] × ConditionAI-Generated × Feedback AILessArousingTrue | 0.11 | [-0.10, 0.31] | 0.99 | 0.322 | Feedback_AILessArousing | Arousal |
Gender [Female] × ConditionAI-Generated × Feedback AILessArousingTrue | 0.07 | [-0.21, 0.36] | 0.51 | 0.608 | Feedback_AILessArousing | Arousal |
Gender [Male] × ConditionAI-Generated × Feedback DiffObviousTrue | 1.08e-03 | [-0.23, 0.23] | 9.10e-03 | 0.993 | Feedback_DiffObvious | Arousal |
Gender [Female] × ConditionAI-Generated × Feedback DiffObviousTrue | -0.19 | [-0.49, 0.10] | -1.27 | 0.203 | Feedback_DiffObvious | Arousal |
Gender [Male] × ConditionAI-Generated × Feedback DiffNoneTrue | 0.01 | [-0.10, 0.12] | 0.25 | 0.806 | Feedback_DiffNone | Arousal |
Gender [Female] × ConditionAI-Generated × Feedback DiffNoneTrue | 0.02 | [-0.12, 0.15] | 0.25 | 0.804 | Feedback_DiffNone | Arousal |
Gender [Male] × ConditionAI-Generated × Feedback LabelsIncorrectTrue | -0.06 | [-0.19, 0.07] | -0.92 | 0.359 | Feedback_LabelsIncorrect | Arousal |
Gender [Female] × ConditionAI-Generated × Feedback LabelsIncorrectTrue | 0.11 | [-0.03, 0.26] | 1.50 | 0.133 | Feedback_LabelsIncorrect | Arousal |
Gender [Male] × ConditionAI-Generated × Feedback LabelsReversedTrue | 0.20 | [-0.05, 0.46] | 1.54 | 0.122 | Feedback_LabelsReversed | Arousal |
Gender [Female] × ConditionAI-Generated × Feedback LabelsReversedTrue | -0.13 | [-0.47, 0.21] | -0.77 | 0.439 | Feedback_LabelsReversed | Arousal |
Gender [Male] × ConditionAI-Generated × Feedback AllRealTrue | 3.71e-04 | [-0.11, 0.12] | 6.31e-03 | 0.995 | Feedback_AllReal | Arousal |
Gender [Female] × ConditionAI-Generated × Feedback AllRealTrue | 0.01 | [-0.12, 0.15] | 0.22 | 0.827 | Feedback_AllReal | Arousal |
Gender [Male] × ConditionAI-Generated × Feedback AllFakeTrue | 0.14 | [-0.09, 0.36] | 1.16 | 0.244 | Feedback_AllFake | Arousal |
Gender [Female] × ConditionAI-Generated × Feedback AllFakeTrue | -0.12 | [-0.43, 0.18] | -0.81 | 0.417 | Feedback_AllFake | Arousal |
Gender [Male] × ConditionAI-Generated × AllRealConfidence | -5.04e-03 | [-0.07, 0.06] | -0.14 | 0.887 | AllRealConfidence | Arousal |
Gender [Female] × ConditionAI-Generated × AllRealConfidence | 0.02 | [-0.06, 0.09] | 0.41 | 0.678 | AllRealConfidence | Arousal |
Gender [Male] × ConditionAI-Generated × AllFakeConfidence | 0.04 | [-0.23, 0.30] | 0.26 | 0.798 | AllFakeConfidence | Arousal |
Gender [Female] × ConditionAI-Generated × AllFakeConfidence | -0.10 | [-0.48, 0.27] | -0.54 | 0.592 | AllFakeConfidence | Arousal |
Gender [Male] × ConditionAI-Generated × Enjoyment | -2.76e-03 | [-0.09, 0.09] | -0.06 | 0.952 | Enjoyment | Arousal |
Gender [Female] × ConditionAI-Generated × Enjoyment | 0.02 | [-0.06, 0.09] | 0.43 | 0.664 | Enjoyment | Arousal |
<- glmmTMB::glmmTMB(Arousal ~ Gender / (Condition * SexualActivity_num) + (Condition | Participant) + (1|Stimulus),
m data=filter(df, ConditionBelief == "True"),
family=glmmTMB::ordbeta(),
control = glmmTMB::glmmTMBControl(parallel = 8))
results_table(m)
Parameter | Coefficient | SE | 95% CI | z | p |
---|---|---|---|---|---|
(Intercept) | -0.20 | 0.18 | (-0.55, 0.14) | -1.15 | 0.252 |
Gender (Female) | -0.30 | 0.26 | (-0.81, 0.21) | -1.16 | 0.247 |
Gender (Male) × ConditionAI-Generated | -0.29 | 0.09 | (-0.47, -0.12) | -3.35 | < .001 |
Gender (Female) × ConditionAI-Generated | -0.23 | 0.13 | (-0.48, 0.02) | -1.82 | 0.069 |
Gender (Male) × SexualActivity num | 0.04 | 0.05 | (-0.06, 0.13) | 0.78 | 0.438 |
Gender (Female) × SexualActivity num | 0.05 | 0.05 | (-0.06, 0.16) | 0.89 | 0.373 |
Gender (Male) × ConditionAI-Generated × SexualActivity num | -3.09e-03 | 0.03 | (-0.05, 0.05) | -0.12 | 0.905 |
Gender (Female) × ConditionAI-Generated × SexualActivity num | 0.03 | 0.03 | (-0.04, 0.10) | 0.90 | 0.366 |
<- estimate_relation(m, length=20) |>
sex_act_plotggplot(aes(x=SexualActivity_num, y=Predicted)) +
geom_ribbon(aes(ymin=CI_low, ymax=CI_high, fill=Condition), alpha=0.2) +
geom_line(aes(color=Condition)) +
facet_grid(~Gender)
sex_act_plot
<- glmmTMB::glmmTMB(Arousal ~ Gender / StimuliType/Condition + (Condition|Participant) + (Condition|Stimulus),
m data=filter(df, ConditionBelief == "True"),
family=glmmTMB::ordbeta(),
control = glmmTMB::glmmTMBControl(parallel = 8))
results_table(m)
Parameter | Coefficient | SE | 95% CI | z | p |
---|---|---|---|---|---|
(Intercept) | 0.37 | 0.12 | (0.13, 0.61) | 3.02 | 0.002 |
Gender (Female) | -1.26 | 0.18 | (-1.61, -0.91) | -7.05 | < .001 |
Gender (Male) × StimuliTypeCouple | -0.45 | 0.13 | (-0.71, -0.19) | -3.35 | < .001 |
Gender (Female) × StimuliTypeCouple | 0.62 | 0.14 | (0.35, 0.89) | 4.45 | < .001 |
Gender (Male) × StimuliTypeIndividual × ConditionAI-Generated | -0.31 | 0.06 | (-0.43, -0.20) | -5.38 | < .001 |
Gender (Female) × StimuliTypeIndividual × ConditionAI-Generated | -0.03 | 0.08 | (-0.18, 0.12) | -0.39 | 0.696 |
Gender (Male) × StimuliTypeCouple × ConditionAI-Generated | -0.31 | 0.06 | (-0.44, -0.19) | -4.91 | < .001 |
Gender (Female) × StimuliTypeCouple × ConditionAI-Generated | -0.17 | 0.07 | (-0.31, -0.03) | -2.39 | 0.017 |
<- data.frame()
moderator_believed for(m in c("BAIT_Visual", "BAIT_Text", "BAIT_ExpertAI",
"BAIT_Positive", "BAIT_Negative",
"PornFrequency", "SexualActivity",
"Feedback_DiffObvious", "Feedback_DiffNone",
"Feedback_AIMoreArousing", "Feedback_AILessArousing",
"Feedback_AIMoreAttractive", "Feedback_AILessAttractive",
"Feedback_LabelsIncorrect", "Feedback_LabelsReversed")) {
<- rbind(moderator_believed,
moderator_believed test_moderator(filter(df, ConditionBelief == "True"), "Arousal", m))
}
display(filter(moderator_believed, p < .1))
Parameter | Coefficient | 95% CI | z | p | Moderator | Outcome |
---|---|---|---|---|---|---|
Gender [Female] × ConditionAI-Generated × PornFrequency | 0.06 | [-0.01, 0.13] | 1.65 | 0.099 | PornFrequency | Arousal |
Gender [Female] × SexualActivitywithin the last 3 days | 0.50 | [ 0.02, 0.98] | 2.03 | 0.042 | SexualActivity | Arousal |
Gender [Male] × ConditionAI-Generated × Feedback AIMoreArousingTrue | 0.25 | [-0.04, 0.54] | 1.72 | 0.086 | Feedback_AIMoreArousing | Arousal |
Enticment ratings, for some images, differ by whether the images were preceeded by ‘photograph’ or by ‘AI-generated’.
<- plot_descriptive(df, "Enticing")
enticement_desc enticement_desc
This model examines how Gender, Stimuli Type and Condition influence enticement ratings, treating participant and items as random intercepts.
Women rated images as less enticing than men overall. They rated couple images as more enticing than individual images. Men, on the other hand, rated couple images as less enticing. Men also rated AI-generated images as significantly less enticing than photographs, both for images of individual and couple stimuli. In contrast, women did not significantly differentiate between AI and photographic images in terms of enticement.
Looking at the average slopes, both genders rate Ai-generated conditions lower in enticement, although this effect is only significant for men.
<- glmmTMB::glmmTMB(Enticing ~ Gender / StimuliType/ Condition +
m_enticement | Participant) + (1|Stimulus),
(Condition data=df, family=glmmTMB::ordbeta(),
control = glmmTMB::glmmTMBControl(parallel = 8))
results_table(m_enticement)
Parameter | Coefficient | SE | 95% CI | z | p |
---|---|---|---|---|---|
(Intercept) | 0.50 | 0.10 | (0.31, 0.70) | 5.03 | < .001 |
Gender (Female) | -0.98 | 0.14 | (-1.26, -0.70) | -6.83 | < .001 |
Gender (Male) × StimuliTypeCouple | -0.38 | 0.11 | (-0.59, -0.17) | -3.61 | < .001 |
Gender (Female) × StimuliTypeCouple | 0.53 | 0.11 | (0.32, 0.74) | 4.95 | < .001 |
Gender (Male) × StimuliTypeIndividual × ConditionAI-Generated | -0.10 | 0.04 | (-0.17, -0.03) | -2.83 | 0.005 |
Gender (Female) × StimuliTypeIndividual × ConditionAI-Generated | 0.05 | 0.04 | (-0.04, 0.13) | 1.12 | 0.262 |
Gender (Male) × StimuliTypeCouple × ConditionAI-Generated | -0.08 | 0.04 | (-0.15, -0.01) | -2.28 | 0.022 |
Gender (Female) × StimuliTypeCouple × ConditionAI-Generated | -0.04 | 0.04 | (-0.12, 0.03) | -1.14 | 0.253 |
::avg_slopes(m_enticement, variables="Condition", by="Gender") |>
marginaleffectsresults_table()
Comparison | Gender | Coefficient | z | p | 95% CI |
---|---|---|---|---|---|
AI-Generated - Photograph | Male | -0.02 | -3.33 | < .001 | [-0.03, -0.01] |
AI-Generated - Photograph | Female | 1.50e-04 | 0.02 | 0.982 | [-0.01, 0.01] |
We examined whether attitudes towards AI, porn frequency, and sexual activity moderated the relationship between the predictors (sex, relevance, condition) and enticement ratings. The results showed that enticing ratings for images labeled AI-generated were moderated by the feedback reporting attitudes towards AI, but this was only significant for women. Specifically, women who reported having more positive attitudes towards AI, rated these images higher in arousal compared to images labeled as photographs.
Looking at feedback as a moderator, the results showed that enticement ratings for images labelled as AI-Generated were moderated by the feedback that AI is less attractive for males, and that difference between the AI-Generated images and real photos is obvious for females. Specifically,
Lastly, the interaction between sexual activity and condition on enticement, suggests that enticement ratings do not significantly differ with sexual activity levels for either gender.
for(m in c("BAIT_Visual", "BAIT_Text", "BAIT_ExpertAI",
"BAIT_Positive", "BAIT_Negative",
"PornFrequency", "SexualActivity")) {
<- rbind(moderator_results,
moderator_results test_moderator(df, "Enticing", m))
}
display(filter(moderator_results, Outcome == "Enticing"))
Parameter | Coefficient | 95% CI | z | p | Moderator | Outcome |
---|---|---|---|---|---|---|
Gender [Male] × ConditionAI-Generated × BAIT Visual | 0.03 | [-0.03, 0.09] | 0.92 | 0.355 | BAIT_Visual | Enticing |
Gender [Female] × ConditionAI-Generated × BAIT Visual | 2.94e-03 | [-0.05, 0.06] | 0.10 | 0.919 | BAIT_Visual | Enticing |
Gender [Male] × ConditionAI-Generated × BAIT Text | -0.01 | [-0.06, 0.03] | -0.47 | 0.639 | BAIT_Text | Enticing |
Gender [Female] × ConditionAI-Generated × BAIT Text | -8.19e-04 | [-0.05, 0.05] | -0.03 | 0.973 | BAIT_Text | Enticing |
Gender [Male] × ConditionAI-Generated × BAIT ExpertAI | 0.02 | [-0.01, 0.05] | 1.13 | 0.257 | BAIT_ExpertAI | Enticing |
Gender [Female] × ConditionAI-Generated × BAIT ExpertAI | 2.02e-03 | [-0.04, 0.04] | 0.10 | 0.921 | BAIT_ExpertAI | Enticing |
Gender [Male] × ConditionAI-Generated × BAIT Positive | 0.01 | [-0.04, 0.06] | 0.49 | 0.624 | BAIT_Positive | Enticing |
Gender [Female] × ConditionAI-Generated × BAIT Positive | 0.05 | [ 0.00, 0.09] | 1.96 | 0.050 | BAIT_Positive | Enticing |
Gender [Male] × ConditionAI-Generated × BAIT Negative | -0.04 | [-0.07, -0.01] | -2.38 | 0.017 | BAIT_Negative | Enticing |
Gender [Female] × ConditionAI-Generated × BAIT Negative | 1.45e-03 | [-0.04, 0.04] | 0.07 | 0.943 | BAIT_Negative | Enticing |
Gender [Male] × ConditionAI-Generated × PornFrequency | -3.50e-03 | [-0.04, 0.03] | -0.21 | 0.835 | PornFrequency | Enticing |
Gender [Female] × ConditionAI-Generated × PornFrequency | -0.01 | [-0.06, 0.03] | -0.62 | 0.533 | PornFrequency | Enticing |
Gender [Male] × SexualActivitywithin the last 3 days | -2.15e-03 | [-0.33, 0.33] | -0.01 | 0.990 | SexualActivity | Enticing |
Gender [Female] × SexualActivitywithin the last 3 days | 0.51 | [ 0.11, 0.92] | 2.49 | 0.013 | SexualActivity | Enticing |
for(m in c("Feedback_NoFacesAttractive", "Feedback_SomeFacesAttractive",
"Feedback_AIMoreAttractive", "Feedback_AILessAttractive",
"Feedback_AIMoreArousing", "Feedback_AILessArousing",
"Feedback_DiffObvious", "Feedback_DiffNone",
"Feedback_LabelsIncorrect", "Feedback_LabelsReversed",
"Feedback_AllReal", "Feedback_AllFake",
"AllRealConfidence","AllFakeConfidence" ,
"Enjoyment")) {
<- rbind(feedback_results,
feedback_results test_moderator(df, "Enticing", m))
}
Warning in finalizeTMB(TMBStruc, obj, fit, h, data.tmb.old): Model convergence problem; singular convergence (7). See vignette('troubleshooting'), help('diagnose')
display(filter(feedback_results, Outcome == "Enticing"))
Parameter | Coefficient | 95% CI | z | p | Moderator | Outcome |
---|---|---|---|---|---|---|
Gender [Male] × ConditionAI-Generated × Feedback NoFacesAttractiveTrue | 0.05 | [-0.22, 0.31] | 0.36 | 0.716 | Feedback_NoFacesAttractive | Enticing |
Gender [Female] × ConditionAI-Generated × Feedback NoFacesAttractiveTrue | -0.09 | [-0.33, 0.16] | -0.71 | 0.478 | Feedback_NoFacesAttractive | Enticing |
Gender [Male] × ConditionAI-Generated × Feedback SomeFacesAttractiveTrue | -8.85e-03 | [-0.12, 0.10] | -0.16 | 0.874 | Feedback_SomeFacesAttractive | Enticing |
Gender [Female] × ConditionAI-Generated × Feedback SomeFacesAttractiveTrue | -0.02 | [-0.14, 0.10] | -0.28 | 0.780 | Feedback_SomeFacesAttractive | Enticing |
Gender [Male] × ConditionAI-Generated × Feedback AIMoreAttractiveTrue | 0.07 | [-0.06, 0.21] | 1.07 | 0.285 | Feedback_AIMoreAttractive | Enticing |
Gender [Female] × ConditionAI-Generated × Feedback AIMoreAttractiveTrue | -8.89e-03 | [-0.15, 0.13] | -0.13 | 0.900 | Feedback_AIMoreAttractive | Enticing |
Gender [Male] × ConditionAI-Generated × Feedback AILessAttractiveTrue | -0.18 | [-0.36, 0.01] | -1.88 | 0.060 | Feedback_AILessAttractive | Enticing |
Gender [Female] × ConditionAI-Generated × Feedback AILessAttractiveTrue | 3.67e-03 | [-0.19, 0.20] | 0.04 | 0.970 | Feedback_AILessAttractive | Enticing |
Gender [Male] × ConditionAI-Generated × Feedback AIMoreArousingTrue | 0.03 | [-0.17, 0.23] | 0.27 | 0.784 | Feedback_AIMoreArousing | Enticing |
Gender [Female] × ConditionAI-Generated × Feedback AIMoreArousingTrue | -0.09 | [-0.41, 0.23] | -0.55 | 0.585 | Feedback_AIMoreArousing | Enticing |
Gender [Male] × ConditionAI-Generated × Feedback AILessArousingTrue | 0.04 | [-0.18, 0.25] | 0.33 | 0.739 | Feedback_AILessArousing | Enticing |
Gender [Female] × ConditionAI-Generated × Feedback AILessArousingTrue | 0.17 | [-0.07, 0.42] | 1.38 | 0.166 | Feedback_AILessArousing | Enticing |
Gender [Male] × ConditionAI-Generated × Feedback DiffObviousTrue | -0.14 | [-0.37, 0.09] | -1.17 | 0.241 | Feedback_DiffObvious | Enticing |
Gender [Female] × ConditionAI-Generated × Feedback DiffObviousTrue | -0.18 | [-0.45, 0.09] | -1.29 | 0.197 | Feedback_DiffObvious | Enticing |
Gender [Male] × ConditionAI-Generated × Feedback DiffNoneTrue | 0.04 | [-0.07, 0.15] | 0.72 | 0.470 | Feedback_DiffNone | Enticing |
Gender [Female] × ConditionAI-Generated × Feedback DiffNoneTrue | 5.57e-03 | [-0.12, 0.13] | 0.09 | 0.928 | Feedback_DiffNone | Enticing |
Gender [Male] × ConditionAI-Generated × Feedback LabelsIncorrectTrue | -0.06 | [-0.19, 0.07] | -0.84 | 0.399 | Feedback_LabelsIncorrect | Enticing |
Gender [Female] × ConditionAI-Generated × Feedback LabelsIncorrectTrue | 0.02 | [-0.12, 0.16] | 0.27 | 0.784 | Feedback_LabelsIncorrect | Enticing |
Gender [Male] × ConditionAI-Generated × Feedback LabelsReversedTrue | 0.17 | [-0.10, 0.43] | 1.25 | 0.212 | Feedback_LabelsReversed | Enticing |
Gender [Female] × ConditionAI-Generated × Feedback LabelsReversedTrue | -0.14 | [-0.46, 0.17] | -0.89 | 0.375 | Feedback_LabelsReversed | Enticing |
Gender [Male] × ConditionAI-Generated × Feedback AllRealTrue | 0.02 | [-0.09, 0.13] | 0.35 | 0.724 | Feedback_AllReal | Enticing |
Gender [Female] × ConditionAI-Generated × Feedback AllRealTrue | 0.08 | [-0.04, 0.21] | 1.37 | 0.171 | Feedback_AllReal | Enticing |
Gender [Male] × ConditionAI-Generated × Feedback AllFakeTrue | 0.21 | [-0.02, 0.44] | 1.79 | 0.073 | Feedback_AllFake | Enticing |
Gender [Female] × ConditionAI-Generated × Feedback AllFakeTrue | -3.78e-03 | [-0.28, 0.27] | -0.03 | 0.979 | Feedback_AllFake | Enticing |
Gender [Male] × ConditionAI-Generated × AllRealConfidence | -0.03 | [-0.09, 0.03] | -0.91 | 0.363 | AllRealConfidence | Enticing |
Gender [Female] × ConditionAI-Generated × AllRealConfidence | 0.01 | [-0.06, 0.08] | 0.31 | 0.758 | AllRealConfidence | Enticing |
Gender [Male] × ConditionAI-Generated × AllFakeConfidence | -5.32e-03 | [-0.29, 0.28] | -0.04 | 0.970 | AllFakeConfidence | Enticing |
Gender [Female] × ConditionAI-Generated × AllFakeConfidence | 0.03 | [-0.31, 0.37] | 0.16 | 0.870 | AllFakeConfidence | Enticing |
Gender [Male] × ConditionAI-Generated × Enjoyment | 0.04 | [-0.05, 0.13] | 0.90 | 0.369 | Enjoyment | Enticing |
Gender [Female] × ConditionAI-Generated × Enjoyment | -5.09e-03 | [-0.07, 0.06] | -0.16 | 0.873 | Enjoyment | Enticing |
<- glmmTMB::glmmTMB(Enticing ~ Gender / (Condition * SexualActivity_num) + (Condition | Participant) + (1|Stimulus),
m data=filter(df, ConditionBelief == "True"),
family=glmmTMB::ordbeta(),
control = glmmTMB::glmmTMBControl(parallel = 8))
results_table(m)
Parameter | Coefficient | SE | 95% CI | z | p |
---|---|---|---|---|---|
(Intercept) | 0.15 | 0.15 | (-0.15, 0.44) | 0.97 | 0.334 |
Gender (Female) | -0.32 | 0.22 | (-0.75, 0.12) | -1.44 | 0.150 |
Gender (Male) × ConditionAI-Generated | -0.36 | 0.10 | (-0.55, -0.17) | -3.77 | < .001 |
Gender (Female) × ConditionAI-Generated | -0.12 | 0.12 | (-0.36, 0.12) | -0.99 | 0.323 |
Gender (Male) × SexualActivity num | 0.02 | 0.04 | (-0.07, 0.10) | 0.38 | 0.707 |
Gender (Female) × SexualActivity num | 0.06 | 0.05 | (-0.03, 0.15) | 1.37 | 0.171 |
Gender (Male) × ConditionAI-Generated × SexualActivity num | 0.01 | 0.03 | (-0.04, 0.07) | 0.52 | 0.604 |
Gender (Female) × ConditionAI-Generated × SexualActivity num | 6.23e-03 | 0.03 | (-0.06, 0.07) | 0.19 | 0.852 |
<- estimate_relation(m, length=20) |>
sex_act_plot_entggplot(aes(x=SexualActivity_num, y=Predicted)) +
geom_ribbon(aes(ymin=CI_low, ymax=CI_high, fill=Condition), alpha=0.2) +
geom_line(aes(color=Condition)) +
facet_grid(~Gender)
sex_act_plot_ent
<- glmmTMB::glmmTMB(Enticing ~ Gender / Condition + (Condition| Participant) + (1|Stimulus),
m data=filter(df, ConditionBelief == "True"),
family=glmmTMB::ordbeta(),
control = glmmTMB::glmmTMBControl(parallel = 8))
results_table(m)
Parameter | Coefficient | SE | 95% CI | z | p |
---|---|---|---|---|---|
(Intercept) | 0.19 | 0.09 | (0.02, 0.37) | 2.13 | 0.033 |
Gender (Female) | -0.15 | 0.10 | (-0.35, 0.05) | -1.50 | 0.134 |
Gender (Male) × ConditionAI-Generated | -0.32 | 0.05 | (-0.41, -0.22) | -6.67 | < .001 |
Gender (Female) × ConditionAI-Generated | -0.10 | 0.05 | (-0.20, 7.43e-04) | -1.95 | 0.052 |
for(m in c("BAIT_Visual", "BAIT_Text", "BAIT_ExpertAI",
"BAIT_Positive", "BAIT_Negative", "PornFrequency", "SexualActivity",
"Feedback_DiffObvious", "Feedback_DiffNone",
"Feedback_AIMoreArousing", "Feedback_AILessArousing",
"Feedback_AIMoreAttractive", "Feedback_AILessArousing",
"Feedback_LabelsIncorrect", "Feedback_LabelsReversed")) {
<- rbind(moderator_believed,
moderator_believed test_moderator(filter(df, ConditionBelief == "True"), "Enticing", m))
}
display(filter(moderator_believed, p < .1))
Parameter | Coefficient | 95% CI | z | p | Moderator | Outcome |
---|---|---|---|---|---|---|
Gender [Female] × ConditionAI-Generated × PornFrequency | 0.06 | [-0.01, 0.13] | 1.65 | 0.099 | PornFrequency | Arousal |
Gender [Female] × SexualActivitywithin the last 3 days | 0.50 | [ 0.02, 0.98] | 2.03 | 0.042 | SexualActivity | Arousal |
Gender [Male] × ConditionAI-Generated × Feedback AIMoreArousingTrue | 0.25 | [-0.04, 0.54] | 1.72 | 0.086 | Feedback_AIMoreArousing | Arousal |
Gender [Female] × SexualActivitywithin the last 3 days | 0.53 | [ 0.13, 0.94] | 2.56 | 0.010 | SexualActivity | Enticing |
<- plot_descriptive(df, "Valence")
valence_desc valence_desc
This model examines the effect of Gender, Stimuli Type and Condition on Valence ratings, while accounting for random variability due to participants and items (i.e., random intercepts).
Women rated images overall as lower in valence than men did. They rated couple images as higher in valence than individual ones. Additionally, women rated AI-generated couple images as significantly lower in valence than photographic couple images. Men rated images of couples lower in valence and AI-images of individuals lower in valence comapred to real photos of individuals.
Looking at avergae slopes, both genders rate AI-generated images lower in valence, but this effect is only significant for males as well.
<- glmmTMB::glmmTMB(Valence ~ Gender / StimuliType/ Condition +
m_valence | Participant) + (1|Stimulus),
(Conditiondata=df, family=glmmTMB::ordbeta(),
control = glmmTMB::glmmTMBControl(parallel = 8))
results_table(m_valence)
Parameter | Coefficient | SE | 95% CI | z | p |
---|---|---|---|---|---|
(Intercept) | 0.57 | 0.08 | (0.41, 0.73) | 7.05 | < .001 |
Gender (Female) | -0.77 | 0.12 | (-0.99, -0.54) | -6.60 | < .001 |
Gender (Male) × StimuliTypeCouple | -0.27 | 0.08 | (-0.43, -0.12) | -3.39 | < .001 |
Gender (Female) × StimuliTypeCouple | 0.48 | 0.08 | (0.32, 0.64) | 5.79 | < .001 |
Gender (Male) × StimuliTypeIndividual × ConditionAI-Generated | -0.08 | 0.03 | (-0.15, -0.02) | -2.43 | 0.015 |
Gender (Female) × StimuliTypeIndividual × ConditionAI-Generated | 0.01 | 0.04 | (-0.06, 0.08) | 0.30 | 0.763 |
Gender (Male) × StimuliTypeCouple × ConditionAI-Generated | -0.04 | 0.03 | (-0.10, 0.03) | -1.15 | 0.249 |
Gender (Female) × StimuliTypeCouple × ConditionAI-Generated | -0.06 | 0.03 | (-0.13, 0.01) | -1.66 | 0.098 |
::avg_slopes(m_valence, variables="Condition", by="Gender") |>
marginaleffectsresults_table()
Comparison | Gender | Coefficient | z | p | 95% CI |
---|---|---|---|---|---|
AI-Generated - Photograph | Male | -0.01 | -2.51 | 0.012 | [-0.02, 0.00] |
AI-Generated - Photograph | Female | -6.08e-03 | -1.02 | 0.308 | [-0.02, 0.01] |
Here we look at whether the relationship between gender and condition and valence is moderated by AI-attitudes, porn frequency, and sexual activity. The results showed that enticing ratings for images labeled AI-generated were moderated by the feedback reporting attitudes towards AI, but this was only significant for women. More specifically, females who have more positive and negative attitudes towards AI rated images labelled as AI-Generated significantly higher and lower in valence compared to images labelled as photographs.
Looking at feedback as a moderator, the results show that valence ratings for images labelled AI-Generated were moderted by the feedback that the difference between AI and Photos was obvious, but only for females.
for(m in c("BAIT_Visual", "BAIT_Text", "BAIT_ExpertAI",
"BAIT_Positive", "BAIT_Negative", "PornFrequency", "SexualActivity_num")) {
<- rbind(moderator_results,
moderator_results test_moderator(df, "Valence", m))
}
display(filter(moderator_results, Outcome == "Valence"))
Parameter | Coefficient | 95% CI | z | p | Moderator | Outcome |
---|---|---|---|---|---|---|
Gender [Male] × ConditionAI-Generated × BAIT Visual | 0.04 | [-0.01, 0.09] | 1.53 | 0.127 | BAIT_Visual | Valence |
Gender [Female] × ConditionAI-Generated × BAIT Visual | 8.76e-03 | [-0.04, 0.06] | 0.35 | 0.726 | BAIT_Visual | Valence |
Gender [Male] × ConditionAI-Generated × BAIT Text | -3.72e-04 | [-0.04, 0.04] | -0.02 | 0.985 | BAIT_Text | Valence |
Gender [Female] × ConditionAI-Generated × BAIT Text | 0.02 | [-0.02, 0.06] | 0.99 | 0.323 | BAIT_Text | Valence |
Gender [Male] × ConditionAI-Generated × BAIT ExpertAI | 0.04 | [ 0.01, 0.07] | 2.51 | 0.012 | BAIT_ExpertAI | Valence |
Gender [Female] × ConditionAI-Generated × BAIT ExpertAI | 0.02 | [-0.01, 0.05] | 1.11 | 0.269 | BAIT_ExpertAI | Valence |
Gender [Male] × ConditionAI-Generated × BAIT Positive | 0.02 | [-0.02, 0.07] | 1.04 | 0.300 | BAIT_Positive | Valence |
Gender [Female] × ConditionAI-Generated × BAIT Positive | 0.03 | [-0.01, 0.07] | 1.71 | 0.087 | BAIT_Positive | Valence |
Gender [Male] × ConditionAI-Generated × BAIT Negative | -0.03 | [-0.06, 0.00] | -2.30 | 0.022 | BAIT_Negative | Valence |
Gender [Female] × ConditionAI-Generated × BAIT Negative | -0.04 | [-0.07, 0.00] | -2.24 | 0.025 | BAIT_Negative | Valence |
Gender [Male] × ConditionAI-Generated × PornFrequency | -1.16e-03 | [-0.03, 0.03] | -0.08 | 0.937 | PornFrequency | Valence |
Gender [Female] × ConditionAI-Generated × PornFrequency | -2.57e-03 | [-0.04, 0.03] | -0.14 | 0.888 | PornFrequency | Valence |
Gender [Male] × ConditionAI-Generated × SexualActivity num | -0.02 | [-0.05, 0.01] | -1.17 | 0.243 | SexualActivity_num | Valence |
Gender [Female] × ConditionAI-Generated × SexualActivity num | -0.01 | [-0.04, 0.02] | -0.70 | 0.481 | SexualActivity_num | Valence |
for(m in c("Feedback_NoFacesAttractive", "Feedback_SomeFacesAttractive",
"Feedback_AIMoreAttractive", "Feedback_AILessAttractive",
"Feedback_AIMoreArousing", "Feedback_AILessArousing",
"Feedback_DiffObvious", "Feedback_DiffNone",
"Feedback_LabelsIncorrect", "Feedback_LabelsReversed",
"Feedback_AllReal", "Feedback_AllFake",
"AllRealConfidence","AllFakeConfidence" ,
"Enjoyment")) {
<- rbind(feedback_results,
feedback_results test_moderator(df, "Valence", m))
}
Warning in finalizeTMB(TMBStruc, obj, fit, h, data.tmb.old): Model convergence problem; non-positive-definite Hessian matrix. See vignette('troubleshooting')
Warning in finalizeTMB(TMBStruc, obj, fit, h, data.tmb.old): Model convergence problem; singular convergence (7). See vignette('troubleshooting'), help('diagnose')
display(filter(feedback_results, Outcome == "Valence"))
Parameter | Coefficient | 95% CI | z | p | Moderator | Outcome |
---|---|---|---|---|---|---|
Gender [Male] × ConditionAI-Generated × Feedback NoFacesAttractiveTrue | 0.06 | [-0.17, 0.29] | 0.51 | 0.611 | Feedback_NoFacesAttractive | Valence |
Gender [Female] × ConditionAI-Generated × Feedback NoFacesAttractiveTrue | -1.47e-03 | [-0.19, 0.19] | -0.02 | 0.988 | Feedback_NoFacesAttractive | Valence |
Gender [Male] × ConditionAI-Generated × Feedback SomeFacesAttractiveTrue | 0.03 | [-0.06, 0.13] | 0.64 | 0.521 | Feedback_SomeFacesAttractive | Valence |
Gender [Female] × ConditionAI-Generated × Feedback SomeFacesAttractiveTrue | 0.06 | [-0.05, 0.16] | 1.10 | 0.270 | Feedback_SomeFacesAttractive | Valence |
Gender [Male] × ConditionAI-Generated × Feedback AIMoreAttractiveTrue | 0.13 | [ 0.01, 0.25] | 2.13 | 0.033 | Feedback_AIMoreAttractive | Valence |
Gender [Female] × ConditionAI-Generated × Feedback AIMoreAttractiveTrue | 0.06 | [-0.05, 0.18] | 1.05 | 0.293 | Feedback_AIMoreAttractive | Valence |
Gender [Male] × ConditionAI-Generated × Feedback AILessAttractiveTrue | -0.10 | [-0.26, 0.06] | -1.19 | 0.234 | Feedback_AILessAttractive | Valence |
Gender [Female] × ConditionAI-Generated × Feedback AILessAttractiveTrue | 0.05 | [-0.12, 0.22] | 0.55 | 0.579 | Feedback_AILessAttractive | Valence |
Gender [Male] × ConditionAI-Generated × Feedback AIMoreArousingTrue | -0.06 | [-0.23, 0.11] | -0.68 | 0.497 | Feedback_AIMoreArousing | Valence |
Gender [Female] × ConditionAI-Generated × Feedback AIMoreArousingTrue | -0.13 | [-0.42, 0.15] | -0.93 | 0.352 | Feedback_AIMoreArousing | Valence |
Gender [Male] × ConditionAI-Generated × Feedback AILessArousingTrue | 0.02 | [-0.17, 0.20] | 0.19 | 0.848 | Feedback_AILessArousing | Valence |
Gender [Female] × ConditionAI-Generated × Feedback AILessArousingTrue | -0.04 | [-0.23, 0.16] | -0.37 | 0.714 | Feedback_AILessArousing | Valence |
Gender [Male] × ConditionAI-Generated × Feedback DiffObviousTrue | -0.01 | [-0.21, 0.18] | -0.13 | 0.898 | Feedback_DiffObvious | Valence |
Gender [Female] × ConditionAI-Generated × Feedback DiffObviousTrue | -0.11 | [-0.36, 0.15] | -0.83 | 0.406 | Feedback_DiffObvious | Valence |
Gender [Male] × ConditionAI-Generated × Feedback DiffNoneTrue | 6.34e-03 | [-0.09, 0.10] | 0.13 | 0.895 | Feedback_DiffNone | Valence |
Gender [Female] × ConditionAI-Generated × Feedback DiffNoneTrue | 0.07 | [-0.03, 0.17] | 1.31 | 0.189 | Feedback_DiffNone | Valence |
Gender [Male] × ConditionAI-Generated × Feedback LabelsIncorrectTrue | -0.11 | [-0.22, 0.00] | -1.93 | 0.054 | Feedback_LabelsIncorrect | Valence |
Gender [Female] × ConditionAI-Generated × Feedback LabelsIncorrectTrue | 0.02 | [-0.09, 0.14] | 0.42 | 0.672 | Feedback_LabelsIncorrect | Valence |
Gender [Male] × ConditionAI-Generated × Feedback LabelsReversedTrue | 0.09 | [-0.14, 0.32] | 0.78 | 0.435 | Feedback_LabelsReversed | Valence |
Gender [Female] × ConditionAI-Generated × Feedback LabelsReversedTrue | 0.09 | [-0.16, 0.35] | 0.71 | 0.479 | Feedback_LabelsReversed | Valence |
Gender [Male] × ConditionAI-Generated × Feedback AllRealTrue | 0.07 | [-0.03, 0.17] | 1.37 | 0.172 | Feedback_AllReal | Valence |
Gender [Female] × ConditionAI-Generated × Feedback AllRealTrue | 0.10 | [ 0.00, 0.20] | 1.93 | 0.054 | Feedback_AllReal | Valence |
Gender [Male] × ConditionAI-Generated × Feedback AllFakeTrue | 0.18 | [-0.02, 0.38] | 1.79 | 0.073 | Feedback_AllFake | Valence |
Gender [Female] × ConditionAI-Generated × Feedback AllFakeTrue | -0.21 | [-0.44, 0.02] | -1.76 | 0.078 | Feedback_AllFake | Valence |
Gender [Male] × ConditionAI-Generated × AllRealConfidence | -0.03 | [-0.09, 0.03] | -1.05 | 0.294 | AllRealConfidence | Valence |
Gender [Female] × ConditionAI-Generated × AllRealConfidence | 0.03 | [-0.04, 0.10] | 0.84 | 0.400 | AllRealConfidence | Valence |
Gender [Male] × ConditionAI-Generated × AllFakeConfidence | 0.02 | [-0.27, 0.32] | 0.16 | 0.874 | AllFakeConfidence | Valence |
Gender [Female] × ConditionAI-Generated × AllFakeConfidence | 0.11 | [-0.19, 0.42] | 0.73 | 0.467 | AllFakeConfidence | Valence |
Gender [Male] × ConditionAI-Generated × Enjoyment | 0.04 | [-0.04, 0.12] | 1.02 | 0.309 | Enjoyment | Valence |
Gender [Female] × ConditionAI-Generated × Enjoyment | 9.40e-03 | [-0.04, 0.06] | 0.35 | 0.725 | Enjoyment | Valence |
<- glmmTMB::glmmTMB(Valence ~ Gender /Condition + (Condition| Participant) + (1|Stimulus),
m data=filter(df, ConditionBelief == "True"),
family=glmmTMB::ordbeta(),
control = glmmTMB::glmmTMBControl(parallel = 8))
results_table(m)
Parameter | Coefficient | SE | 95% CI | z | p |
---|---|---|---|---|---|
(Intercept) | 0.32 | 0.07 | (0.18, 0.46) | 4.46 | < .001 |
Gender (Female) | -0.09 | 0.08 | (-0.25, 0.08) | -1.03 | 0.305 |
Gender (Male) × ConditionAI-Generated | -0.24 | 0.04 | (-0.32, -0.15) | -5.59 | < .001 |
Gender (Female) × ConditionAI-Generated | -0.17 | 0.05 | (-0.26, -0.08) | -3.79 | < .001 |
for(m in c("BAIT_Visual", "BAIT_Text", "BAIT_ExpertAI",
"BAIT_Positive", "BAIT_Negative", "PornFrequency", "SexualActivity",
"Feedback_DiffObvious", "Feedback_DiffNone",
"Feedback_AIMoreArousing", "Feedback_AILessArousing",
"Feedback_AIMoreAttractive", "Feedback_AILessArousing",
"Feedback_LabelsIncorrect", "Feedback_LabelsReversed")) {
<- rbind(moderator_believed,
moderator_believed test_moderator(filter(df, ConditionBelief == "True"), "Valence", m))
}
filter(moderator_believed, p < .1)) (
Parameter Coefficient 95% CI z p Moderator Outcome
85 Gender [Female] × ConditionAI-Generated × PornFrequency 0.06 [-0.01, 0.13] 1.65 0.099 PornFrequency Arousal
86 Gender [Female] × SexualActivitywithin the last 3 days 0.50 [ 0.02, 0.98] 2.03 0.042 SexualActivity Arousal
79 Gender [Male] × ConditionAI-Generated × Feedback AIMoreArousingTrue 0.25 [-0.04, 0.54] 1.72 0.086 Feedback_AIMoreArousing Arousal
821 Gender [Female] × SexualActivitywithin the last 3 days 0.53 [ 0.13, 0.94] 2.56 0.010 SexualActivity Enticing
834 Gender [Female] × ConditionAI-Generated × BAIT Negative -0.07 [-0.12, -0.01] -2.33 0.020 BAIT_Negative Valence
836 Gender [Female] × SexualActivitywithin the last 3 days 0.37 [ 0.05, 0.70] 2.23 0.026 SexualActivity Valence
740 Gender [Male] × ConditionAI-Generated × Feedback AILessArousingTrue -1.30e-04 [-0.33, 0.33] -7.79e-04 > .999 Feedback_AILessArousing Valence
742 Gender [Male] × ConditionAI-Generated × Feedback AILessArousingTrue -1.30e-04 [-0.33, 0.33] -7.79e-04 > .999 Feedback_AILessArousing Valence
Here we combined the data for arousal, valence and enticing into an emotionality factor.
<- principal_components(df[c("Valence", "Arousal", "Enticing")], n = 2)
pca pca
# Loadings from Principal Component Analysis (no rotation)
Variable | PC1 | PC2 | Complexity
-------------------------------------
Valence | -0.89 | 0.44 | 1.46
Arousal | -0.91 | -0.37 | 1.33
Enticing | -0.95 | -0.06 | 1.01
The 2 principal components accounted for 94.67% of the total variance of the original data (PC1 = 83.46%, PC2 = 11.21%).
$Emotionality <- as.numeric(normalize(-predict(pca)$PC1))
df
<- df |>
emotionality mutate(Emotionality_Extreme = ifelse(Emotionality %in% c(0, 1), "Extreme", "Not extreme")) |>
ggplot(aes(x=Emotionality, fill = Gender)) +
geom_histogram(aes(color=Emotionality_Extreme), position = "identity", bins=20) +
facet_grid(~Gender, scales="free_y") +
scale_color_manual(values=c("red", "white"), guide="none") +
scale_fill_manual(values=c("Male"="#E91E63", "Female"="#FF9800"), guide="none") +
scale_y_sqrt(expand = c(0, 0)) +
labs(title = "Emotionality") +
theme_abyss() +
theme(plot.title = element_text(hjust = 0.5, face="bold"))
emotionality
<- plot_descriptive(df, "Emotionality")
emotionality_desc emotionality_desc
This model looks at the effect of Gender, StimuliType and Condition on Emotionality, accounting for random variability due to participants and items (i.e., random intercepts).
Females, compared to males, report significantly lower emotionality ratings for fotographs. Among males, couple stimuli are rated lower than individual stimuli.Among females, couple stimuli are rated higher than individual stimuli. For males, AI-generated individual stimuli are rated lower than human-generated ones. Females have lower ratings for AI-generated couple stimuli compared to AI-generated stimuli of individuals.
<- glmmTMB::glmmTMB(Emotionality ~ Gender /StimuliType/ Condition + (Condition| Participant) + (1|Stimulus),
m_emotionality data=df, family=glmmTMB::ordbeta(),
control = glmmTMB::glmmTMBControl(parallel = 8))
results_table(m_emotionality)
Parameter | Coefficient | SE | 95% CI | z | p |
---|---|---|---|---|---|
(Intercept) | 0.48 | 0.11 | (0.27, 0.69) | 4.55 | < .001 |
Gender (Female) | -1.11 | 0.15 | (-1.41, -0.81) | -7.28 | < .001 |
Gender (Male) × StimuliTypeCouple | -0.41 | 0.11 | (-0.63, -0.19) | -3.68 | < .001 |
Gender (Female) × StimuliTypeCouple | 0.62 | 0.11 | (0.40, 0.84) | 5.44 | < .001 |
Gender (Male) × StimuliTypeIndividual × ConditionAI-Generated | -0.11 | 0.04 | (-0.19, -0.04) | -3.12 | 0.002 |
Gender (Female) × StimuliTypeIndividual × ConditionAI-Generated | 0.04 | 0.04 | (-0.04, 0.12) | 0.94 | 0.348 |
Gender (Male) × StimuliTypeCouple × ConditionAI-Generated | -0.06 | 0.04 | (-0.13, 6.10e-03) | -1.79 | 0.074 |
Gender (Female) × StimuliTypeCouple × ConditionAI-Generated | -0.06 | 0.04 | (-0.14, 0.01) | -1.60 | 0.109 |
::avg_slopes(m_emotionality, variables="Condition", by="Gender", re.form=NA) |>
marginaleffectsresults_table()
Comparison | Gender | Coefficient | z | p | 95% CI |
---|---|---|---|---|---|
AI-Generated - Photograph | Male | -0.02 | -3.13 | 0.002 | [-0.04, -0.01] |
AI-Generated - Photograph | Female | -3.34e-03 | -0.45 | 0.650 | [-0.02, 0.01] |
Looking at AI-attitudes, porn frequency and sexual activity, and feedback as moderators, we can see that for males reporting higher expertise in AI led to an increase of emotionality ratings for images labelled as AI-Generated. Additionally, males who reported having more negative attitiudes towards AI, rated AI-Generated images lower in emotionality compared to fotographs. While for feamles, those with more positive AI attitudes rate AI-generated images higher in emotionality.
Looking at feedback as a moderator, the results show that for males who reported finidng AI-generated images as more attractive rated these images higher in emotionality.Conversely, males who reported finding AI-generated images as less attractive rated these images lower in emotionality.
for(m in c("BAIT_Visual", "BAIT_Text", "BAIT_ExpertAI",
"BAIT_Positive", "BAIT_Negative", "PornFrequency", "SexualActivity_num")) {
<- rbind(moderator_results,
moderator_results test_moderator(df, "Emotionality", m))
}
display(filter(moderator_results, Outcome == "Emotionality"))
Parameter | Coefficient | 95% CI | z | p | Moderator | Outcome |
---|---|---|---|---|---|---|
Gender [Male] × ConditionAI-Generated × BAIT Visual | 0.05 | [ 0.00, 0.11] | 1.82 | 0.069 | BAIT_Visual | Emotionality |
Gender [Female] × ConditionAI-Generated × BAIT Visual | 5.41e-03 | [-0.05, 0.06] | 0.18 | 0.854 | BAIT_Visual | Emotionality |
Gender [Male] × ConditionAI-Generated × BAIT Text | -3.70e-03 | [-0.05, 0.04] | -0.16 | 0.872 | BAIT_Text | Emotionality |
Gender [Female] × ConditionAI-Generated × BAIT Text | 0.01 | [-0.04, 0.06] | 0.53 | 0.595 | BAIT_Text | Emotionality |
Gender [Male] × ConditionAI-Generated × BAIT ExpertAI | 0.04 | [ 0.00, 0.07] | 2.11 | 0.035 | BAIT_ExpertAI | Emotionality |
Gender [Female] × ConditionAI-Generated × BAIT ExpertAI | 0.03 | [-0.01, 0.07] | 1.39 | 0.166 | BAIT_ExpertAI | Emotionality |
Gender [Male] × ConditionAI-Generated × BAIT Positive | 0.03 | [-0.02, 0.08] | 1.08 | 0.282 | BAIT_Positive | Emotionality |
Gender [Female] × ConditionAI-Generated × BAIT Positive | 0.05 | [ 0.00, 0.09] | 2.06 | 0.039 | BAIT_Positive | Emotionality |
Gender [Male] × ConditionAI-Generated × BAIT Negative | -0.04 | [-0.07, -0.01] | -2.55 | 0.011 | BAIT_Negative | Emotionality |
Gender [Female] × ConditionAI-Generated × BAIT Negative | -0.02 | [-0.06, 0.02] | -0.83 | 0.404 | BAIT_Negative | Emotionality |
Gender [Male] × ConditionAI-Generated × PornFrequency | 5.80e-03 | [-0.03, 0.04] | 0.34 | 0.732 | PornFrequency | Emotionality |
Gender [Female] × ConditionAI-Generated × PornFrequency | -1.34e-03 | [-0.04, 0.04] | -0.06 | 0.950 | PornFrequency | Emotionality |
Gender [Male] × ConditionAI-Generated × SexualActivity num | -0.03 | [-0.06, 0.01] | -1.48 | 0.140 | SexualActivity_num | Emotionality |
Gender [Female] × ConditionAI-Generated × SexualActivity num | -0.03 | [-0.07, 0.01] | -1.54 | 0.123 | SexualActivity_num | Emotionality |
for(m in c("Feedback_NoFacesAttractive", "Feedback_SomeFacesAttractive",
"Feedback_AIMoreAttractive", "Feedback_AILessAttractive",
"Feedback_AIMoreArousing", "Feedback_AILessArousing",
"Feedback_DiffObvious", "Feedback_DiffNone",
"Feedback_LabelsIncorrect", "Feedback_LabelsReversed",
"Feedback_AllReal", "Feedback_AllFake",
"AllRealConfidence","AllFakeConfidence" ,
"Enjoyment")) {
<- rbind(feedback_results,
feedback_results test_moderator(df, "Emotionality", m))
}
Warning in finalizeTMB(TMBStruc, obj, fit, h, data.tmb.old): Model convergence problem; singular convergence (7). See vignette('troubleshooting'), help('diagnose')
display(filter(feedback_results, Outcome == "Emotionality"))
Parameter | Coefficient | 95% CI | z | p | Moderator | Outcome |
---|---|---|---|---|---|---|
Gender [Male] × ConditionAI-Generated × Feedback NoFacesAttractiveTrue | -6.16e-03 | [-0.27, 0.26] | -0.05 | 0.964 | Feedback_NoFacesAttractive | Emotionality |
Gender [Female] × ConditionAI-Generated × Feedback NoFacesAttractiveTrue | -0.09 | [-0.32, 0.15] | -0.72 | 0.470 | Feedback_NoFacesAttractive | Emotionality |
Gender [Male] × ConditionAI-Generated × Feedback SomeFacesAttractiveTrue | 0.02 | [-0.09, 0.13] | 0.38 | 0.707 | Feedback_SomeFacesAttractive | Emotionality |
Gender [Female] × ConditionAI-Generated × Feedback SomeFacesAttractiveTrue | 0.05 | [-0.07, 0.18] | 0.85 | 0.393 | Feedback_SomeFacesAttractive | Emotionality |
Gender [Male] × ConditionAI-Generated × Feedback AIMoreAttractiveTrue | 0.17 | [ 0.03, 0.30] | 2.43 | 0.015 | Feedback_AIMoreAttractive | Emotionality |
Gender [Female] × ConditionAI-Generated × Feedback AIMoreAttractiveTrue | 0.09 | [-0.05, 0.22] | 1.23 | 0.220 | Feedback_AIMoreAttractive | Emotionality |
Gender [Male] × ConditionAI-Generated × Feedback AILessAttractiveTrue | -0.19 | [-0.38, 0.00] | -2.01 | 0.045 | Feedback_AILessAttractive | Emotionality |
Gender [Female] × ConditionAI-Generated × Feedback AILessAttractiveTrue | 0.03 | [-0.17, 0.22] | 0.26 | 0.796 | Feedback_AILessAttractive | Emotionality |
Gender [Male] × ConditionAI-Generated × Feedback AIMoreArousingTrue | -0.03 | [-0.23, 0.18] | -0.25 | 0.803 | Feedback_AIMoreArousing | Emotionality |
Gender [Female] × ConditionAI-Generated × Feedback AIMoreArousingTrue | -0.19 | [-0.52, 0.14] | -1.13 | 0.258 | Feedback_AIMoreArousing | Emotionality |
Gender [Male] × ConditionAI-Generated × Feedback AILessArousingTrue | 0.03 | [-0.19, 0.24] | 0.22 | 0.823 | Feedback_AILessArousing | Emotionality |
Gender [Female] × ConditionAI-Generated × Feedback AILessArousingTrue | 0.04 | [-0.19, 0.27] | 0.34 | 0.735 | Feedback_AILessArousing | Emotionality |
Gender [Male] × ConditionAI-Generated × Feedback DiffObviousTrue | -0.11 | [-0.34, 0.13] | -0.88 | 0.380 | Feedback_DiffObvious | Emotionality |
Gender [Female] × ConditionAI-Generated × Feedback DiffObviousTrue | -0.07 | [-0.35, 0.21] | -0.50 | 0.615 | Feedback_DiffObvious | Emotionality |
Gender [Male] × ConditionAI-Generated × Feedback DiffNoneTrue | 0.04 | [-0.07, 0.15] | 0.66 | 0.509 | Feedback_DiffNone | Emotionality |
Gender [Female] × ConditionAI-Generated × Feedback DiffNoneTrue | 0.03 | [-0.10, 0.15] | 0.42 | 0.677 | Feedback_DiffNone | Emotionality |
Gender [Male] × ConditionAI-Generated × Feedback LabelsIncorrectTrue | -0.09 | [-0.22, 0.04] | -1.32 | 0.188 | Feedback_LabelsIncorrect | Emotionality |
Gender [Female] × ConditionAI-Generated × Feedback LabelsIncorrectTrue | -0.02 | [-0.15, 0.12] | -0.25 | 0.804 | Feedback_LabelsIncorrect | Emotionality |
Gender [Male] × ConditionAI-Generated × Feedback LabelsReversedTrue | 0.20 | [-0.07, 0.47] | 1.46 | 0.144 | Feedback_LabelsReversed | Emotionality |
Gender [Female] × ConditionAI-Generated × Feedback LabelsReversedTrue | -0.04 | [-0.34, 0.26] | -0.27 | 0.789 | Feedback_LabelsReversed | Emotionality |
Gender [Male] × ConditionAI-Generated × Feedback AllRealTrue | 0.02 | [-0.09, 0.14] | 0.38 | 0.701 | Feedback_AllReal | Emotionality |
Gender [Female] × ConditionAI-Generated × Feedback AllRealTrue | 0.06 | [-0.06, 0.18] | 0.95 | 0.342 | Feedback_AllReal | Emotionality |
Gender [Male] × ConditionAI-Generated × Feedback AllFakeTrue | 0.22 | [-0.02, 0.45] | 1.82 | 0.068 | Feedback_AllFake | Emotionality |
Gender [Female] × ConditionAI-Generated × Feedback AllFakeTrue | -0.03 | [-0.31, 0.24] | -0.23 | 0.815 | Feedback_AllFake | Emotionality |
Gender [Male] × ConditionAI-Generated × AllRealConfidence | -0.02 | [-0.08, 0.03] | -0.79 | 0.427 | AllRealConfidence | Emotionality |
Gender [Female] × ConditionAI-Generated × AllRealConfidence | 6.01e-03 | [-0.06, 0.08] | 0.17 | 0.866 | AllRealConfidence | Emotionality |
Gender [Male] × ConditionAI-Generated × AllFakeConfidence | -2.85e-04 | [-0.27, 0.27] | -2.08e-03 | 0.998 | AllFakeConfidence | Emotionality |
Gender [Female] × ConditionAI-Generated × AllFakeConfidence | 0.09 | [-0.25, 0.43] | 0.54 | 0.592 | AllFakeConfidence | Emotionality |
Gender [Male] × ConditionAI-Generated × Enjoyment | 0.06 | [-0.04, 0.15] | 1.20 | 0.229 | Enjoyment | Emotionality |
Gender [Female] × ConditionAI-Generated × Enjoyment | 0.02 | [-0.04, 0.08] | 0.72 | 0.469 | Enjoyment | Emotionality |
<- glmmTMB::glmmTMB(Emotionality ~ Gender / Condition + (Condition| Participant) + (1|Stimulus),
m data=filter(df, ConditionBelief == "True"),
family=glmmTMB::ordbeta(),
control = glmmTMB::glmmTMBControl(parallel = 8))
results_table(m)
Parameter | Coefficient | SE | 95% CI | z | p |
---|---|---|---|---|---|
(Intercept) | 0.13 | 0.10 | (-0.06, 0.32) | 1.37 | 0.171 |
Gender (Female) | -0.16 | 0.10 | (-0.36, 0.05) | -1.51 | 0.132 |
Gender (Male) × ConditionAI-Generated | -0.33 | 0.05 | (-0.42, -0.24) | -7.04 | < .001 |
Gender (Female) × ConditionAI-Generated | -0.15 | 0.05 | (-0.25, -0.05) | -2.91 | 0.004 |
for(m in c("BAIT_Visual", "BAIT_Text", "BAIT_ExpertAI",
"BAIT_Positive", "BAIT_Negative", "PornFrequency", "SexualActivity",
"Feedback_DiffObvious", "Feedback_DiffNone",
"Feedback_AIMoreArousing", "Feedback_AILessArousing",
"Feedback_AIMoreAttractive", "Feedback_AILessArousing",
"Feedback_LabelsIncorrect", "Feedback_LabelsReversed")) {
<- rbind(moderator_believed,
moderator_believed test_moderator(filter(df, ConditionBelief == "True"), "Emotionality", m))
}
filter(moderator_believed, p < .1)) (
Parameter Coefficient 95% CI z p Moderator Outcome
85 Gender [Female] × ConditionAI-Generated × PornFrequency 0.06 [-0.01, 0.13] 1.65 0.099 PornFrequency Arousal
86 Gender [Female] × SexualActivitywithin the last 3 days 0.50 [ 0.02, 0.98] 2.03 0.042 SexualActivity Arousal
79 Gender [Male] × ConditionAI-Generated × Feedback AIMoreArousingTrue 0.25 [-0.04, 0.54] 1.72 0.086 Feedback_AIMoreArousing Arousal
821 Gender [Female] × SexualActivitywithin the last 3 days 0.53 [ 0.13, 0.94] 2.56 0.010 SexualActivity Enticing
834 Gender [Female] × ConditionAI-Generated × BAIT Negative -0.07 [-0.12, -0.01] -2.33 0.020 BAIT_Negative Valence
836 Gender [Female] × SexualActivitywithin the last 3 days 0.37 [ 0.05, 0.70] 2.23 0.026 SexualActivity Valence
740 Gender [Male] × ConditionAI-Generated × Feedback AILessArousingTrue -1.30e-04 [-0.33, 0.33] -7.79e-04 > .999 Feedback_AILessArousing Valence
742 Gender [Male] × ConditionAI-Generated × Feedback AILessArousingTrue -1.30e-04 [-0.33, 0.33] -7.79e-04 > .999 Feedback_AILessArousing Valence
851 Gender [Female] × SexualActivitywithin the last 3 days 0.55 [ 0.13, 0.97] 2.56 0.011 SexualActivity Emotionality
Moderators
<- rbind(
pred1 ::estimate_means(m_arousal, by=c("Gender", "StimuliType", "Condition"), backend = "emmeans") |>
modelbasedas.data.frame() |>
mutate(Outcome="Arousal"),
::estimate_means(m_enticement, by=c("Gender","StimuliType", "Condition"), backend = "emmeans") |>
modelbasedas.data.frame() |>
mutate(Outcome="Enticement"),
::estimate_means(m_valence, by=c("Gender", "StimuliType", "Condition"), backend = "emmeans") |>
modelbasedas.data.frame() |>
mutate(Outcome="Valence")
)
# stars1a <- data.frame(label=c("**","***", "**", "***", "***", "***"),
# Gender=fct_relevel(c("Male", "Female", "Male", "Female", "Male", "Female"), "Male"),
# Outcome=c("Arousal","Arousal", "Enticement", "Enticement", "Valence", "Valence"),
# Condition=c("Photograph", "Photograph", "Photograph", "Photograph", "Photograph", "Photograph"),
# x=c(1.5, 1.5, 1.5, 1.5, 1.5, 1.5),
# y = c(0.53, 0.40, 0.6, 0.51, 0.62, 0.58))
<- data.frame(label=c("*"),
stars1b Gender=fct_relevel(c("Male"), "Male"),
Outcome=c("Arousal"),
x=1,
y=0.60)
<- data.frame(label=c("*","**", "*","*"),
stars1b Gender=fct_relevel(c("Male", "Male", "Male","Male"), "Male"),
Outcome=c("Arousal", "Enticement", "Enticement","Valence"),
x=c(1, 1, 2, 1),
y=c(0.60, 0.65, 0.56, 0.68))
<- pred1 |>
p1 mutate(Gender = fct_relevel(Gender, "Male", "Female")) |>
ggplot(aes(x=StimuliType, y=Proportion)) +
geom_hline(yintercept=0, color="darkgrey") +
geom_line(aes(group=Condition, color=Condition), position = position_dodge(width=0.2), alpha=0.8, linewidth=0.4, key_glyph = "path") +
geom_pointrange(aes(ymin = CI_low, ymax=CI_high, color=Condition), position = position_dodge(width=0.2), size=0.3) +
geom_text(data=stars1b, aes(x=x, y=y, label=label), hjust=0.5, color="#424242", size=6) +
geom_rect(data=data.frame(StimuliType = "Individual", Proportion=0.1, Gender=as.factor("Male"), Outcome="Arousal"),
aes(xmin=0.8, xmax=1.2, ymin=0.35, ymax=0.7), color="#8BC34A", alpha=0, ) +
geom_rect(data=data.frame(StimuliType = "Individual",Proportion=0.1, Gender=as.factor("Female"), Outcome="Arousal"),
aes(xmin=0.8, xmax=1.2, ymin=0.2, ymax=0.5), color="#8BC34A", alpha=0) +
facet_grid(Outcome~Gender, switch="y", scales ="free") +
scale_y_continuous(limits=c(0, 1), labels=scales::percent) +
scale_color_manual(values=c("AI-Generated"="#2196F3", "Photograph"="#F44336")) +
theme_minimal() +
theme(axis.title.y = element_blank(),
axis.title.x = element_blank(),
axis.text.y = element_text(size = 8),
strip.placement = "outside",
strip.background.x = element_rect(fill=c("lightgrey"), color=NA),
strip.text.x = element_text(size = 10),
strip.text.y = element_text(size = 10),
axis.text.x = element_text(angle=25, hjust=1, vjust=1.1, size=9, color="black"),
legend.text = element_text(size = 10),
legend.position = ) +
labs(color="Images presented as:")
p1
<- glmmTMB::glmmTMB(Arousal ~ Gender / Condition + (Condition | Participant) + (1|Stimulus),data = df,
m1 family=glmmTMB::ordbeta(),
control = glmmTMB::glmmTMBControl(parallel = 8))
<- glmmTMB::glmmTMB(Arousal ~ Gender / Condition + (Condition | Participant) + (1|Stimulus),
m2 data=filter(df, ConditionBelief == "True"),
family=glmmTMB::ordbeta(),
control = glmmTMB::glmmTMBControl(parallel = 8))
<- glmmTMB::glmmTMB(Arousal ~ Gender / Condition + (Condition | Participant) + (1|Stimulus),
m3 data=filter(df, ConditionBelief == "True", Feedback_NoFacesAttractive=="True"),
family=glmmTMB::ordbeta(),
control = glmmTMB::glmmTMBControl(parallel = 8))
Warning in finalizeTMB(TMBStruc, obj, fit, h, data.tmb.old): Model convergence problem; non-positive-definite Hessian matrix. See vignette('troubleshooting')
Warning in finalizeTMB(TMBStruc, obj, fit, h, data.tmb.old): Model convergence problem; singular convergence (7). See vignette('troubleshooting'), help('diagnose')
<- glmmTMB::glmmTMB(Arousal ~ Gender / Condition + (Condition | Participant) + (1|Stimulus),
m4 data=filter(df, ConditionBelief == "True", Feedback_AIMoreAttractive=="True"),
family=glmmTMB::ordbeta(),
control = glmmTMB::glmmTMBControl(parallel = 8))
Warning in finalizeTMB(TMBStruc, obj, fit, h, data.tmb.old): Model convergence problem; singular convergence (7). See vignette('troubleshooting'), help('diagnose')
<- data.frame(label=c("**", "***", "*", "*", "*"),
stars2 Gender=fct_relevel(c("Male", "Male", "Male", "Female", "Female")),
Type=c("All trials", "Believed trials" ,"'AI was more attractive'", "Believed trials", "'No faces were attractive'"),
y=c(0.52, 0.56, 0.66, 0.47, 0.39))
<- rbind(
pred2 estimate_relation(m1) |>
mutate(Type = "All trials"),
estimate_relation(m2) |>
mutate(Type = "Believed trials"),
estimate_relation(m3) |>
mutate(Type = "'No faces were attractive'"),
estimate_relation(m4) |>
mutate(Type = "'AI was more attractive'"))
<- pred2 |>
p2 mutate(Type = fct_relevel(Type, "All trials", "Believed trials", "'No faces were attractive'", "'AI was more attractive'")) |>
ggplot(aes(x=Type, y=Predicted)) +
geom_hline(yintercept=0, color="darkgrey") +
geom_line(aes(group=Condition, color=Condition), position = position_dodge(width=0.2), alpha=0.8, linewidth=0.1) +
geom_bar(stat="identity", aes(fill=Condition), position = position_dodge(width=0.2), width=0.2, alpha=0.6) +
geom_pointrange(aes(ymin = CI_low, ymax=CI_high, color=Condition), position = position_dodge(width=0.2), size=0.2) +
geom_rect(data=data.frame(Type="All trials", Predicted=0.1, Gender=as.factor("Male")),
aes(xmin=0.7, xmax=1.3, ymin=0.35, ymax=0.55), color="#8BC34A", alpha=0) +
geom_rect(data=data.frame(Type="All trials", Predicted=0.1, Gender=as.factor("Female")),
aes(xmin=0.7, xmax=1.3, ymin=0.30, ymax=0.48), color="#8BC34A", alpha=0) +
geom_text(data=stars2, aes(y=y, label=label), hjust=0.5, size=3) +
facet_grid(~Gender) +
scale_y_continuous(labels=scales::percent) +
scale_color_manual(values=c("AI-Generated"="#2196F3", "Photograph"="#F44336")) +
scale_fill_manual(values=c("AI-Generated"="#2196F3", "Photograph"="#F44336")) +
labs(y="Arousal",
tag = "B") +
theme_minimal() +
theme(axis.title.x = element_blank(),
axis.text.x = element_text(angle=25, hjust=1, vjust=1.1, size=9),
axis.text.y = element_text(size = 8),
axis.title.y = element_text(size = 10),
strip.placement = "outside",
strip.background.x = element_rect(fill=c("lightgrey"), color=NA),
strip.text.x = element_text(size = 10),
legend.position = "none")
p2
$Gender <- as.factor(dfsub$Gender)
dfsub$Gender <- fct_relevel(dfsub$Gender, "Male", "Female")
dfsub$BAIT_Visual = (dfsub$BAIT_ImagesRealistic + (1 - dfsub$BAIT_ImagesIssues) + dfsub$BAIT_ImitatingReality + dfsub$BAIT_EnvironmentReal) / 4
dfsub
<- glm(Feedback_NoFacesAttractive ~ Gender / BAIT_Visual,
m6 data=mutate(dfsub, Feedback_NoFacesAttractive = ifelse(Feedback_NoFacesAttractive =="True", 1, 0)),
family="binomial")
results_table(m6)
Parameter | Log-Odds | SE | 95% CI | z | p |
---|---|---|---|---|---|
(Intercept) | -1.74 | 1.36 | (-4.88, 0.62) | -1.28 | 0.202 |
Gender (Female) | -0.50 | 1.66 | (-3.67, 3.06) | -0.30 | 0.763 |
Gender (Male) × BAIT Visual | -0.56 | 0.52 | (-1.60, 0.50) | -1.06 | 0.289 |
Gender (Female) × BAIT Visual | 0.04 | 0.33 | (-0.59, 0.74) | 0.11 | 0.913 |
BAIT_Videos was calculated by averaging participants’ agreement with the statement that current AI algorithms can generate very realistic videos and the inverse of their agreement with the statement that videos generated by AI have obvious problems that make them easy to spot as fake. Higher scores reflect stronger beliefs in the visual realism and technical reliability of AI-generated videos.
BAIT_Visual was computed as the average of four items: belief that AI algorithms can generate very realistic images, the inverse of belief that AI-generated images always contain errors and artifacts, agreement that CGI can perfectly imitate reality, and belief that technology allows the creation of environments that seem just as real as reality. Higher scores capture stronger beliefs in the visual realism and immersive quality of AI-generated and computer-generated content.
BAIT_Text was calculated by averaging agreement with the belief that AI assistants can write texts indistinguishable from those written by humans and the inverse of the belief that AI-written documents usually read differently than human-written ones. Higher scores indicate stronger beliefs in the linguistic realism of AI-generated text.
BAIT_Negative was computed by averaging levels of agreement with the statements “AI is dangerous” and “I am worried about future uses of AI”.This composite reflects participants’ negative attitudes toward AI.
BAIT_Positive was calculated by averaging agreement with the statements “AI is exciting” and “Much of society will benefit from a future full of AI”. This score represents positive attitudes towards AI.