This analysis looks at whether spending more time with high‑quality arguments for legalizing recreational marijuana changes people’s attitudes. Digital eye‑tracking was used to record how long each participant looked at detailed evidence such as expert testimony, studies and policy projections. A total of 200 adults who initially had no strong opinion browsed a realistic campaign site for thirty minutes. A month later, they were asked if they now favor or oppose legalization in Tennessee. The Elaboration Likelihood Model (ELM) suggests that deeper cognitive processing should lead to more durable attitude change. I wanted to see if the time spent reading high‑quality content predicts support for legalization.
The dataset includes two variables:
1
if the participant
favored legalizing recreational marijuana, 0
if they
opposed or were undecided.I treat Favor_1 as the dependent variable and Minutes as the independent variable. Because the dependent variable is binary, a logistic regression is appropriate. The analysis proceeds in three steps: exploring the distributions, fitting the logistic model and checking its assumptions, and interpreting the results.
# install and load required packages
if (!require("tidyverse")) install.packages("tidyverse")
if (!require("gt")) install.packages("gt")
if (!require("broom")) install.packages("broom")
library(tidyverse)
library(gt)
library(broom)
# download the data if it isn't already in the working directory
if (!file.exists("ELM.csv")) {
FetchedData <- read.csv("https://github.com/drkblake/Data/raw/refs/heads/main/ELM.csv")
write.csv(FetchedData, "ELM.csv", row.names = FALSE)
rm(FetchedData)
}
# read the ELM study data
mydata <- read.csv("ELM.csv")
# define DV and IV
mydata$DV <- as.numeric(mydata$Favor_1)
mydata$IV <- mydata$Minutes
# examine the first few rows
head(mydata)
## Minutes Favor_1 DV IV
## 1 9.4 1 1 9.4
## 2 12.7 0 0 12.7
## 3 30.0 1 1 30.0
## 4 15.7 0 0 15.7
## 5 16.3 1 1 16.3
## 6 30.0 1 1 30.0
Before fitting the model, I looked at how the variables are distributed. A bar chart summarises the proportion of people favoring legalization, and a histogram shows the spread of minutes spent reading high‑quality content.
# bar plot for DV
dv_plot <- ggplot(mydata, aes(x = factor(DV))) +
geom_bar(colour = "black", fill = "#1f78b4") +
labs(title = "Distribution of Support for Legalization",
x = "Favor (1 = yes, 0 = no/undecided)",
y = "Count")
# histogram for IV
iv_plot <- ggplot(mydata, aes(x = IV)) +
geom_histogram(colour = "black", fill = "#1f78b4", bins = 30) +
labs(title = "Distribution of Minutes Spent on High Quality Content",
x = "Minutes",
y = "Count")
dv_plot
iv_plot
# quick descriptive statistics
summary_table <- mydata %>%
summarise(
N = n(),
favor_rate = mean(DV, na.rm = TRUE),
minutes_mean = mean(IV, na.rm = TRUE),
minutes_sd = sd(IV, na.rm = TRUE),
minutes_min = min(IV, na.rm = TRUE),
minutes_max = max(IV, na.rm = TRUE)
)
summary_table %>%
pivot_longer(cols = everything(), names_to = "metric", values_to = "value") %>%
gt() %>%
tab_header(title = "Descriptive Statistics")
Descriptive Statistics | |
metric | value |
---|---|
N | 200.000000 |
favor_rate | 0.490000 |
minutes_mean | 14.702500 |
minutes_sd | 8.451549 |
minutes_min | 0.000000 |
minutes_max | 30.000000 |
The dataset contains 200 observations. On average participants spent around half of the 30 minutes engaging with high‑quality information, with considerable variability. About half of the participants ended up supporting legalization.
To test the ELM prediction, I fit a logistic regression with Favor_1 as the outcome and Minutes as the predictor. The code below estimates the model, extracts odds ratios and confidence intervals, checks linearity of the logit using a Box–Tidwell test, and calculates the inflection point where the predicted probability is 50 percent.
# fit logistic regression
options(scipen = 999)
log_model <- glm(DV ~ IV, data = mydata, family = binomial)
# tidy results with odds ratios
model_results <- broom::tidy(log_model, conf.int = TRUE, exponentiate = TRUE) %>%
select(term, estimate, conf.low, conf.high, p.value) %>%
rename(Odds_Ratio = estimate,
CI_Lower = conf.low,
CI_Upper = conf.high,
P_Value = p.value)
# display results
results_table <- model_results %>%
gt() %>%
fmt_number(columns = c(Odds_Ratio, CI_Lower, CI_Upper), decimals = 3) %>%
fmt_number(columns = P_Value, decimals = 4) %>%
tab_header(title = "Logistic Regression Results",
subtitle = "Odds Ratios for Favoring Legalization")
# linearity of the logit check (Box-Tidwell)
mydata$IV_log <- mydata$IV * log(mydata$IV)
linearity_test <- glm(DV ~ IV + IV_log, data = mydata, family = binomial)
linearity_results <- broom::tidy(linearity_test) %>%
select(term, estimate, std.error, p.value) %>%
rename(Estimate = estimate,
Std_Error = std.error,
P_Value = p.value)
linearity_table <- linearity_results %>%
gt() %>%
fmt_number(columns = c(Estimate, Std_Error), decimals = 3) %>%
fmt_number(columns = P_Value, decimals = 4) %>%
tab_header(title = "Box–Tidwell Test for Linearity of the Logit",
subtitle = "Interaction term indicates violation if significant")
# inflection point where predicted probability = 0.5
p <- 0.50
intercept <- coef(log_model)[1]
slope <- coef(log_model)[2]
inflection <- (log(p/(1-p)) - intercept) / slope
inflection_table <- tibble(
Probability = 0.5,
Inflection_Point = inflection
) %>%
gt() %>%
fmt_number(columns = Inflection_Point, decimals = 2) %>%
tab_header(title = "Inflection Point",
subtitle = "Minutes Required for 50% Support")
# output
results_table
Logistic Regression Results | ||||
Odds Ratios for Favoring Legalization | ||||
term | Odds_Ratio | CI_Lower | CI_Upper | P_Value |
---|---|---|---|---|
(Intercept) | 0.099 | 0.044 | 0.205 | 0.0000 |
IV | 1.167 | 1.116 | 1.227 | 0.0000 |
linearity_table
Box–Tidwell Test for Linearity of the Logit | |||
Interaction term indicates violation if significant | |||
term | Estimate | Std_Error | P_Value |
---|---|---|---|
(Intercept) | −2.566 | 1.100 | 0.0196 |
IV | 0.262 | 0.290 | 0.3657 |
IV_log | −0.032 | 0.078 | 0.6869 |
inflection_table
Inflection Point | |
Minutes Required for 50% Support | |
Probability | Inflection_Point |
---|---|
0.5 | 14.97 |
The odds ratio for Minutes is well above 1, which means that spending more time with high‑quality content increases the odds of favoring legalization. Based on this dataset, each additional minute raises the odds by about 17 percent.The slope coefficient is highly significant (p < .05), and the intercept reflects the baseline odds for someone who devoted no time to high‑quality information.
The Box–Tidwell test examines whether the logit transforms linearly with the predictor. The p‑value for the interaction term was well above .05, indicating that the assumption of linearity is reasonable. The inflection point, roughly 15 minutes, marks the time at which favoring legalization and opposing or remaining undecided are equally likely. Participants who spent more than about 15 minutes on high‑quality content had better than even odds of supporting legalization; those who spent less time were more likely to oppose or remain undecided.
Evidence is consistent with the Elaboration Likelihood Model. Participants who invested more time in reading high quality arguments were much more likely to express support for legalizing recreational marijuana a month later. The relationship was strong and statistically significant, and it held after checking model assumptions. While the analysis cannot prove causality it remains possible that people with a latent pro legalization leaning chose to spend more time with the persuasive information the results align with ELM’s prediction that deeper cognitive processing leads to more durable attitude change. Future work could use an experimental design to randomly vary exposure time and more cleanly isolate the causal mechanism.