Postpartum depression and postpartum psychosis are two psychological conditions related to post-childbirth. These conditions peaked my interest because of following the media coverage, videos, and discussions of the Lindsay Clancy case. The case made me wonder how much attention news media pay to the postpartum conditions on a normal basis versus when it is apart of wide spread news, and whether the coverage of different conditions differs from each other.
The analysis is based on the agenda-setting theory, which states that media coverage of certain issue can affect the perception of its importance by the audience. Agenda-setting theory does not claim that news media determine the opinions of the audience about an issue. Instead, it deals with the influence of the media attention on the issue importance among the audience.
Applying agenda-setting theory, this analysis shares whether news
coverage of postpartum depression and postpartum psychosis increased
during the Lindsay Clancy trial compared with the weeks before the trial
began. The trial brought more media attention to postpartum mental
health, making it an opportunity to see whether a major news event
coincided with increased coverage of these conditions. By comparing
weekly story counts before and during the trial period, this analysis
will explore how news attention to postpartum mental health changed over
time.
News coverage of postpartum depression and postpartum psychosis will increase during the Lindsay Clancy trial compared with the weeks before the trial began.
The independent variable is the news topic, with two categories: postpartum depression and postpartum psychosis. The dependent variable is weekly news coverage volume, measured by the number of U.S. online news stories matching each search query.
I used Media Cloud to view story counts for the phrases “postpartum depression” and “postpartum psychosis” from May 3, 2026, through October 3, 2026. This date range includes weeks before the Lindsay Clancy trial began on July 20, 2026, the trial period, and the weeks following the ending of the trial on September 4, 2026.
The R script retrieved daily story counts and put them into weekly totals, with each week running from Sunday-Saturday. It then calculated summary statistics for each topic, including total stories, weekly minimum and maximum, median, mean, and standard deviation. An interactive line graph was created to visualize coverage patterns over time.
This analysis measures the volume of news stories matching each search query. It does not measure audience responses or establish that the trial caused changes in coverage. Because the queries search for specific phrases, some relevant stories may not be included, and individual stories may mention both conditions.
The initial results show that news coverage of both postpartum depression and postpartum psychosis varied throughout the study period. The weekly coverage graph includes noticeable increases in the number of stories mentioning both conditions, suggesting that media attention was not consistent across the weeks examined.
Postpartum psychosis had a higher total number of stories and a higher average weekly story count than postpartum depression. However, postpartum depression had a higher median weekly story count. This difference suggests that some unusually high-coverage weeks contributed to the higher average for postpartum psychosis.
The timing of the increases is important to consider in relation to the Lindsay Clancy trial. Agenda-setting theory suggests that the amount of attention news media give to an issue may influence the issue’s perceived importance. However, the graph alone cannot establish that the trial caused the increases in coverage. Other events and news coverage patterns may also have contributed.
Further examination of the weekly results is needed to determine how
coverage before the trial compares with coverage during and after the
trial. These initial findings provide a starting point for exploring how
news attention to postpartum mental health changes around a major news
event.
One possible interpretation of the increase in postpartum depression
coverage is that the Lindsay Clancy trial brought broader attention to
postpartum mental health, rather than focusing public and media
discussion exclusively on postpartum psychosis. Although the case
centered on postpartum psychosis, the surrounding conversation may have
encouraged news coverage of postpartum mental health more generally,
including postpartum depression. This interpretation is consistent with
agenda-setting theory, which suggests that increased media attention to
a major event can bring greater attention to related issues. However,
the graph cannot establish whether the trial caused the increase or why
coverage of postpartum depression rose. These possibilities would
require further research to confirm.
| topic | Total_Stories | Weekly_Minimum | Weekly_Maximum | Weekly_Median | Weekly_Mean | Weekly_SD |
|---|---|---|---|---|---|---|
| Postpartum Psychosis | 2034 | 0 | 431 | 24.5 | 92.45 | 120.52 |
| Postpartum Depression | 1284 | 6 | 361 | 39.0 | 58.36 | 74.51 |
Note: The code below will download the (made-up) data used in the analysis.
############################################################
# STEP 1: Install and Load Required Packages
############################################################
required_packages <- c(
"tidyverse",
"httr2",
"lubridate",
"plotly",
"knitr",
"kableExtra"
)
for (pkg in required_packages) {
if (!requireNamespace(pkg, quietly = TRUE)) {
install.packages(pkg)
}
}
library(tidyverse)
library(httr2)
library(lubridate)
library(plotly)
library(knitr)
library(kableExtra)
############################################################
# STEP 2: Verify Media Cloud API Key
############################################################
if (!nzchar(Sys.getenv("MEDIACLOUD_KEY"))) {
stop(
"No Media Cloud API key was found.\n",
"Run the setup section once,\n",
"then restart R and try again."
)
}
mc_key <- Sys.getenv("MEDIACLOUD_KEY")
############################################################
# STEP 3: Define the Date Range
############################################################
start_date <- "2026-05-03"
end_date <- "2026-10-03"
############################################################
# STEP 4: Define Search Queries
############################################################
depression_query <-
'"postpartum depression"'
psychosis_query <-
'"postpartum psychosis"'
############################################################
# STEP 5: Create Topic Definitions
############################################################
topics <- c(
"Postpartum Depression" = depression_query,
"Postpartum Psychosis" = psychosis_query
)
############################################################
# STEP 6: Create a Function to Retrieve Daily
# Story Counts
############################################################
mc_counts_over_time <- function(
query,
start_date,
end_date,
collection_id = 34412234
) {
resp <-
request(
"https://search.mediacloud.org/api/search/count-over-time"
) |>
req_headers(
Authorization = paste("Token", mc_key)
) |>
req_url_query(
q = query,
start = start_date,
end = end_date,
platform = "onlinenews-mediacloud",
cs = collection_id
) |>
req_perform()
results <- resp |>
resp_body_json()
map_dfr(
results$count_over_time$counts,
as_tibble
) |>
mutate(
date = as.Date(date)
)
}
############################################################
# STEP 7: Download Daily Counts for All Topics
############################################################
topic_data <-
imap_dfr(
topics,
function(search_string, topic_name) {
message(
"Downloading: ",
topic_name
)
results <-
mc_counts_over_time(
query = search_string,
start_date = start_date,
end_date = end_date
)
Sys.sleep(35)
results |>
mutate(
topic = topic_name
)
}
)
############################################################
# STEP 8: Examine the Downloaded Daily Data
############################################################
head(topic_data)
glimpse(topic_data)
############################################################
# STEP 9: Convert Daily Counts to Weekly Counts
############################################################
weekly_counts <-
topic_data |>
mutate(
week = floor_date(
date,
unit = "week"
)
) |>
group_by(
topic,
week
) |>
summarise(
stories = sum(count),
.groups = "drop"
)
############################################################
# STEP 10: Examine Weekly Counts
############################################################
weekly_counts
############################################################
# STEP 11: Summarize Coverage by Topic
############################################################
topic_summary <-
weekly_counts |>
group_by(topic) |>
summarise(
Total_Stories = sum(stories),
Weekly_Minimum = min(stories),
Weekly_Maximum = max(stories),
Weekly_Median = median(stories),
Weekly_Mean = round(
mean(stories),
2
),
Weekly_SD = round(
sd(stories),
2
),
.groups = "drop"
) |>
arrange(
desc(Total_Stories)
)
Table <-
topic_summary |>
kbl(
caption =
"Media Cloud Topic Summary Statistics",
align = "lrrrrrr"
) |>
kable_styling(
full_width = FALSE,
bootstrap_options = c(
"striped",
"hover",
"condensed"
)
)
Table
############################################################
# STEP 12: Create an Interactive Plotly Graph
############################################################
weekly_counts <- weekly_counts |>
mutate(
stories_formatted = formatC(
stories,
format = "d",
big.mark = ","
)
)
Graph <- plot_ly(
data = weekly_counts,
x = ~week,
y = ~stories,
color = ~topic,
colors = "Set1",
type = "scatter",
mode = "lines+markers",
customdata = ~topic,
text = ~stories_formatted,
hovertemplate =
paste(
"%{customdata}
",
"Week: %{x|%Y-%m-%d}
",
"Stories: %{text}
",
""
)
) |>
layout(
title =
"Weekly U.S. Coverage Volume",
hovermode = "x unified",
xaxis = list(
title = "Week"
),
yaxis = list(
title = "Weekly Story Count",
separatethousands = TRUE
)
)
Graph