Introduction

Problem/Issue of Concern

Our group is exploring the factors that influence the success of K-dramas, specifically examining how variable such as release year, genre, tags, screenwriter, and duration impact ratings. We are looking to understand what contributes to a highly rated K-drama.

Insights from Prior Studies

Previous studies show that factors like storytelling, production quality, and audience engagement affect K-drama ratings. Research on K-dramas suggests that trends change over time, and viewers are influenced by themes, the actors, and screenwriting.

Objective of Current Study

The research question we are addressing is: What factors, such as release year, genre, tags, screenwriter, and duration, influence the success of a K-drama in terms of ratings? By analyzing a dataset of the top 250 K-dramas, we aim to identify patterns and relationships that contribute to higher ratings in K-dramas.

Significance/Contribution of Current Project

This study is important for production companies and streaming platforms looking to better understand audience preference to get higher K-drama ratings. By identifying key success factors, our findings could help guide decisions on script development, casting, production investments, ultimately to improve viewer satisfaction. Additionally, our research could serve as a valuable reference for new screenwriters and producers aiming to create a K-drama that aligns with audience expectations.

library(ggplot2)
library(dplyr)
library(tidyr)
library(stringr)
library(viridis)  

kdrama <- read.csv("kdrama.csv")

Number of K-Dramas Released Over the Years

# Number of Kdrama based on released year
kdrama %>%
  ggplot(aes(x = factor(Year.of.release), fill = Year.of.release)) + 
  geom_bar() +
  scale_fill_viridis_c() +  # Adds a visually appealing color gradient
  labs(
    x = "Year",
    y = "Number of K-Dramas"
  ) + 
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 45, hjust = 1)  # Rotate x-axis labels
  ) 

Based on the graph create using our data set, we can observe a steady increase in the number of Korean dramas produced each year. For instance, in 2015, only 9 dramas were released, whereas in 2021, the number rose significantly to 39. This trend highlights the growing popularity and demand for Korean dramas over time.

K-Drama Ratings by Network

# Ratings by Original Network
ggplot(kdrama, aes(x = reorder(Original.Network, Rating, median, na.rm = TRUE), 
                    y = Rating, fill = Original.Network)) +
  geom_boxplot(outlier.shape = NA, alpha = 0.7) +  # Hide outliers for clarity
  labs(
    x = "Original Network", 
    y = "Rating"
  ) +
  theme_minimal() +
  theme(
    legend.position = "none", 
    axis.text.x = element_text(angle = 60, hjust = 1)
  ) +
  scale_fill_viridis_d() 

This graph suggests that certain networks particulary the streaming platform Netflix tends to have higher-rated dramas on average. (recommend removing)

Influence of Episode Duration on K-Drama Ratings

# Function to convert duration strings into total minutes
convert_to_minutes <- function(time) {
  hours <- as.numeric(str_extract(time, "\\d+(?= hr)"))  # Extract hours
  minutes <- as.numeric(str_extract(time, "\\d+(?= min)"))  # Extract minutes
  
  hours[is.na(hours)] <- 0  # Replace NA when no hours present
  minutes[is.na(minutes)] <- 0  # Replace NA when no minutes present
  
  return(hours * 60 + minutes)  # Convert to total minutes
}

# Convert the Duration column
kdrama <- kdrama %>%
  mutate(Duration_Minutes = sapply(Duration, convert_to_minutes))

# Define 30-minute interval bins
breaks_seq <- seq(0, max(kdrama$Duration_Minutes, na.rm = TRUE) + 30, by = 30) 
labels_seq <- paste0(head(breaks_seq, -1), "-", tail(breaks_seq, -1) - 1, " min")

# Assign bins
kdrama <- kdrama %>%
  mutate(Time_Group = cut(Duration_Minutes, 
                          breaks = breaks_seq, 
                          labels = labels_seq, 
                          right = FALSE)) 

# Compute mean rating per duration group
duration_summary <- kdrama %>%
  group_by(Time_Group) %>%
  summarise(Average_Rating = mean(Rating, na.rm = TRUE))

# Plot: Influence of Duration on K-Drama Ratings
ggplot(duration_summary, aes(x = Time_Group, y = Average_Rating, fill = Time_Group)) +
  geom_col() +  # Use geom_col() instead of geom_bar(stat = "identity")
  scale_fill_viridis_d() +  # Improved color scheme
  labs(
    x = "Duration Interval (minutes)",
    y = "Average Rating"
  ) +
  theme_minimal() +
  theme(
    axis.text.x = element_text(angle = 45, hjust = 1, size = 10),  # Rotate x-axis labels
    plot.title = element_text(hjust = 0.5, face = "bold", size = 14)  # Center and bold title
  )

Based off this graph you can see that longer episodes have the highest average rating and shorter episodes have the lowest average rating. Viewers seem to rate dramas with longer episodes more favorably. This suggest that more extended storytelling may enhance audience satisfaction.

Top 10 Directors with the Highest Average Ratings

top_directors <- kdrama %>%
  group_by(Director) %>%
  summarise(Average_Rating = mean(Rating, na.rm = TRUE), Count = n()) %>%
  filter(Count >= 3) %>%  # Consider directors with at least 3 dramas
  arrange(desc(Average_Rating)) %>%
  head(10)

ggplot(top_directors, aes(x = reorder(Director, Average_Rating), y = Average_Rating, fill = Director)) +
  geom_col() +
  coord_flip() +
  labs(
    x = "Director",
    y = "Average Rating"
  ) +
  theme_minimal() +
  scale_fill_viridis_d() +
  theme(legend.position = "none")

Based of this graph you can see that the Director Shin Won Ho has the highest average rating of K-dramas. The reason for this could be that he creates a more emotionally engaging, nostalgic, and realistic drama that deeply resonates with the audience.

Ratings by Content Rating based on Age Group

# Filter out the unwanted categories
filtered_kdrama <- kdrama %>%
  filter(!is.na(Content.Rating) & Content.Rating != "G - All Ages")

# Create the violin plot without the removed categories
ggplot(filtered_kdrama, aes(x = Content.Rating, y = Rating, fill = Content.Rating)) +
  geom_violin(trim = FALSE) +
  labs(
    x = "Content Rating",
    y = "Rating"
  ) +
  theme_minimal() +
  scale_fill_viridis_d() +
  theme(axis.text.x = element_text(angle = 45, hjust = 1))

rating_trend <- filtered_kdrama %>%
  group_by(Year.of.release) %>%
  summarise(Average_Rating = mean(Rating, na.rm = TRUE))

The violin plot visualizes the distribution of K-drama ratings across different content rating groups: 13+, 15+, and 18+. Dramas rated 13+ have a narrow rating range, mostly between 8.3 and 8.5, indicating consistent audience reception. 15+ dramas show slightly more variation, while 18+ dramas have the widest spread, with ratings ranging from 8.0 to above 9.0. This suggests that 18+ dramas receive mixed reviews, likely due to their niche appeal, whereas 13+ and 15+ dramas maintain more stable ratings due to their broader audience reach.

Average Rating of K-Dramas Over the Years

ggplot(rating_trend, aes(x = Year.of.release, y = Average_Rating)) + 
  geom_line(color = "red", size = 1) +
  geom_point(color = "darkred", size = 2) +
  labs(
    title = "Average K-Drama Ratings Over the Years",
    x = "Year",
    y = "Average Rating"
  ) +
  theme_minimal() +
  theme(plot.title = element_text(hjust = 0.5, face = "bold", size = 14))

Based off this graph, you can see that over the years K-dramas average ratings have increased slightly over the years after 2005. This shows that the production have K-dramas and popularity has increased over the years.

Top 10 Screenwriters with Highest Average Ratings

# Calculate the top screenwriters based on their average rating
top_screenwriters <- kdrama %>%
  group_by(Screenwriter) %>%
  summarise(Average_Rating = mean(Rating, na.rm = TRUE), Count = n()) %>%
  filter(Count >= 3) %>%  # Consider screenwriters with at least 3 dramas
  arrange(desc(Average_Rating)) %>%
  head(10)

# Scatter plot to represent the top screenwriters
ggplot(top_screenwriters, aes(x = reorder(Screenwriter, Average_Rating), y = Average_Rating, size = Count, color = Average_Rating)) +
  geom_point() +
  coord_flip() +
  labs(
    title = "",
    x = "Screenwriter",
    y = "Average Rating"
  ) +
  theme_minimal() +
  scale_color_viridis_c() +
  theme(legend.position = "none")

The visualization highlights the top 10 screenwriters in the K-drama industry based on their average ratings. Among them, one screenwriter stands out with an average rating above 9.0, though the small dot size suggests they may have written fewer dramas. Notably, established writers such as Kim Eun Hee, Park Jae Bum, and the duo Kim Young Hyun & Park Sang Yeon have larger circles, indicating a substantial number of well-received works. The majority of top screenwriters have average ratings ranging from 8.6 to 8.9, reflecting consistent audience approval. Additionally, several screenwriters appear as part of a writing duo, such as Hong Jung Eun & Hong Mi Ran, which suggests that collaboration may contribute to producing high-quality content. These insights not only showcase the most successful screenwriters but also provide valuable information for networks, production companies, and aspiring writers aiming to create compelling and well-rated dramas.

Conclusions

In conclusion, our analysis of the top 250 K-dramas reveals several key factors that contribute to higher ratings. The growing number of K-dramas over the years, particularly after 2015, underscores the increasing popularity of this genre globally. Our findings show that longer episode durations tend to correlate with higher ratings, possibly due to the opportunity for more developed storytelling. Additionally, drama and romance genres dominate the K-drama landscape, attracting the most viewers. Notably, directors like Shin Won Ho and screenwriters such as Kim Eun Hee and the Hong sisters have consistently produced highly-rated dramas, highlighting the importance of experienced leadership in K-drama production. Content ratings also play a role in audience perception, with 13+ and 15+ dramas maintaining more stable ratings, while 18+ dramas show more variability due to their niche appeal. Overall, our study provides valuable insights for producers and content creators in understanding the elements that lead to K-drama success, from genre and duration to the influence of experienced directors and screenwriters.