Skip to content

Analysis on Telecom Customer Churn Data

Introduction

Problem

Customer churn rate has increased. Why ?

Context

Telecommunication industry is marked by fierce competition, evolving customer expectations, and disruptive technologies, understanding and mitigating customer churn is paramount for sustained success.

Objective

The objective of this analysis is to find out which age group among our customers sends more sms than make phone calls?, Number Of Distinct Phone calls and Different Call Length For each Age Group and if There are significant difference between the length of phone calls between different tariff plan ?

Data was collected from a telecom company in Iran. Each observation provides a variety of features about the customers such as call failures, frequency of SMS, number of complaints, subscription length, age group, charge amount, Tariff Plan, seconds of use, status, frequency of use, and customer value.

Data Dictionary

The data was analysed using data aggregation to determine which age group among our customers sends more sms than make phone calls, data visualization to find out number of distinct phone calls and different call length for each age group ?and hypothesis testing to determine if there are significant difference between the length of phone calls between different tariff plan ?

The table and visual representation offer insights into the proportions of each age group also highlighting the dominant age group

# Load packages
library(readr)
library(dplyr)
library(ggplot2)

Cust_churn <- read_csv('data/customer_churn.csv', show_col_types = FALSE)
head(Cust_churn)
column_name <- c("Call_failure", "Complaints", "Subscription_length", "Charge_amount",
  "Seconds_of_use", "Frequency_of_use", "Frequency_of_sms", "Distinct_called_numbers",
  "Age_group", "Tariff_plan", "Status", "Age", "Customer_value", "Churn")

cust_chur <- read_csv('data/customer_churn.csv', show_col_types = FALSE, skip = 1, 
                       col_names = column_name) 
cust_chur$Age_group <- factor(cust_chur$Age_group)
cust_chur$Age <- factor(cust_chur$Age)
count <- cust_chur %>%
group_by(Age_group) %>%
count(sort = TRUE)
count 

ggplot(cust_chur,aes(x = Age_group, fill = Age )) +
geom_bar(position = "dodge") +
ylab("proportion")

4. Which Age Groups Send More Sms Message Than Make Phone Calls ?

Delving deeper into the data, the analysis revealed the communication preferences of various age groups, focusing on frequency of sms and frequency of use factors. By examining the metric, we can discern which age groups demonstrate a propensity for SMS messaging as their preferred mode of communication. These visual representations offer insights into frequency of communication methods, highlighting disparities among the age group. Our analysis uncovers intriguing insights into communication preferences across age groups. We identify which age groups prefare a SMS messaging compare to phone calls, shedding light on generational differences in communication behaviors and technological adoption.

# Load package
library(ggplot2)
# Plot a histogram of Frequency_of_sms
ggplot(cust_chur, aes(Frequency_of_sms)) +
 geom_histogram(binwidth = 50) +
ggtitle("Frequency_of_sms")

SMS_by_Age_group <- cust_chur %>%
group_by(Age_group) %>%
summarize( median_Frequency_of_sms = median(Frequency_of_sms), iqr_frequency_of_sms = IQR(Frequency_of_sms)) 
SMS_by_Age_group
ggplot(cust_chur, aes(x = Frequency_of_sms, fill = Age_group)) +
 geom_boxplot() 
ggtitle("Distribution Of Frequency_of_sms Between The Age Groups")

# Plot a histogram of Frequency_of_use
ggplot(cust_chur, aes(Frequency_of_use)) +
 geom_histogram(binwidth = 30) +
ggtitle("Frequency_of_use")
# filter call to find outliers
Call_by_Age_group <- cust_chur %>%
group_by(Age_group) %>%
summarize(median_Frequency_of_use = median(Frequency_of_use), iqr_Frequency_of_use = IQR(Frequency_of_use)) 
Call_by_Age_group
ggplot(cust_chur, aes(x = Frequency_of_use, fill = Age_group)) +
 geom_boxplot() 
ggtitle("Distribution Of Frequency_of_phone call Between The Age Groups")


 


5. Number Of Distinct Phone calls and Different Call Length For each Age Group

The box plot illustrate the distribution of distinct phone calls and the variation in call lengths among different age groups. These visual representations provide a clear overview of communication patterns, highlighting differences among age groups.