Rationale

The Elaboration Likelihood Model (ELM) explains that persuasion can occur in two different ways: the central route and the peripheral route. The route a person uses depends on their motivation and ability to think deeply about a message. People who have a higher level of elaboration are more likely to be persuaded by strong, logical arguments, such as those found on the Marijuana Policy Project (MPP) website.

On the other hand, individuals who have lower elaboration levels are more likely to be influenced by surface-level cues, like testimonials or celebrity endorsements. The central route involves careful thinking and logical reasoning, which often leads to lasting attitude changes. Meanwhile, the peripheral route relies on simpler messages that require little thought and usually result in temporary attitude change.

Overall, ELM helps explain why different people respond to persuasive messages in different ways.

Hypothesis

As people spend more time looking at content on the MPP website, they are more likely to support the legalization of marijuana. The hypothesis suggests that greater exposure to the site’s information will raise the odds of supporting legalized marijuana. In other words, time spent on the website may positively influence people’s opinions about marijuana laws.

Variables & method

In this study, researchers worked with 200 participants who were undecided about legalizing marijuana. Each person’s time spent reading persuasive information on the website was tracked during the first session. The independent variable was the number of minutes, out of 30, that participants spent reading the material. After six months, the researchers measured whether each participant supported or opposed legalization. This outcome served as the dependent variable, which was categorized as either opposition (0) or support (1). The study compared how the amount of time spent reading the website related to people’s later opinions.

Overall, the goal was to see if longer exposure led to greater support for legalizing marijuana.

Results & discussion

The results from the logistic regression showed a clear connection between time spent on the MPP website and support for marijuana legalization. Participants who spent more time reading persuasive content were more likely to support legalization after six months. The data table revealed that the independent variable was statistically significant, with an odds ratio of 1.167. This means that for every extra minute someone spent reading, their odds of supporting legalization increased. The Box–Tidwell test confirmed that the model’s assumptions were met, with a p-value of 0.686.

Additionally, the inflection point analysis showed that people who spent around 15 minutes on the site had a 50% chance of supporting legalization. This suggests that longer and more focused reading made participants more likely to change their views. The findings also support the original hypothesis that greater exposure to persuasive information increases support for legalization. The results were not only significant but also reliable, showing that the effect was not due to chance.

Overall, these results highlight how meaningful exposure time can strongly influence people’s attitudes toward important issues.

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

Code:

# ------------------------------
# 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
# Paste - again - your complete R script, the same one pasted into the first code chunk, above. Pasting it were will display it.