The Elaboration Likelihood Model (ELM) explains how persuasive messages can influence people’s attitudes. According to the model, people who carefully process high quality persuasive information are more likely to experience lasting attitude change. Digital eye tracking technology provides a way to measure how much attention people give to different types of information. In this investigation, participants viewed a website advocating for marijuana legalization while an eye tracker recorded how much time they spent looking at high quality persuasive information.
In this analysis, the amount of time participants spent looking at high quality persuasive information represents the independent variable, while their attitude toward marijuana legalization one month later represents the dependent variable. Examining the relationship between these variables can help determine whether greater attention to high quality persuasive information is associated with later attitude change.
The amount of time spent viewing high quality persuasive information is associated with the likelihood of favoring marijuana legalization in Tennessee.
The dependent variable in the analysis was a categorical measure of whether participants favored or opposed legalizing recreational marijuana in Tennessee one month after viewing the website. Participants who favored legalization were coded as 1, while participants who opposed legalization were coded as 0.
The independent variable was the number of minutes participants spent looking at high quality persuasive information supporting marijuana legalization. This included information such as medical studies, information from medical experts, incarceration statistics, and tax revenue projections.
A sample of 200 participants was used in this analysis. Before the study, all participants reported having no strong opinion for or against legalization. Participants then spent 30 minutes browsing a realistic-looking website while an eye tracker recorded where they looked. One month later, participants reported whether they favored or opposed legalization.
A logistic regression was used to test whether the amount of time participants spent viewing high quality persuasive information was associated with their likelihood of favoring legalization.
The logistic regression showed that Minutes was significantly associated with Favor_1. The odds ratio was 1.167 with a 95% confidence interval of 1.116 to 1.227 and a p-value of less than .001. This means that as the number of minutes spent looking at high quality information increased, participants were more likely to favor marijuana legalization one month later.
The logistic regression graph also shows that the predicted probability of favoring legalization increases as the number of minutes increases. The probability reaches 0.50 at about 14.965 minutes.
Overall, these results support the hypothesis. Participants who spent more time looking at high quality persuasive information were more likely to favor legalization later. This supports the idea from the ELM that paying more attention to strong information can be related to changes in attitudes.
| Logistic Regression Results | ||||
| Odds Ratios with 95% Confidence Intervals | ||||
| 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 of the Logit Test (Box-Tidwell) | |||
| 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 Point of Logistic Curve | |
| Value of IV where predicted probability = 0.50 | |
| Probability | Inflection_Point |
|---|---|
| 0.5 | 14.965 |
# ------------------------------
# Install and load required packages
# ------------------------------
if (!require("tidyverse")) install.packages("tidyverse")
if (!require("gt")) install.packages("gt")
if (!require("gtExtras")) install.packages("gtExtras")
if (!require("plotly")) install.packages("plotly")
library(ggplot2)
library(dplyr)
library(gt)
library(gtExtras)
library(plotly)
# ------------------------------
# Read the data
# ------------------------------
mydata <- read.csv("ELM.csv") # <-- EDIT filename
# ################################################
# # (Optional) Remove specific case(es)s by row number
# ################################################
# # Example: remove rows 10 and 25
# rows_to_remove <- c(10, 25) # Edit and uncomment this line
# mydata <- mydata[-rows_to_remove, ] # Uncomment this line
# Specify dependent (DV) and independent (IV) variables
mydata$DV <- mydata$Favor_1 # <-- EDIT DV column
mydata$IV <- mydata$Minutes # <-- EDIT IV column
# Ensure DV is binary numeric (0/1)
mydata$DV <- as.numeric(as.character(mydata$DV))
# ------------------------------
# Logistic regression plot
# ------------------------------
logit_plot <- ggplot(mydata, aes(x = IV, y = DV)) +
geom_point(alpha = 0.5) + # scatterplot of observed data
geom_smooth(method = "glm",
method.args = list(family = "binomial"),
se = FALSE,
color = "#1f78b4") +
labs(title = "Logistic Regression Curve",
x = "Independent Variable (IV)",
y = "Dependent Variable (DV)")
logit_plotly <- ggplotly(logit_plot)
# ------------------------------
# Run logistic regression
# ------------------------------
options(scipen = 999)
log.ed <- glm(DV ~ IV, data = mydata, family = "binomial")
# Extract coefficients and odds ratios
results <- broom::tidy(log.ed, 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 as a nice gt table
results_table <- 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 with 95% Confidence Intervals"
)
# ------------------------------
# Check linearity of the logit (Box-Tidwell test)
# ------------------------------
# (Assumes IV > 0; shift IV if needed)
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 = "Linearity of the Logit Test (Box-Tidwell)",
subtitle = "Interaction term indicates violation if significant"
)
# ------------------------------
# Calculate the inflection point (p = .50)
# ------------------------------
p <- 0.50
Inflection_point <- (log(p/(1-p)) - coef(log.ed)[1]) / coef(log.ed)[2]
inflection_table <- tibble(
Probability = 0.5,
Inflection_Point = Inflection_point
) %>%
gt() %>%
fmt_number(columns = Inflection_Point, decimals = 3) %>%
tab_header(
title = "Inflection Point of Logistic Curve",
subtitle = "Value of IV where predicted probability = 0.50"
)
# ------------------------------
# Outputs
# ------------------------------
# Interactive plot
logit_plotly
# Tables
results_table
linearity_table
inflection_table