Case Study: How Does a Bike-Share Navigate Speedy Success?

Case Study: How Does a Bike-Share Navigate Speedy Success?

บทเรียนรู้เพื่อเปลี่ยนใจลูกค้า

Introduction

ขอต้อนรับเข้าสู่การวิเคราะห์ข้อมูลผ่านกรณีศึกษาของธุรกิจไบค์แชร์ ! ครั้งนี้เราจะไปเรียนรู้ร่วมกันผ่านข้อมูลและการลงมือทำจริง โดยจะสวมบทบาทเป็นนักวิเคราะห์ข้อมูลหน้าใหม่ประจำบริษัท Cyclistic (ชื่อสมมุติ) ซึ่งจะทำงานผ่านกระบวนการวิเคราะห์ข้อมูลทั้ง 6 ขั้นตอน ได้แก่ ask, prepare, process, analyze, share และ act

Scenario

เราในฐานะนักวิเคราะห์ข้อมูลน้องใหม่สังกัดทีมวิเคราะห์การตลาดของบริษัท Cyclistic หนึ่งในบริษัทธุรกิจไบค์แชร์ของเมืองชิคาโก หัวหน้าใหญ่สุดของทีมเรามีความเชื่อมั่นว่าความสำเร็จของบริษัทในอนาคตจะขึ้นอยู่กับการเพิ่มจำนวนของลูกค้าสมาชิกรายปี ดังนั้นทีมของเราต้องไปทำความเข้าใจให้ได้ว่าลูกค้าทั่วไปและลูกค้าสมาชิกรายปีมีพฤติกรรมการใช้จักรยานแตกต่างกันอย่างไร ข้อมูลเชิงลึกที่ได้จะถูกนำไปออกแบบเป็นกลยุทธ์การตลาดใหม่เพื่อเปลี่ยนใจลูกค้าทั่วไปมาเป็นสมาชิกรายปี แต่ก่อนจะไปถึงขั้นนั้นได้ จะต้องผ่านการอนุมัติจากทีมผู้บริหารเสียก่อน เพราะฉะนั้นข้อมูลเชิงลึกจะต้องแน่นและการนำเสนอเป็นภาพต้องเป็นมืออาชีพ

Characters and teams

มาดูกันว่าเราต้องทำงานร่วมกับใครหรืออะไรกันบ้าง

  • Cyclistic: โครงการไบค์แชร์ของบริษัทที่ให้บริการเช่าจักรยานมากกว่า 5,800 คัน พร้อมสถานีจอดกว่า 600 แห่ง Cyclistic สร้างความแตกต่างโดยการให้บริการจักรยานหลากหลายรูปแบบ ไม่ว่าจะเป็นจักรยานแบบเอนปั่น (reclining bike) จักรยานสามล้อแบบใช้มือปั่น (hand tricycles) และจักรยานบรรทุกของ (cargo bike) เพื่อให้ครอบคลุมถึงกลุ่มผู้พิการและผู้ขับขี่ที่ไม่สามารถใช้จักรยานสองล้อมาตรฐานได้ จำนวนของผู้ขับขี่ส่วนใหญ่เลือกใช้เป็นจักรยานแบบมาตรฐานและมีประมาณ 8% ที่ใช้เป็นจักรยานทางเลือก ในแง่วัตถุประสงค์ของการใช้งานนั้นส่วนใหญ่มักจะขี่เพื่อการพักผ่อน อีกประมาณ 30% ใช้ในการเดินทางไปทำงานในแต่ละวัน

  • Lily Moreno: ผู้อำนวยการฝ่ายการตลาดและเป็นหัวหน้างานของเรา Moreno ดูแลในส่วนของการพัฒนาแคมเปญและออกความคิดริเริ่มเพื่อส่งเสริมโครงการไบค์แชร์ รวมไปถึงการทำการตลาดผ่านอีเมล สื่อสังคมออนไลน์ และช่องทางอื่น ๆ

  • Cyclistic marketing analytics team: ทีมนักวิเคราะห์ข้อมูลทำหน้าที่รวบรวม วิเคราะห์ และรายงานข้อมูลเพื่อช่วยในการวางแผนการตลาดให้กับโครงการ Cyclistic เราเป็นนักวิเคราะห์ข้อมูลน้องใหม่ที่เข้าร่วมทีมนี้มาได้หกเดือน ซึ่งตอนนี้กำลังง่วนอยู่กับการเรียนรู้เกี่ยวกับพันธกิจและเป้าหมายทางธุรกิจของบริษัท รวมไปถึงแนวทางในการทำงานเพื่อสนับสนุนให้บริษัทบรรลุเป้าหมายตามที่วางไว้

  • Cyclistic executive team: ทีมผู้บริหารที่มีกิตติศัพท์ด้านการใส่ใจรายละเอียด จะเป็นผู้ตัดสินใจว่าแผนกลยุทธ์ที่แนะนำโดยทีมวิเคราะห์การตลาดนั้นจะได้ไปต่อหรือไม่ได้ไปต่อ

About the company

โครงการไบค์แชร์ของบริษัท Cyclistic เริ่มต้นตั้งแต่ปี 2016 และค่อย ๆ เติบโตขึ้นจนมีจำนวนจักรยานถึง 5,824 คันในปัจจุบัน จักรยานแต่ละคันมีระบบติดตามตำแหน่งและจอดให้บริการตามสถานี 692 แห่งทั่วเมืองชิคาโก ผู้ใช้งานสามารถใช้จักรยานด้วยการปลดล็อกผ่านแอปพลิเคชันบนสมาร์ทโฟนจากสถานีหนึ่งและจอดคืนที่สถานีใดก็ได้ตลอดเวลา

ตั้งแต่อดีตจนถึงปัจจุบันกลยุทธ์ทางการตลาดของ Cyclistic ยังคงอาศัยการสร้างการรับรู้ทั่วไปและดึงดูดกลุ่มเป้าหมายในวงกว้าง แนวทางหนึ่งที่ทำให้แผนการตลาดประสบความสำเร็จคือความยืดหยุ่นของการกำหนดค่าบริการ ซึ่งมีทั้งแบบขับขี่เที่ยวเดียว (single-ride pass) แบบขับขี่เต็มวัน (full-day pass) และแบบสมาชิกรายปี (annual membership) โดยผู้ใช้งานที่ใช้บริการแบบเที่ยวเดียวหรือเต็มวันจะเรียกว่า ลูกค้าทั่วไป ส่วนผู้ใช้งานที่เป็นสมาชิกรายปีจะเรียกว่า ลูกค้าสมาชิก

นักวิเคราะห์การเงินของบริษัทได้ให้ข้อมูลเอาไว้ว่าสมาชิกรายปีนั้นทำกำไรให้กับบริษัทมากกว่าสมาชิกทั่วไป ซึ่งแม้ว่าความยืดหยุ่นด้านราคาจะช่วยทำให้บริษัทดึงดูดลูกค้าได้มากขึ้น แต่ทาง Moreno ก็ยังเชื่อว่าการเพิ่มจำนวนสมาชิกรายปีให้ได้มากที่สุดนั้นเป็นกุญแจสำคัญสู่การเติบโตในอนาคต แทนที่จะยิงแคมเปญการตลาดให้กับกลุ่มลูกค้าใหม่ทั้งหมด ก็ให้ทำการตลาดโดยการเปลี่ยนลูกค้าทั่วไปมาเป็นลูกค้าสมาชิกด้วย ซึ่งเธอตั้งข้อสังเกตว่าลูกค้าทั่วไปมีความคุ้นเคยกับ Cyclistic อยู่แล้ว

Monero ได้กำหนดเป้าหมายไว้อย่างชัดเจน คือ การออกแบบกลยุทธ์ทางการตลาดโดยมุ่งให้เปลี่ยนลูกค้าทั่วไปมาเป็นลูกค้าสมาชิกรายปี ซึ่งการที่จะทำเช่นนั้นได้ ทางทีมวิเคราะห์การตลาดจำเป็นต้องมีความเข้าใจให้ดียิ่งขึ้นว่าลูกค้าสมาชิกรายปีแตกต่างกับลูกค้าทั่วไปอย่างไร ซึ่ง Monero และทีมงานสนใจที่จะวิเคราะห์บันทึกข้อมูลการเดินทางของจักรยานเพื่อค้นหารูปแบบหรือแนวโน้มจากข้อมูล

• • •

Data analysis process

Ask

ขั้นตอนแรกของกระบวนการวิเคราะห์ข้อมูล คือ การกำหนดวัตถุประสงค์ของการวิเคราะห์ข้อมูลซึ่งมักมีที่มาจากปัญหาหรือคำถามทางธุรกิจ

จากเป้าหมายที่ต้องการเพิ่มจำนวนสมาชิกรายปีเพื่อผลักดันการเติบโตของบริษัทในอนาคตนั้น ทางทีมได้กำหนดเป็นคำถามทางธุรกิจไว้ 3 ข้อสำหรับเป็นแนวทางในการทำการตลาด

  1. ลูกค้าสมาชิกรายปีและลูกค้าทั่วไปมีพฤติกรรมการใช้จักรยานแตกต่างกันอย่างไร ?

  2. มีเหตุผลใดที่ลูกค้าทั่วไปจะซื้อสมาชิกรายปีของ Cyclistic ?

  3. Cyclistic จะใช้สื่อดิจิทัลเพื่อโน้มน้าวลูกค้าทั่วไปให้เป็นสมาชิกได้อย่างไร ?

ซึ่งทาง Monero ได้มอบหมายคำถามข้อแรกให้เราเป็นผู้วิเคราะห์หาคำตอบ เพราะฉะนั้นวัตถุประสงค์ของการวิเคราะห์ของเราก็คือ

วิเคราะห์ความแตกต่างของพฤติกรรมการใช้จักรยานระหว่างลูกค้าสมาชิกรายปีกับลูกค้าทั่วไป สำหรับการออกแบบกลยุทธ์การตลาดใหม่เพื่อเปลี่ยนลูกค้าทั่วไปให้มาเป็นสมาชิกรายปี

Prepare

เราจะใช้ข้อมูลเปิดที่ผลิตโดยบริษัท Motivate International Inc. ภายใต้ข้อตกลงสิทธิ์การใช้ข้อมูล มาเป็นตัวแทนข้อมูลของบริษัท Cyclistic ที่เราจะวิเคราะห์กัน โดยเราจะใช้บันทึกข้อมูลการเดินทางของจักรยานย้อนหลัง 12 เดือน (เดือนมกราคม-ธันวาคม 2022) และสามารถดาวน์โหลดข้อมูลได้ที่นี่

หมายเหตุ: เนื่องจากข้อจำกัดด้านความเป็นส่วนตัวของข้อมูล จึงไม่มีข้อมูลที่ระบุตัวบุคคลได้

ข้อมูลอยู่ในรูปแบบของไฟล์ CSV มี 12 ไฟล์แยกตามเดือน แต่ละไฟล์ประกอบไปด้วยข้อมูล 13 คอลัมน์ ซึ่งไม่ได้มีคำอธิบายข้อมูล (metadata) มาให้ด้วย แต่ก็ยังสามารถเข้าใจได้ไม่ยากจากชื่อของคอลัมน์

Column name

Description

ride_id

Unique ID of a ride

rideable_type

Type of bike

started_at

Date and time of trip start

ended_at

Date and time of trip end

start_station_name

Name of start station

start_station_id

Unique ID of start station

end_station_name

Name of end station

end_station_id

Unique ID of end station

start_lat

Latitude of start station

start_lng

Longitude of start station

end_lat

Latitude of end station

end_lng

Longitude of end station

member_casual

Contains 'member' or 'casual' to indicate type of customer

จากการสำรวจรายละเอียดของข้อมูลเบื้องต้นพบว่ามีข้อมูลบางส่วนขาดหายไปในคอลัมน์ที่เกี่ยวกับสถานีจอดและพิกัดที่ตั้ง ซึ่งอาจอยู่นอกเหนือขอบเขตการหาคำตอบของเรา ทำให้ในภาพรวมยังถือว่าเป็นข้อมูลที่ดี (เข้าเกณฑ์ ROCCC) และเพียงพอที่จะนำไปวิเคราะห์ต่อได้

Process

ในขั้นตอนนี้จะเป็นการตรวจสอบหาข้อมูลที่ไม่ถูกต้องและทำความสะอาดข้อมูลกันด้วยโปรแกรม R

Step 1: Load packages

# Install the required packages
install.packages("tidyverse")
install.packages("skimr")
install.packages("janitor")
# Load the packages
library(tidyverse)
library(skimr)
library(janitor)

Step 2: Import and merge data

# Import and merge the data
df <- list.files(path = "2022-divvy-tripdata",
                 pattern = "*.csv",
                 full.names = TRUE) %>%
  lapply(read_csv) %>%
  bind_rows

Step 3: Getting to know our data

# Preview the data using the head() function
head(df)

# View all variable names
colnames(df)

# Obtain a summary of the data frame
skim_without_charts(df)

Step 4: Cleaning our data

จากสรุปข้อมูลที่ได้จากฟังก์ชัน skim_without_charts() จะเห็นว่าข้อมูลทั้งหมดมีจำนวน 5,667,717 แถว และมีค่าเท่ากับจำนวนนับแบบไม่ซ้ำของคอลัมน์ ride_id แสดงว่าไม่พบว่ามีค่าซ้ำในข้อมูลของเรา นอกจากนี้เราจะเลือกคัดข้อมูลที่ผิดพลาดออก เช่น คอลัมน์ที่มีข้อมูลขาดหายไป (missing data) ให้เหลือเฉพาะคอลัมน์ที่เราสนใจเท่านั้น และจะสร้างเป็นข้อมูลชุดใหม่ขึ้นมาชื่อว่า trimmed_df

# Create a new data frame with the desired columns
trimmed_df <- df %>%
  select(ride_id, rideable_type, member_casual, started_at, ended_at)

Step 5: Transform the data

เราจะสร้างคอลัมน์ขึ้นมาใหม่อีก 3 คอลัมน์เพื่อใช้ในการวิเคราะห์และแสดงข้อมูลเป็นภาพ ได้แก่

  • ride_length คือ ระยะเวลาในการขับขี่ (นาที)

  • day_of_week คือ วันในสัปดาห์

  • month_of_year คือ เดือนของปี

# Convert the 'started_at' and 'ended_at' columns to POSIXct objects
trimmed_df$started_at <-
  as.POSIXct(trimmed_df$started_at, format = "%Y-%m-%d %H:%M:%S")
trimmed_df$ended_at <-
  as.POSIXct(trimmed_df$ended_at, format = "%Y-%m-%d %H:%M:%S")

# Calculate the difference between the two times and store it as the 'ride_length' variable
trimmed_df$ride_length <-
  difftime(trimmed_df$ended_at, trimmed_df$started_at, units = "mins")
# Extract the day of the week from the 'trimmed_df$started_at' column
trimmed_df$day_of_week <- weekdays(trimmed_df$started_at)
# Extract the month of the year from the 'trimmed_df$started_at' column
trimmed_df$month_of_year <- format(trimmed_df$started_at, "%b")

# Preview the data using the head() function
head(trimmed_df)

# Obtain a summary of the new data frame
skim_without_charts(trimmed_df)

ค่าต่ำสุด (min) ของข้อมูลในคอลัมน์ ride_length เป็นค่าติดลบ แสดงว่าอาจมีข้อมูลที่ไม่ถูกต้องปะปนอยู่ ซึ่งจะมีผลให้การคำนวณค่าทางสถิติคลาดเคลื่อนและนำไปสู่การแปลผลที่ผิดพลาดได้ เราจึงตัดสินใจเลือกตัดข้อมูลส่วนนี้ออกไปจากการวิเคราะห์

# Identify the instances with positive ride lengths
valid_rows <- trimmed_df$ride_length > 0

# Retain only the rows with positive ride lengths
trimmed_df <- trimmed_df[valid_rows, ]

# Verify if any rows remain in the data frame
nrow(trimmed_df)

ข้อมูลที่ถูกตัดออกไปมีจำนวนไม่มากนัก ถือว่าไม่มีผลกระทบอย่างมีนัยสำคัญต่อการวิเคราะห์ของเรา

Analyze

และตอนนี้ข้อมูลของเราก็ถูกจัดรูปแบบใหม่อย่างเหมาะสมและพร้อมสำหรับการวิเคราะห์ข้อมูลแล้ว ขั้นต้นเราจะคำนวณหาค่าสถิติพื้นฐานเพื่อให้เข้าใจโครงสร้างของข้อมูล

# Calculate descriptive statistics for the 'ride_length' column
trimmed_df %>%
  summarise(
    mean = mean(ride_length),
    median = median(ride_length),
    min = min(ride_length),
    max = max(ride_length),
    sd = sd(ride_length),
    count = n()
  )

# Convert the 'day_of_week' column to a factor variable with a specified level order
trimmed_df$day_of_week <-
  factor(
    trimmed_df$day_of_week,
    levels = c(
      "Monday",
      "Tuesday",
      "Wednesday",
      "Thursday",
      "Friday",
      "Saturday",
      "Sunday"
    )
  )

# Use the table() function to determine the frequency of each day
table(trimmed_df$day_of_week)

ต่อไปนำประเภทของลูกค้าเข้ามาประกอบร่วมด้วยพร้อมกับแสดงข้อมูลออกมาเป็นภาพเพื่อให้เข้าใจถึงข้อมูลได้ดียิ่งขึ้น โดยจะเริ่มจากการแสดงค่าเฉลี่ยของระยะเวลาในการขับขี่ของลูกค้าสมาชิกและลูกค้าทั่วไป

# Group the data by the 'member_casual' column and calculate the mean 'ride_length' for each group
mean_ride_by_customer <- trimmed_df %>%
  group_by(member_casual) %>%
  summarise(mean_ride = mean(ride_length))

# Generate a bar plot of the 'mean_ride' grouped by the 'member_casual' column
ggplot(mean_ride_by_customer,
       aes(
         x = member_casual,
         y = as.numeric(mean_ride),
         fill = member_casual
       )) +
  geom_bar(stat = "identity", show.legend = FALSE) +
  labs(x = "Customer Type", y = "Average Ride Length (mins)") +
  ggtitle("Average Ride Length by Customer Type") +
  geom_text(aes(label = round(as.numeric(mean_ride), 2)),
            position = position_dodge(width = 0.9),
            vjust = 1.6)

จะเห็นว่าลูกค้าทั่วไปมักจะใช้เวลาในการขับขี่นานกว่าเมื่อเทียบกับลูกค้าสมาชิก จากนั้นเราจะนำข้อมูลวันในสัปดาห์มาวิเคราะห์ร่วมด้วย

# Calculate the average 'ride_length' for each combination of 'member_casual' and 'day_of_week'
mean_ride_by_customer_and_day <- trimmed_df %>%
  group_by(member_casual, day_of_week) %>%
  summarise(mean_ride = mean(ride_length))

# Generate a bar plot of the 'mean_ride' grouped by both the 'member_casual' and 'day_of_week' columns
ggplot(
  mean_ride_by_customer_and_day,
  aes(
    x = day_of_week,
    y = as.numeric(mean_ride),
    fill = member_casual
  )
) +
  geom_bar(stat = "identity",
           position = "dodge") +
  labs(x = "Day of Week", y = "Average Ride Length (mins)", fill = "Customer Type") +
  ggtitle("Average Ride Length by Customer Type and Day of Week") +
  geom_text(aes(label = round(as.numeric(mean_ride), 2)),
            position = position_dodge(width = 0.9),
            vjust = 1.6)

ปรากฏว่าระยะเวลาเฉลี่ยในการขับขี่ของลูกค้าทั่วไปนั้นมีค่าสูงกว่าลูกค้าสมาชิกในทุกวันของสัปดาห์ และจะแตกต่างกันมากที่สุดในวันเสาร์และวันอาทิตย์

ถัดไปเปลี่ยนมุมมองมาดูจำนวนครั้งของการขับขี่กันบ้าง

# Calculate the number of rides by 'member_casual' and 'day_of_week'
rides_by_customer_and_day <- trimmed_df %>%
  group_by(member_casual, day_of_week) %>%
  summarise(ride_count = n())

# Generate a bar plot of the 'ride_count' grouped by both the 'member_casual' and 'day_of_week' columns
ggplot(rides_by_customer_and_day,
       aes(
         x = day_of_week,
         y = round(ride_count / 1000, 0),
         fill = member_casual
       )) +
  geom_bar(stat = "identity",
           position = "dodge") +
  labs(x = "Day of Week", y = "Number of Rides (x1000)", fill = "Customer Type") +
  ggtitle("Number of Rides by Customer Type and Day of Week") +
  geom_text(aes(label = round(ride_count / 1000, 0)),
            position = position_dodge(width = 0.9),
            vjust = 1.6)

พบว่าลูกค้าทั่วไปมีจำนวนครั้งของการขับขี่หรือมีการใช้จักรยานมากกว่าลูกค้าสมาชิกในวันหยุดเสาร์-อาทิตย์ แต่จะมีการใช้งานน้อยกว่าในวันธรรมดา (วันจันทร์ถึงวันศุกร์) ในขณะที่ลูกค้าสมาชิกมีจำนวนการใช้งานจักรยานค่อนข้างคงที่ตลอดทั้งสัปดาห์

ต่อไปเราจะวิเคราะห์ข้อมูลในลักษะเดิมแต่จะเปลี่ยนข้อมูลวันในสัปดาห์เป็นเดือนของทั้งปีแทน เพื่อจะหารูปแบบหรือแนวโน้มที่เกิดขึ้นตลอดปี

# Calculate the number of rides by 'member_casual' and 'month_of_year'
rides_by_customer_and_month <- trimmed_df %>%
  group_by(member_casual, month_of_year) %>%
  summarise(ride_count = n())

# Generate a line plot of the 'ride_count' grouped by both the 'member_casual' and 'month_of_year' columns
ggplot(
  rides_by_customer_and_month,
  aes(
    x = factor(month_of_year, levels = month.abb),
    y = round(ride_count / 1000, 0),
    group = member_casual,
    color = member_casual
  )
) +
  geom_line() +
  labs(x = "Month of Year", y = "Number of Rides (x1000)", color = "Customer Type") +
  ggtitle("Number of Rides by Customer Type and Month of Year")

ในภาพรวมทั้งลูกค้าทั่วไปและลูกค้าสมาชิกมีจำนวนการใช้งานจักรยานเพิ่มขึ้นเรื่อย ๆ ตั้งแต่เดือนมกราคมจนมีค่าสูงสุดในช่วงเดือนกรกฎาคมถึงเดือนสิงหาคม และจะค่อย ๆ ลดลงในเดือนต่อ ๆ มา โดยมีจำนวนการใช้งานจักรยานน้อยที่สุดในเดือนธันวาคม

Summary

ผลการวิเคราะห์ให้ข้อมูลเชิงลึกเกี่ยวกับพฤติกรรมของลูกค้าได้ดังนี้

  • ลูกค้าทั่วไปมักจะใช้เวลาในการขับขี่จักรยานมากกว่าลูกค้าสมาชิกโดยเฉลี่ยประมาณ 16.43 นาที และจะใช้เวลานานขึ้นอีกโดยเฉพาะในวันหยุดสุดสัปดาห์

  • ลูกค้าทั่วไปจะใช้บริการจักรยานมากขึ้นในช่วงสุดสัปดาห์ ในขณะที่ลูกค้าสมาชิกมีจำนวนการใช้บริการที่สม่ำเสมอกว่าตลอดทั้งสัปดาห์

  • จำนวนการใช้งานจักรยานของลูกค้าทั้งสองกลุ่มมีแนวโน้มเพิ่มขึ้นตั้งแต่เดือนมกราคมไปจนถึงเดือนกรกฎาคมและสิงหาคม หลังจากนั้นจะลดลงเรื่อย ๆ ในเดือนที่เหลือของปี แนวโน้มนี้อาจบ่งบอกถึงรูปแบบตามฤดูกาล โดยลูกค้ามีการใช้บริการมากขึ้นในช่วงฤดูร้อนและจะน้อยลงในช่วงฤดูหนาว

หลังจากสรุปผลการวิเคราะห์ เราจะบันทึกข้อมูลที่ถูกจัดรูปแบบใหม่จากขั้นตอนการวิเคราะห์ข้อมูลนี้ออกมาเป็นไฟล์ CSV เพื่อนำไปใช้ต่อกับขั้นตอนถัดไป

# Write the data frame to a CSV file for use in the Share step
write_csv(trimmed_df, file = "trimmed_df.csv")

Share

ข้อมูลที่ได้จะถูกนำมาแปลงให้เป็นภาพเพื่อแบ่งปันการวิเคราะห์และใช้สนับสนุนสิ่งที่ค้นพบ ซึ่ง Monero ได้ย้ำเตือนว่าจะต้องมีความพิถีพิถันและให้รายละเอียดเพื่อให้สามารถสื่อสารกับทีมผู้บริหารได้อย่างมีประสิทธิภาพ

ในที่นี้ได้เลือกใช้โปรแกรม Tableau ในการปรับการแสดงภาพให้เหมาะสมกับผู้รับข้อมูลเพื่อให้เข้าใจสิ่งที่ต้องการนำเสนอได้ง่ายขึ้น ซึ่งเราจะใช้หลักความแตกต่างของสี ขนาด และรูปร่างมาช่วยดึงดูดความสนใจของผู้ฟังไปยังข้อมูลสำคัญที่ต้องการสื่อสาร รวมทั้งการใช้องค์ประกอบต่าง ๆ ของข้อความ เช่น หัวเรื่องหลัก หัวเรื่องรอง และข้อความกำกับเพื่อสื่อความหมายให้ชัดเจน

รูปที่ 1 แสดงระยะเวลาในการขับขี่โดยเฉลี่ยของลูกค้าทั่วไปที่สูงกว่าลูกค้าสมาชิกอยู่ประมาณ 16 นาที

รูปที่ 2 แสดงระยะเวลาในการขับขี่โดยเฉลี่ยของลูกค้าทั่วไปที่สูงกว่าโดยเฉพาะในวันหยุดสุดสัปดาห์

รูปที่ 3 แสดงจำนวนการขับขี่ที่มากขึ้นของลูกค้าทั่วไปในวันหยุดสุดสัปดาห์

รูปที่ 4 แสดงจำนวนการขับขี่ของลูกค้าทั้งสองประเภทที่ผันแปรไปตามฤดูกาล

จากการแสดงภาพข้อมูลข้างต้นชี้ให้เห็นถึงความแตกต่างในพฤติกรรมของลูกค้าทั่วไปและลูกค้าสมาชิกในแง่ของระยะเวลาและความถี่ในการขับขี่

คลิกที่นี่เพื่อเข้าชมการแสดงภาพข้อมูลแบบอินเทอร์แอคทีฟบน Tableau Public

Act

หลังจากได้สร้างการแสดงภาพข้อมูลเพื่อมาสนับสนุนข้อสรุปแล้ว ตอนนี้ก็ได้เวลานำข้อมูลเชิงลึกที่วิเคราะห์ได้มาปรับใช้เป็นแนวทางแก้ไขปัญหาธุรกิจ ซึ่งในที่นี้ก็คือการออกแบบกลยุทธ์การตลาดเพื่อเปลี่ยนลูกค้าทั่วไปมาเป็นสมาชิกรายปี และนี่ก็คือคำแนะนำกลยุทธ์ 3 อันดับแรกที่ได้จากการวิเคราะห์ข้อมูลของเรา

  1. Longer ride discount: สร้างแรงจูงใจให้กับลูกค้าทั่วไปในการสมัครเป็นสมาชิก โดยการมอบส่วนลดพิเศษสำหรับการขับขี่ที่นานขึ้นเมื่อเป็นสมาชิกรายปี ซึ่งสามารถโปรโมตด้วยการทำการตลาดผ่านอีเมลหรือผ่านการแจ้งเตือนในแอปพลิเคชัน

  2. Target weekends: เนื่องจากลูกค้าทั่วไปมีแนวโน้มที่จะขับขี่มากขึ้นในวันหยุดสุดสัปดาห์ จึงแนะนำให้ดึงดูดลูกค้าด้วยโปรโมชันในช่วงวันดังกล่าว ตัวอย่างเช่น เสนอส่วนลดในการขับขี่ในช่วงสุดสัปดาห์สำหรับสมาชิกรายปีเท่านั้น

  3. Timing is key: ใช้ประโยชน์จากแนวโน้มการขับขี่ที่เพิ่มขึ้นตั้งแต่เดือนมกราคมจนไปถึงเดือนกรกฎาคมและสิงหาคมเพื่อส่งเสริมการสมัครเป็นสมาชิกรายปี เช่น เสนอโปรโมชันและส่วนลดในช่วงฤดูร้อน

ด้วยการมุ่งเน้นไปที่คำแนะนำเหล่านี้ เราสามารถพัฒนาแผนการตลาดให้ตรงกับกลุ่มลูกค้าเป้าหมายได้มากขึ้น นอกจากนี้ยังมีข้อมูลด้านอื่น ๆ ที่สามารถนำมาใช้เพื่อขยายผลในการวิเคราะห์ข้อมูลได้ เช่น ข้อมูลประชากร ความคิดเห็นและแบบสำรวจจากลูกค้า การวิเคราะห์คู่แข่ง ข้อมูลตำแหน่งที่ตั้ง และข้อมูลช่องทางการตลาด เป็นต้น

สุดท้ายเราได้รวบรวมประเด็นสำคัญทั้งหมดไว้ในการนำเสนอแบบกระชับเพื่อให้ทุกคนทราบภาพรวมของผลการวิเคราะห์ได้รวดเร็วและง่ายขึ้นเพียงคลิกที่นี่

• • •

กรณีศึกษาของธุรกิจไบค์แชร์นี้ชี้ให้เห็นว่าข้อมูลมีบทบาทสำคัญในการโน้มน้าวใจของลูกค้าด้วยการใช้ข้อมูลเชิงลึก ซึ่งยังเน้นย้ำถึงความสำคัญของการตัดสินใจทางธุรกิจด้วยข้อมูลที่สามารถขับเคลื่อนความสำเร็จทางธุรกิจได้


บทความนี้ถูกเขียนเพื่อใช้เป็นส่วนหนึ่งของคอร์ส Google Data Analytics Capstone: Complete a Case Study สำหรับ Google Data Analytics Professional Certificate

Did you find this article valuable?

Support Porawoot Buranadilok by becoming a sponsor. Any amount is appreciated!