The Elaboration Likelihood Model of Persuasion is used to analysis how persuasive messaging works. The theory asserts that cognitively processing “high quality” persuasive information can produce long-term attitude change.
Considering this theory, depending on how much time an individual spends looking at “high quality” persuasive information regarding legalizing recreational marijuana use in Tennessee could persuade the viewer to favor legalization.
The proportion of participants judging the legalization of recreational marijuana use in Tennessee will differ depending on the amount of time viewing “high quality” persuasive information.
A total of 200 research participants filled out a questionnaire stating they had no strong opinions for or against legalizing recreational marijuana use. The participants were then asked to to spend 30 minutes on a realistic-looking website for an organization advocating for the legalization of recreational marijuana use in Tennessee created for this experiment.
With full consent of the participants, a digital eye-tracking technology that has a special camera pointed at the viewer’s face and records what the viewer looks at and for how long was used. The eye-tracker recorded how much of the allotted 30 minutes the participants spent looking at “high quality” persuasive information (summaries of medical studies, information from medical experts, incarceration statistics, tax revenue projections, etc.) rather than peripheral cues (endorsements by celebrities, images, etc.).
A month later, participants were asked whether they favored or opposed the legalization of recreational marijuana use. Variables from the resulting data set include those below.
The dependent variable in the analysis was a categorical measure of whether the participant favored (1) or opposed (0) the legalization of recreation marijuana use in Tennessee. Participants who remained undecided or who declined to answer were marked as 0. The independent variable in the analysis was a continuous measure of the amount of time, in minutes, the respondent spent looking at “high quality” persuasive information arguing for legalizing recreational marijuana use in Tennessee.
A logistic regression analysis was conducted to examine whether the association between the time of viewer “high quality” persuasive information and favor of recreational marijuana use was statistically significant.
The graph and tables below summarize the association between the dependent and the independent variables. The regression analysis results are shown as well.
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 |
The results supported the hypothesis. The Box-Tidwell chart shows the data supports the assumption for logistic regression (P Value - 0.6869)
# ------------------------------
# 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