Social movements and the media
| Date | Presenters | Method |
|---|---|---|
| 4 Dec: | Daichi, Seongyeon, Jehyun | TBD |
| 18 Dec: | Ayla, Tara, Theresa, Annabelle | TBD |
| 15 Jan: | Luna, Emilene, Raffa, Sofia | TBD |
Where do you get your news?
When you read the news (thinking only of ‘traditional media’ for the moment), what is reported, generally?
What are the mechanisms of…
often it is the media (including social media)
how media covers a movement is often how most people know about it
Take the survey at https://forms.gle/ngepuqqzaFu8nCfBA
import { liveGoogleSheet } from "@jimjamslam/live-google-sheet";
import { aq, op } from "@uwdata/arquero";
// UPDATE THE LINK FOR A NEW POLL
surveyResults = liveGoogleSheet(
"https://docs.google.com/spreadsheets/d/e/" +
"2PACX-1vRFuuWCfyZQLXsybqoVeuOX8eixlnbIKG7xp_W7e9W1FRZNtLl8pMdicFnILQhxM69f1Fn4Hxf_5jG0/" +
"pub?gid=2143204677&single=true&output=csv",
10000, 1, 7); // adjust the last number to select all relevant columns
respondentCount = surveyResults.length;how do media generally portray protesters?
portrayCounts = aq.from(surveyResults)
.select("portray")
.groupby("portray")
.count()
.derive({ measure: d => "" })
// Calculate the maximum count from your dataset
portray_maxCountRE = Math.max(...portrayCounts.objects().map(d => d.count));
plot_portray = Plot.plot({
marks: [
Plot.barY(portrayCounts, {
x: "portray",
y: "count",
fill: "portray",
stroke: "black",
strokeWidth: 1
}),
Plot.ruleY([respondentCount], { stroke: "#ffffff99" })
],
color: {
domain: [
"dangerous",
"passionate",
"misguided",
"admirable",
"other"
],
range: [
"goldenrod",
"cadetblue",
"darkorange",
"forestgreen",
"violet"
]
},
marginBottom: 400,
x: { label: "", tickSize: 2, tickRotate: -40, padding: 0.2,
domain: ["dangerous", "passionate", "misguided", "admirable", "other"]
},
y: {
label: "",
tickSize: 10,
tickFormat: d => d,
tickValues: Array.from(
new Set(portrayCounts.objects().map(d => d.count))
).sort((a, b) => a - b),
domain: [0, portray_maxCountRE]
},
facet: { data: portrayCounts, x: "measure", label: "" },
marginLeft: 60,
style: {
width: 1600,
height: 500,
fontSize: 40,
},
});most likely to help a movement get media coverage?
help_coverageCounts = aq.from(surveyResults)
.select("help_coverage")
.groupby("help_coverage")
.count()
.derive({ measure: d => "" })
// Calculate the maximum count from your dataset
help_coverage_maxCountRE = Math.max(...help_coverageCounts.objects().map(d => d.count));
plot_help_coverage = Plot.plot({
marks: [
Plot.barY(help_coverageCounts, {
x: "help_coverage",
y: "count",
fill: "help_coverage",
stroke: "black",
strokeWidth: 1
}),
Plot.ruleY([respondentCount], { stroke: "#ffffff99" })
],
color: {
domain: [
"protest size",
"catchy slogans",
"celebrity support",
"counter-protests",
"disruptiveness/violence",
"topicality (coincidence with other news)",
"other"
],
range: [
"darkred",
"goldenrod",
"cadetblue",
"darkorange",
"forestgreen",
"violet",
"gray"
]
},
marginBottom: 400,
x: { label: "", tickSize: 2, tickRotate: -40, padding: 0.2,
domain: ["protest size", "catchy slogans", "celebrity support", "counter-protests", "disruptiveness/violence", "topicality (coincidence with other news)", "other"]
},
y: {
label: "",
tickSize: 10,
tickFormat: d => d,
tickValues: Array.from(
new Set(help_coverageCounts.objects().map(d => d.count))
).sort((a, b) => a - b),
domain: [0, help_coverage_maxCountRE]
},
facet: { data: help_coverageCounts, x: "measure", label: "" },
marginLeft: 60,
style: {
width: 1600,
height: 500,
fontSize: 40,
},
});should movements tailor their messaging/framing to gain more attention?
tailorCounts = aq.from(surveyResults)
.select("tailor")
.groupby("tailor")
.count()
.derive({ measure: d => "" })
// Calculate the maximum count from your dataset
tailor_maxCountRE = Math.max(...tailorCounts.objects().map(d => d.count));
plot_tailor = Plot.plot({
marks: [
Plot.barY(tailorCounts, {
x: "tailor",
y: "count",
fill: "tailor",
stroke: "black",
strokeWidth: 1
}),
Plot.ruleY([respondentCount], { stroke: "#ffffff99" })
],
color: {
domain: [
"Strongly disagree",
"Disagree",
"Neutral",
"Agree",
"Strongly agree"
],
range: [
"red",
"pink",
"lightgrey",
"lightgreen",
"forestgreen"
]
},
marginBottom: 180,
x: { label: "", tickSize: 2, tickRotate: -45,
domain: ["Strongly disagree", "Disagree", "Neutral", "Agree", "Strongly agree"]
},
y: {
label: "",
tickSize: 10,
tickFormat: d => d,
tickValues: Array.from(
new Set(tailorCounts.objects().map(d => d.count))
).sort((a, b) => a - b),
domain: [0, tailor_maxCountRE]
},
facet: { data: tailorCounts, x: "measure", label: "" },
marginLeft: 140,
style: {
width: 1350,
height: 500,
fontSize: 30,
}
});is traditional media coverage still necessary for movement success in an age of social media?
traditional_mediaCounts = aq.from(surveyResults)
.select("traditional_media")
.groupby("traditional_media")
.count()
.derive({ measure: d => "" })
// Calculate the maximum count from your dataset
traditional_media_maxCountRE = Math.max(...traditional_mediaCounts.objects().map(d => d.count));
plot_traditional_media = Plot.plot({
marks: [
Plot.barY(traditional_mediaCounts, {
x: "traditional_media",
y: "count",
fill: "traditional_media",
stroke: "black",
strokeWidth: 1
}),
Plot.ruleY([respondentCount], { stroke: "#ffffff99" })
],
color: {
domain: [
"Strongly disagree",
"Disagree",
"Neutral",
"Agree",
"Strongly agree"
],
range: [
"red",
"pink",
"lightgrey",
"lightgreen",
"forestgreen"
]
},
marginBottom: 180,
x: { label: "", tickSize: 2, tickRotate: -45,
domain: ["Strongly disagree", "Disagree", "Neutral", "Agree", "Strongly agree"]
},
y: {
label: "",
tickSize: 10,
tickFormat: d => d,
tickValues: Array.from(
new Set(traditional_mediaCounts.objects().map(d => d.count))
).sort((a, b) => a - b),
domain: [0, traditional_media_maxCountRE]
},
facet: { data: traditional_mediaCounts, x: "measure", label: "" },
marginLeft: 140,
style: {
width: 1350,
height: 500,
fontSize: 30,
}
});ever personally supported a movement online?
personally_sharedCounts = aq.from(surveyResults)
.select("personally_shared")
.groupby("personally_shared")
.count()
.derive({ measure: d => "" })
// Calculate the maximum count from your dataset
personally_shared_maxCountRE = Math.max(...personally_sharedCounts.objects().map(d => d.count));
plot_personally_shared = Plot.plot({
marks: [
Plot.barY(personally_sharedCounts, {
x: "personally_shared",
y: "count",
fill: "personally_shared",
stroke: "black",
strokeWidth: 1
}),
Plot.ruleY([respondentCount], { stroke: "#ffffff99" })
],
color: {
domain: [
"Yes",
"No",
"Maybe"
],
range: [
"forestgreen",
"darkred",
"goldenrod"
]
},
marginBottom: 80,
x: { label: "", tickSize: 2, tickRotate: -1, padding: 0.2,
domain: ["Yes", "No", "Maybe"]
},
y: {
label: "",
tickSize: 10,
tickFormat: d => d,
tickValues: Array.from(
new Set(personally_sharedCounts.objects().map(d => d.count))
).sort((a, b) => a - b),
domain: [0, personally_shared_maxCountRE]
},
facet: { data: personally_sharedCounts, x: "measure", label: "" },
marginLeft: 60,
style: {
width: 1600,
height: 500,
fontSize: 40,
},
});does social media encourage ‘slacktivism’?
slacktivismCounts = aq.from(surveyResults)
.select("slacktivism")
.groupby("slacktivism")
.count()
.derive({ measure: d => "" })
// Calculate the maximum count from your dataset
slacktivism_maxCountRE = Math.max(...slacktivismCounts.objects().map(d => d.count));
plot_slacktivism = Plot.plot({
marks: [
Plot.barY(slacktivismCounts, {
x: "slacktivism",
y: "count",
fill: "slacktivism",
stroke: "black",
strokeWidth: 1
}),
Plot.ruleY([respondentCount], { stroke: "#ffffff99" })
],
color: {
domain: [
"Yes",
"No",
"Maybe"
],
range: [
"forestgreen",
"darkred",
"goldenrod"
]
},
marginBottom: 80,
x: { label: "", tickSize: 2, tickRotate: -1, padding: 0.2,
domain: ["Yes", "No", "Maybe"]
},
y: {
label: "",
tickSize: 10,
tickFormat: d => d,
tickValues: Array.from(
new Set(slacktivismCounts.objects().map(d => d.count))
).sort((a, b) => a - b),
domain: [0, slacktivism_maxCountRE]
},
facet: { data: slacktivismCounts, x: "measure", label: "" },
marginLeft: 60,
style: {
width: 1600,
height: 500,
fontSize: 40,
},
});Factors that may affect media coverage
Factors that may affect media coverage
The design of our study is large-N (based on a sample of demonstrations, avoiding the tautology endemic to many studies of media attention to protest, which select cases based on their being reported in the media), at the same time as putting protest in context. (pp. 2293-4)
| Feature | Static | Dynamic |
|---|---|---|
| Number of participants | larger = more coverage | short- and long-term coverage |
| Contentiousness | high = more coverage | short- and long-term coverage |
| Exhibit violence | violence = more coverage | short-term coverage, long-term losses/costs |
| Trigger event | trigger = more coverage | short-term coverage |
do these expectations make sense to you? do you disagree with any?
Remember: regression is a tool for understanding a phenomenon as a linear function (generally) → (y = mx + b)
Numbers not in parentheses next to a variable: regression coefficient: expected change in DV for a one-unit increase in IV. NB: ositive or negative relationship?
Numbers inside parentheses next to a variable: standard error: estimate of the standard deviation of the coefficient
Asterisks/‘stars’: statistical significance: probability of results as extreme as observed result, under the assumption that the null hypothesis is correct. Smaller p-value means such an observation would be less likely under null hypothesis; hence, significance. Statistical significance suggests more precise estimates—NOT necessarily that one IV is more important than another.
(USA Today on BLM)
(USA Today on BLM)
social media breaks down traditional media gatekeeper roles
Class 4: we listened to Tufecki and social media mobilisation and ‘old-school organisation’ - can attract more participants, but perhaps with less commitment
1929, Easter Sunday Parade: a Tabubruch? more emancipation for women?
astroturfing - manipulation of public sphere (media, information, movement scene)
see further, on the theory: Herman, E. S., & Chomsky, N. (1988). Manufacturing consent: The political economy of the mass media. Random House.
Anonymous feedback here: https://forms.gle/AjHt6fcnwZxkSg4X8
Alternatively, please send me an email: m.zeller@lmu.de
Social movements and social media