___
Elaboration Likelihood Model, or ELM, explains how people process messaging and why some communications are more effective than others. The theory says individuals use one of two routes to change attitudes. ELM assumes people have ability to think critically and process information but prefer to expend as little mental energy as possible. When faced with a lot of information, people tend to rely on mental shortcuts unless they are highly motivated or interested in a topic.
ELM explains that there are two routes to arrive at a decision (or change in attitude): central route and peripheral route. Knowing your audience is vital in choosing which messaging route to take for conveying a message.
The central route emphasizes high-quality arguments such as documented facts and oftentimes, dense information that lays out a solid case for (or against) the topic at hand but requires mental energy to process. This route typically produces a long-term attitude change. This change can be easily recalled and confidently held, but recipients of the messaging must be motivated and able to process the information.
If individuals aren’t motivated to process information, they default to the second route — the peripheral route, which uses low-quality arguments for persuasion. Peripheral cues require relatively less thinking to understand but tend to cause short-term changes that can be swayed. Tactics for this argument use attractive models or celebrities, catchy jingles/music and positive emotional associations.
In this study, I surveyed 200 willing research participants who were asked to spend 30 minutes allowing a digital eye-tracker to watch them browse a fabricated website advocating to legalize recreational marijuana use in the state of Tennessee. None had a strong opinion for or against legalizing recreational marijuana.
The device actually recorded how much of the time test subjects spend looking at high-quality information supportive of legalizing recreational marijuana (medical studies, incarceration statistics, tax revenue, etc.) rather than peripheral cues on the site (endorsements of celebrities, imaging, etc.). A month afterward, all participants were asked whether they were for or against legalizing recreational marijuana us for medical purposes.
The amount of time spent viewing high-quality persuasive information provides a measure of participants’ exposure to information that would be associated with central route processing. The dependent variable (DV) — Favor_1 — indicates whether participants favored legalization. Because this outcome has two possible values, logistic regression is appropriate for determining whether the independent variable (IV) — Minutes — is associated with the likelihood of favoring legalization one month later.
Participants who spend more time viewing high-quality persuasive information are more likely to favor legalizing recreational marijuana use in Tennessee.
A binary logistic regression was used to examine whether the amount of time participants spent viewing high-quality persuasive information in favor of legalizing recreational marijuana use in Tennessee (IV) was related to whether they favored legalization (DV). Logistic regression was used because there are two possible outcomes, coded as 0 or 1.
The logistic regression curve provides a visual representation of the relationship between the number of minutes spent viewing high-quality persuasive information, demonstrating how the probability of the outcomes changes as the amount of time spent looking at positive information increases.
The inflection point — the point at which the curve in the graph changes upward — is approximately 14.965 minutes, as referenced in the Inflection Point of Logistic Curve table. The model predicts a 50% probability that a participant will favor the legalization, as shown in the curve.
The logistics regression results shows the odds ratio for the IV is 1.167; greater than 1 shows each additional minutes of exposure is associated with approximately a 16.7% increase in the odds of favoring that legalization. The 95% confidence interval (1.116–1.227) indicates the estimated effect is likely within this range. Because the entire interval is above 1, the relationship is positive. The p-value on the table is 0.0 (< 0.05), which shows a clear relationship with the IV and DV and it is unlikely the results were created at random.
The Box-Tidwell test checked whether the data fit the logistic regression model correctly. The result was p = .687, which is greater than .05. This means there was no problem with the linearity assumption, so the logistic regression model was appropriate for the data.
Overall, the results supported the hypothesis. Participants who spent more time with the message had greater odds of favoring the position. These findings are consistent with the Elaboration Likelihood Model because greater exposure to a persuasive message may provide participants with more opportunity to attend to and process the message.
| 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 |
Here is the R code I used to produce the results.
# ------------------------------
# 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