Agenda‐setting theory suggests that the issues people view as important are influenced by the media they consume. News outlets provide cues that shape perceptions of which political problems deserve more attention.
Given this theory, the choice of a preferred television news network could influence whether viewers see immigration as a top political issue.
The percentage of participants identifying immigration as a top issue will differ depending on whether they prefer CNN or Fox News. Specifically, Fox News viewers are expected to be more likely than CNN viewers to rank immigration as a top concern.
A total of 600 participants took the survey where they reported their
preferred television news network (CNN or Fox) and indicated whether
immigration was a “top issue” or “not a top issue.”
The dependent variable in the analysis was a categorical measure of
whether respondents rated immigration as a “top issue” or “not a top
issue”. The independent variable in the anaylysis was also a categorical
measure indicating whether respondents preferred CNN or Fox.
Responses were cross-tabulated to show counts and column percentages. A chi-square test of independence was used to determine whether the observed difference between preferred network and immigration was statistically significant.
The graph and crosstabulation table below summarize the association between the dependent and independent variables. The chi-square results are shown as well.
| Crosstabulation of DV by IV | ||
| Counts and (Column Percentages) | ||
| CNN | Fox | |
|---|---|---|
| 1 Top issue | 35 (11.7%) | 115 (38.3%) |
| 2 Not top issue | 265 (88.3%) | 185 (61.7%) |
| Chi-squared Test Results | |||
| Test of Independence between DV and IV | |||
| Test | Chi-squared Statistic | Degrees of Freedom | p-value |
|---|---|---|---|
| Chi-squared Test of Independence | 55.476 | 1 | 0.000 |
These findings support the hypothesis and align with agenda-setting theory, suggesting that the media outlets audiences favor are linked to the issues they prioritize. Among Fox viewers, 38.3% identified immigration as a top issue, compared with only 11.7% of CNN viewers. The chi-square test found the association to be statistically significant.
# ------------------------------
# Setup: Install and load packages
# ------------------------------
if (!require("tidyverse")) install.packages("tidyverse") # Data wrangling & plotting
if (!require("gmodels")) install.packages("gmodels") # Crosstabs
if (!require("gt")) install.packages("gt") # Table formatting
library(tidyverse)
library(gmodels)
library(gt)
# ------------------------------
# Load the data
# ------------------------------
# Replace "YOURFILENAME.csv" with your dataset name
mydata <- read.csv("TopIssue.csv") #Edit
# ------------------------------
# Define Dependent (DV) and Independent (IV) variables
# ------------------------------
# Replace YOURDVNAME and YOURIVNAME with actual column names in your data
mydata$DV <- mydata$Immigration #Edit
mydata$IV <- mydata$PreferredNetwork #Edit
# ------------------------------
# Visualization: Stacked bar chart of IV by DV
# ------------------------------
graph <- ggplot(mydata, aes(x = IV, fill = DV)) +
geom_bar(colour = "black") +
scale_fill_brewer(palette = "Paired") +
labs(
title = "Distribution of DV by IV",
x = "Independent Variable",
y = "Count",
fill = "Dependent Variable"
)
#Show the graph
graph
# ------------------------------
# Crosstabulation of DV by IV (DV = rows, IV = columns)
# ------------------------------
crosstab <- mydata %>%
count(DV, IV) %>%
group_by(IV) %>%
mutate(RowPct = 100 * n / sum(n)) %>%
ungroup() %>%
mutate(Cell = paste0(n, "\n(", round(RowPct, 1), "%)")) %>%
select(DV, IV, Cell) %>%
pivot_wider(names_from = IV, values_from = Cell)
# Format into gt table
crosstab_table <- crosstab %>%
gt(rowname_col = "DV") %>%
tab_header(
title = "Crosstabulation of DV by IV",
subtitle = "Counts and (Column Percentages)"
) %>%
cols_label(
DV = "Dependent Variable"
)
# Show the polished crosstab table
crosstab_table
# ------------------------------
# Chi-squared test of independence
# ------------------------------
options(scipen = 999) # Prevents scientific notation
chitestresults <- chisq.test(mydata$DV, mydata$IV)
# ------------------------------
# Format Chi-squared test results into a table
# ------------------------------
chitest_summary <- tibble(
Test = "Chi-squared Test of Independence",
Chi_sq = chitestresults$statistic,
df = chitestresults$parameter,
p = chitestresults$p.value
)
chitest_table <- chitest_summary %>%
gt() %>%
# Round χ² and p-value to 3 decimals, df to integer
fmt_number(columns = c(Chi_sq, p), decimals = 3) %>%
fmt_number(columns = df, decimals = 0) %>%
tab_header(
title = "Chi-squared Test Results",
subtitle = "Test of Independence between DV and IV"
) %>%
cols_label(
Test = "Test",
Chi_sq = "Chi-squared Statistic",
df = "Degrees of Freedom",
p = "p-value"
)
# Show the formatted results table
chitest_table