TV from a Data Perspective - An Analysis of NBC's The Office
The Office is an American comedy series that aired on NBC from 2005-2013. It's about the day to day life at a paper company in Scranton, Pennsylvania. Even though the show has an ensemble cast, the four characters that appear more than anyone else are: 1. Michael Scott, the regional manager 2. Dwight Shrute, paper salesman and self-appointed second-in-command 3. Jim Halpert, rival paper salesman, and 4. Pam Beesly, receptionist.
The dataset for this project is the text for all spoken lines for the entire run of the show. It was scraped by user u/misunderstoodpoetry on reddit from officequotes.net. It consists of ~58,000 lines, spoken over ~9,000 scenes, ~200 episodes, and 9 seasons. Each line of the data contains: season#, episode#, scene#, speaker, and the line text.
The Office was without question an overwhelming success. It was one of NBC's highest rated series during its run, and it was nominated for 42 Emmy's and 9 Golden Globes. So what made it so good? Why do people like it?
These are the imdb viewer ratings for each episode of the office (rated on a scale of 1 to 10). The highest up-spike is the series finale. Another one occurs in season 7 when Michael leaves the show. There's also an episode in season 5 that followed the Super Bowl that was well-received. The most unpopular episode was in season 6, which can be explained by the fact that it was a "clip" episode, meaning that it consisted primarily of scenes cut from previous episodes.
These are external explanations and other important factors include the stellar cast and directing, but what can we do with what we have? Can we find any clues to the show's success within the script itself?
For me, this is done as a fan of the show, entirely out of curiosity, but I can imagine that a writer or TV exec. might be interested in the answers to that question (especially if they're contemplating a spin-off, reboot, or revival). Another audience that might find these answers useful are people in the digital humanities.
The first tool we'll be using to investigate the show is Lineshare:
- the # of lines a character speaks / the # lines spoken by all characters
Intuitively, this is a good proxy for screen-time or how often we see a character.
From the lineshare breakdown for each of the nine seasons, we can see that Michael clearly speaks the most by far (until he leaves the show in season 7). The next three most common speakers are Dwight, Jim, and Pam. Fifth place rotates for a while but eventually settles on Andy.
The second tool we'll be using is Co-occurence:
- the # of times two characters are in scenes together
This is an attempt at measuring the relationships in the show. People are social creatures, and they care about how they relate with each other. The strongest recurring relationships in the office include Jim and Pam (romantic), Jim and Dwight (rivals), and Michael and Dwight (boss/employee but also friends). These relationships can be visualized a few different ways. If you take the characters by pairs, you can build a heatmap where the heat is their co-occurrence frequency. Alternatively, if you think as characters as nodes, you can use co-occurrence to draw edges between them and create a social graph.
The third tool is Centrality:
- The influence or importance of a character within their social graph
Below you can see the centrality for the characters during season 4. Instead of Michael dominating, as in lineshare, the top spots for centrality are more evenly divided among the central characters.
Using these tools, we can inspect popular or less popular episodes to see if anything stands out.
A link to an episode explorer app can be found at: https://paultondata.shinyapps.io/shinyOffice/
Essentially this has been an exercise in feature engineering. We've taken the dataset and come up with ways to quantify three different aspects of it. Even though they are reasonable attempts grown from intuition, how accurately these metrics describe reality and how useful they actually are remains to be seen and depends on the tasks they are ultimately used for.
The next step would be to fulfill the initial promise and try and correlate these measures to episode rating. Another might be to apply these measures across different TV shows and see if they are useful in differentiating them. Other avenues to look for new features include using natural language processing (e.g. sentiment analysis or LDA) -- because we have the text and ought to use it.
This analysis was done using the R statistical language. The plots and diagrams were made using the ggplot2, plotly, chordDiagram, and igraph libraries. The app was written using Shiny and Shinydashboard.
The specific measure of centrality we use is eigenvector centrality, which weights a node's importance based on its surrounding nodes. You can find out more at: https://en.wikipedia.org/wiki/Eigenvector_centrality
- Dataset: https://www.reddit.com/r/datasets/comments/6yt3og/every_line_from_every_episode_of_the_office_us/
- IMDB User Ratings: http://www.imdb.com/title/tt0386676/epdate
- Donald Knuth's analysis of Les Miserables: http://www-cs-faculty.stanford.edu/~knuth/sgb.html
- Game of Throns Network Analysis: https://gameofnodes.wordpress.com/2015/05/06/game-of-nodes-a-social-network-analysis-of-game-of-thrones/
- Analysis of Friends: http://www.whatwouldjackandchrissydo.com/a-data-analysis-of-the-tv-sitcom-friends/
- Another analysis of Friends: https://thelittledataset.com/2015/01/20/the-one-with-all-the-quantifiable-friendships/