Yesterday, I was a footnote in history!

Yesterday, I received exciting news! A piece that I had written with Chris Wells for Columbia Journalism Review was cited in the Mueller Report, which was released a day ago.

The piece that we wrote for CJR focused on news organizations that embedded tweets by Internet Research Agency (IRA) handles into their news stories. We’ve increased the number of outlets analyzed since the CJR piece (it was about 40 when we started, but over 100 now), and our finding still holds: a majority of news organizations cited an IRA account in at least one story.

Contrary to popular opinion, these IRA accounts were not sharing “fake news” (as in: false information). Instead, IRA tweets were often quoted for their salient, often hyper-partisan opinions. For example, one tweet advocated for a Heterosexual Pride Day as a way of inciting LGBTQ activists. Another called refugees, “rapefugees”. These accounts would often portray themselves as American people (e.g., @JennAbrams portrayed herself as a “typical” American girl, as shown by research done by my colleague Yiping Xia), or as groups (like @ten_gop, an IRA account pretending to be Tennessee GOP members, and @blacktivist, an IRA account pretending to be BlackLivesMatter organizers).

This has important implications, and speaks to Muller’s earlier indictment of the IRA, which noted that Russia’s campaign goal was “spread[ing] distrust towards the candidates and the political system in general” (p. 6). Ironically, the discovery of the IRA campaign in the summer/fall of 2017 probably fed into this distrust (especially since news organization were as likely to be “duped” as American citizens).

The (underacted) part where we are referenced focuses on this specific issue—journalists embedded these tweets thinking they reflected the opinions of U.S. citizens. This is incredibly problematic, and something that both academics and journalists want to find solutions for. Following our publication in early of 2018, several news organizations reached out to us regarding the specific articles i which they had unintentionally quoted IRA tweets. The research team was particularly excited by these exchanges because it shows that journalists care, and want to avoid doing this in the future.

Attending the R Forwards Women's Package Workshop (Hosted by R-Ladies Chicago)

This weekend, I had the pleasure of attending an R Forwards Women's Package Workshop. It was hosted and run by members of R-Ladies Chicago: Angela Li and Stephanie Kirmer.

Though I have attended and run many one or two hour workshops, this was my first long-day, single-topic workshop (9:30 to 4:00 pm) and I thoroughly enjoyed the experience! It’s definitely a format that would be useful to teach more complex topics, like software development and package building. There was a lot of info-in-brain-cramming, but I also felt like I learned a ton in a very short time span.

Attendees of the 2019 R Forward Package Workshop, taught by Angela and Stephanie of R Ladies Chicago!

Attendees of the 2019 R Forward Package Workshop, taught by Angela and Stephanie of R Ladies Chicago!

The session was broken down into a couple broad topics: package development, git+r, unit testing, documentation, and package sharing (e.g., licences, indicating dependencies, CRAN). This made the material useful for both specific-use packages (e.g., building a data wrangling package for my specific research group) and for more public-facing packages (e.g., a package that one would want to upload to CRAN).

Top 5 Things I Learned:

  1. The usethis package is so convenient and important for package development. For example, the function

    usethis::create_package("~/Desktop/mypackage")

    will create the skeleton of the package files for you, including folders for R-code, the “man” folder (“man” stands for manual), and description/namespace files. This makes package building so much earlier! You can learn more about it in Wickham’s R package book.

  2. Using the “::” operator allows you to see the exported variables or functions in a package namespace. But if you really want to see under the hood “:::” allows you to see everything (there’s some more about it on StackOverflow), including the functions that are not publicly exported.

  3. Semantic Versioning - How have I only learned about this now, despite attending several data carpentry workshops and classes?! I am such a stickler for version recording, even in my non-computational work (I have been subconsciously semantic versioning my human content analysis codebooks), and it’s so nice to finally have a specific phrase associated with this process.

  4. A quote from my favorite slide of the day: “If the first line of your #rstats script is

    setwd("C:\Users\jenny\path\that\only\I\have")

    I will come into your lab and SET YOUR COMPUTER ON FIRE 🔥.”

    Confession time: I do this a lot! 🙈 ::embarrassed:: In terms of workflow, I am generally quite sloppy about separating projects and keeping relative paths. I first read about projects in R for Data Science, but I never took the lesson to heart until this weekend. I know… it’s bad given how much I code. So I guess I’ll be “konmari-ing” my R code this semester(i.e., create an Rproject space for each of my projects)!

  5. A great tip from Stephanie’s top tweet (about Git): “when you screw up a git merge, you can use git reset --hard master@{"300 minutes ago"} with any time quantity you want in there to get back to where things were a period of time ago.“

Extra Bonus: Differencing vs. Logging Time Series Data

I happened to also sit next to economist Dweepobotee Brahma, which was a great coincidence since I’ve been binging time series models and papers for the past year. I happened to randomly gripe about how economic data is often processed (i.e., logged). She was kind enough to explain to me why economists did this, and why growth rates are so important to the research in economics and econometrics. Having been taught by a political scientist, whose questions are not as focused on exponential relationships, I didn’t know much about this alternative treatment/perspective on time series data, and it was really interesting!

I’m starting to wonder if this is especially important to modeling follower growth. Nearly all follower count time series I’ve analyzed have been fully integrated I(1), if not to I(2). Often I will first- or second- difference this as a way to make the series stationary. However, I’m realizing a logarithmic transformation is probably more appropriate for what we try to measure (implicitly, it’s a growth rate question).

Conclusion

Overall, I’m really, really glad that I was able to attend this workshop. It’s definitely up there on my “favorite R workshops ever” list. Organizationally, there were a lot of little things I wanted to take back to my workshop strategy (for example, this was the first workshop I attended where we used post it’s to indicate whether we needed help with specific tasks) and obviously it was great for advancing my R skills.

One of the most important “big picture” lessons I learned was that if I want to actually do software development in R (or any programming language), I have to be more organized about my code. I am organized when it comes to data management, but am definitely less-so with my scripts and functions. Workflow wise, I want to get on top of this by the end of the semester.

I’m also one step closer to completing a major R-new-year’s-resolution: Build an R package! I have a couple of functions that I rely on for data wrangling operationalized text data to time series data, so I’m eager to wrap them all up in a neat little package for future use.

And finally, attending the workshop was a great reminder about how amazing the R community is, both offline and online. That’s one of my favorite parts about being an R programmer—the community makes it easy to be excited about learning R.

I am so grateful to Angela and Stephanie for hosting this amazing workshop, and to R Forwards for sponsoring my attendance. If you are interested in checking out the materials from this weekend, they have made the workshop material available here.

Tweets about WI Gubernatorial Race Part II: Election Night

Sorry it’s been so long since I’ve posted! The last few months has been absolutely crazy, with visiting family members, paper deadlines, and end-of-semester tasks. I did hit a major milestone: I have officially completed all my coursework for my Ph.D!

Today, I want to focus on my part-2 analysis of the WI election, which I am informally calling, “If you want to know who will win gubernatorial elections first, follow local journalists.”

The figure below is a plot of tweets about Scott Walker and Tony Evers on the night of the Gubernatorial Election (12 a.m. to 2 a.m.). [For more about the data collection, please see the post below].

The Big Picture

The first vertical line represents the first tweet in my dataset that called a win for Evers. This came from Milwaukee Journal Sentinel reporter Mary Spicuzza, who tweeted out at 12:53 a.m. CST (apologies; my timestamp is not adjusted for daylights saving).

mspicuzzamjs.png

While there was an increase in the number of tweets after Spicuzza’s, it didn’t reach full attention for another hour and a half, when it was officially reported by the Associated Press at 1:25 a.m. Attention, measured by counts of tweets with the word Walker or Evers, spikes not long after this tweet.

8 ap.png

What happened in that window of time, the half hour between when it was officially reported by the Journal Sentinel, and when it was reported by the Associated Press?

A Twitter Conversation among Wisconsonites

Unsurprisingly, most of the tweets from this time appeared to come from Wisconsin residents, or people with ties to Wisconsin (as indicated by their geographic information, or by information in their profile, such as being an alum of a UW-System school. One tweet from a self-reporting Wisconsonite said, “Tony Evers (D) now up over Scott Walker (R) by just over 1,000 votes out of 2.5M votes cast. #WiGov”

There were also many references to local media outlets, as seen in the examples below (which were also retweeted by mostly Wisconsinites):

“Looks like @tmj4 just reported live from the courthouse that 38,000 votes just went to #tonyevers when @cityofmilwaukee votes we're tallied. I'm calling it. Tony Evers defeats Scott Walker as the next govenor.of #Wisconsin. Boom. https://t.co/0Y1cObTwy!” - RyanThompson

1.png
4.png

There were also many references to local Wisconsin issues, such as Walker’s rampant Union-busting, or his gutting of education funding (this was mentioned by both people in Wisconsin and those outside of Wisconsin, though the former had an obviously greater attachment):

”Fingers crossed that my great home state of Wisconsin has finally rid themselves of the Union-busting, education-destroying, Foxconn swindling corporate shill that is Scott Walker. But I won’t believe he’s gone until every vote is counted” - @sjtruog (1:17 AM)

“Wait did Scott Walker actually lose? Bc I hate him with such a particular acid for what he did to public education in that state that I want to know if I can dance a mad tarantella on that smug prick’s career grave” - @meganskittles

Cultural References

One of the things I really enjoyed about these tweets were their continual cultural references to Wisconsin. Because tweets during this time were predominantly written by Wisconsonites or those with ties to Wisconsin, there were many tweets referencing things like Menards, as noted above, Culvers, and the Packers).

“I've been this proud to be a Wisconsinite three times: when Favre won a Super Bowl, when Aaron won a Super Bowl, and when we voted melty-faced suffering-horny human khaki Scott Walker out of office.” - @meg_luvs_pandas (1:24 AM)

“If Tony Evers beats Scott Walker that would be the most Wisconsin shit that ever happened since Culver’s showed up.” - @Joe_Bowes (12:53 AM, Milwaukee, WI)

“Can someone tell me if Scott Walker is going to have to get a job at Menard's so I can go to bed.“ - @JustinLaughs (1:07 AM, from Greendale)

Another noticeable feature of this language was the use of the pronoun “we” to refer collectively to Wisconsinites.

“are… are we finally getting rid of scott walker [?] is it happening [?]” - @AlexZiebart (12:55 AM, Milwaukee, WI)

“I’m so nervous to see who won governor in wisconsin […] we need Scott walker out of office!!!” - @taypyt (12:55 AM)

“My final political tweet for the evening: if we have really finally done it, nothing has given me more pleasure than to vote against Scott Walker in five different elections. Bye Felicia” - @alephtwo (12:58 AM, Madison, WI)

The use of this “royal” we (“state-wide” we?) instills the idea of a collective identity that is directed towards the voting out of Walker from office. It evokes a sense of solidarity, or “survival” from Walker’s terms in office.

Outsiders looking in

A few outside of the WI gate were able to tap into this information, as indicated by this tweet from VA resident: This is one of the most unbelievable finishes I have ever seen. Came down to a bunch of uncounted absentee ballots. Looks like Scott Walker is done. https://t.co/D8VwrxGZOk.” - @junkiechurch, (12:57 AM)

Those in close proximity to the Wisconsin appeared to be more attentive as well:

“No more Scott Walker. Wisconsin, I tease you all the time, but you did a good job today.” - @KyleWarner3000 (1:16 AM, DeKalb, IL)

However, many (presumably) outside of Wisconsin expressed frustration about wanting to learn more:

“DAMNIT CNN SHOW ME THE SCOTT WALKER RACE“ - @Seattle_9 (1:12 AM, Seattle, WA)"

“Wait did Scott Walker actually lose? Bc I hate him with such a particular acid for what he did to public education in that state that I want to know if I can dance a mad tarantella on that smug prick’s career grave “ - @godhatesyeast (1:13 AM, USA [no state indicated])

It was about Walker losing, not Evers winning

As seen by the figure above, attention was squarely focused on Walker losing, rather than Ever winning. This suggests that Twitter communities perceived the election as a victory because Walker lost, not necessarily because Evers won. Many of the tweets were focused on insulting Walker.


”EAT MY ENTIRE SHIT COTT WALKER” - @ChiYoungMoon (12:59 AM)

“Good bye Scott Walker you trifling ham and cheese eatin' bitch https://t.co/ODW3kMWPhC“ - @jae_dubb (1:09, Chicago)

In situations where Evers was referenced, it was often because he (having been a teacher) made an ironic foil to Walker.

5 popular.png

“Scott Walker loses thanks to a Milwaukee wave. What a night. Couldn't happen to a more deserving guy. https://t.co/2KEDdpeNAe3” - @Save_the_Daves (1:15 AM, Milwaukee, WI)

In the above instances, Evers is celebrated but not explicitly mentioned. Walker, by contrast, is referenced in full name. In the first tweet, by @Bro_Pair, Evers is framed as a “kindly teacher”, the kind of person who was directly impacted by Walker’s economic policy. The expression of joy (“glad I stayed up late enough…”) reflects a sense of schadenfreude—taking pleasure in watching Scott Walker lose. This sense was expressed by many others…

“It looks like Scott Walker might lose to Tony Evers. Don’t go to bed or you might miss the best schadenfreude of the midterm elections.” - @RiskyLiberal (1:23 AM)

“Seeing Kris Kobach and Scott Walker lose is pretty sweet, but my schadenfreude dream team was Ted Cruz and Steve King “ - @antitractionist (1:23 AM)

… and sometimes in bizarrely sexual references.

The Recount Topic

Tweets about a recount appeared as early as announcements about the Milwaukee absentee ballots. Many tweets were written by conservative-identifying or MAGA-identifying accounts.

(R) Scott Walker, WI gov, is requesting a recount.” - @AKLLL49 (1:20, Profile: Love our @POTUS […] PHUCK #Grammernazis #Haters of #Guns and #Freespeech. #MAGA)

“Both sides expect protracted recount in Wisconsin governor's race between Scott Walker and Tony Evers https://t.co/ilCQHR8KUT” - @jackiebullivant (1:22, Profile: Conservative, business owner & political enthusiast. We need honest, authentic gov’t FOR and BY the people b/c people matter! Free speech. #MAGA #PPC2019)

“Governor Scott Walker's campaign has announced plans to call for a recount, should Evers come out on top. Either candidate can call for a recount if the results come in within 1%.” - @KFIZ1450 (1:03 AM, Fond du Lac, WI)

One was pretty sure Walker was going to win:

“Hey look on the bright side at least we still have Scott Walker and Ted Cruz.” - @johnforchione (12:57 AM)

Liberal Rebuttal

By 1:23, there were already (mostly liberal) rebuttals to a call for a recount, with many pointing out (ironically) that Walker had pushed for the bill that now prevented him from calling a recount.

“Tony Evers defeats Scott Walker by 1.1%! Outside of the margin for a recount that Scott Walker passed  into law for a recount. Karma is a bitch!” - @Fetzer2 (1:23 AM)

Conclusion

What can we learn from this analysis?

1) If you want to know who wins a state-wide election, follow local reporters. They have the greatest level of access to updated voting information, and are much more knowledgeable about their geographic region than national news outlets.

2) In a media environment that focuses on one event, or what researchers would call a media storm, “liberals” and “conservatives” respond to each other very quickly, within the span of a few minutes. Given the hybrid nature of the U.S. media system, it is likely that media storm dynamics will impact social media, particularly Twitter(as a platform for professional journalism). Capturing this dynamic in media storms, therefore, requires very granular levels of data.

3) To understand the politics, one needs to understand the culture of that society. Regional cultural references were an important feature of this discourse, which was unique compared to the post-AP tweet time span. In this latter time, tweets were still focused on Walker’s loss (rather than Ever’s win). However, following Associated Press’ reporting, the tweets were predominantly by those outside of Wisconsin. The story was reaching national attention, and the discourse had lost this specific local component.

Overall, this was an interesting project for me to examine how a state-wide political event goes national on Twitter in an hour and a half.

August: The Month of Travel!

It's been quite some time since I've done a lot of travel, but my August will be all about trips, trips, trips!

In the beginning of the month, I will be attending sixth AEJMC in Washington D.C. (Aug 6-9)  to present my work on news coverage with tweets written by Russian IRA accounts. I'm looking forward to presenting my work, and taking some time to visit the city!

Then, it's off to NYC for Restaurant Week and to celebrate a friend's birthday!

Back to Madison briefly, to get ready for a family trip to Europe with John! Our Europe trip includes stops in Keflevik, Iceland; Paris, France; and Amsterdam, the Netherlands. After several years of travel-less-ness, my wanderlust is really itching.

Here's to a month of good adventures, new ideas, and an ever-expanding universe! - Jo

Interview with Cap Times

This past week, I interviewed with Capital Times in Madison to talk about a recent co-authored study about Russian propaganda in U.S. news media.

I'm glad that the writer, Lisa Speckhard, did a great job capturing my greatest concern with Russian influence and disinformation. We know that the Russians are not going to stop trying to infiltrate U.S. public discourse. They haven't stopped since WWII, and I doubt they ever will.

What we can do is ask ourselves (1) where are they likely to make their way into American political discourse and (2) what can we do [on our end] to stop it.

Journalists are in a special space, as gatekeepers of information, to both prevent and perpetuate Russian propaganda from amplifying. As we learned through this study, this gate is not impervious... especially now that there are so many gates.

In order to keep our public discourse "pure" (that is, not unknowingly manipulated by foreign influences), we need to be self-reflexive, vigilant, and careful. I am continually reminded of this when news organizations reach out to members of our team asking about various articles that have included IRA-linked tweets. We need more news organizations like this and like Slate, who continue to be critical of their journalistic routines.