Exploring Customer Characteristics Associated with Churn In The Telecommunications Industry

Author

Team Awesome (Group 11): Aldin Hajric + Garrett Springsted

Introduction


Large providers in the telecommunications industry, such as T-Mobile, AT&T, and Verizon, are highly interested in identifying ways to reduce customer churn. While customers may switch providers for various reasons, being able to identify and assess certain characteristics of new and existing customers may support industry leaders in recognizing potential risks of churn in advance. This can allow service providers the opportunity to proactively target at risk customers in an effort to minimize annual customer churn and continue to meet annual revenue targets.

The objective of this study is to explore and evaluate customer characteristics associated with customer churn within the telecommunications industry. The data used in this analysis contains a variety of customer characteristics that will allow for the evaluation of these associations. The findings from this analysis could help service providers better manage customer churn and adjust their strategic planning to retain current and attract future customers.

Data Overview & Exploratory Data Analysis


Dataset Overview

  • The Telecommunications Customer Churn dataset used in this analysis contains 7,043 unique observations capturing customer demographic, service, and account management related information.

  • Informed by pre-existing knowledge and literature, the dataset was narrowed down to 12 possible variable columns of interest. Not all variables were used in the final regression model.



The following columns were selected as possible variables of interest:

Column Name Description Type
Gender Customer gender (Male / Female) Categorical
Tenure_In_Months Length of time (in months) customer has been with provider Numerical
Contract Type of contract customer purchased (Month to Month / One Year / Two Year) Categorical
Monthly_Charge Customer monthly billing amount Numerical
Customer_Status Status of customer (Joined / Stayed / Churned) Categorical
Churn_Category Category describing reason for churn Categorical
Support_Calls Total number of support calls made by customer Numerical
Loyalty_Points Reward points accumulated by customer Numerical
Late_Payments_LastYear Number of late payments made in past year by customer Numerical
Avg_Network_Downtime Average network down time (in hours) experienced by customer Numerical
Customer_Satisfaction Customer satisfaction score (1-10) Numerical
Price_Sensitivity Index measurement of customer sensitivity to price changes Numerical


Exploratory Data Analysis

  • A variety of data transformations and visualizations were used to gain a better understanding of the data and potential relationships between variables of interest.

Data Transformation

Filters

  1. Churned Customers with > 5 Support Calls
  • A filter was used to identify churned customers that have had more than 5 support calls total during their time with the provider.

  • Out of 7,043 total customers, 1,869 customers (~ 26.54%) had churned after experiencing more than 5 support calls over their tenure with the provider.

  • This suggests that roughly a quarter of observed customers may have left the provider due to needing excessive or frequent support services throughout their service time.


  1. Month to Month Contracts with Monthly Charge > $100
  • A filter was used to identify customers who had month to month service contracts with monthly bills totaling over $100 a month.

  • Out of 7,043 total customers, 286 customers (~ 4.06%) had month to month service contracts while their monthly bills were over $100.

  • This suggests a small segment of customers that opted for a “pay by month” contract had relatively high monthly bills.


  1. Unsatisfied Customers In < 12 Months
  • A filter was used to identify customers who had only been with the provider for less than 12 months and were feeling generally unsatisfied with their experience.

  • Out of 7,043 total customers, 475 (~ 6.74%) that were relatively new customers felt generally unsatisfied with their customer experience.

  • This suggests that, in general, newer customers are more likely to have thought their experience to be positive rather than existing customers.


  1. Price Sensitive Customers With Bills > $100
  • A filter was used to identify customers who had high bills over $100 but were also highly sensitive to pricing.

  • Out of 7,043 customers, 89 customers (~ 1.26%) with monthly bills of over $100 showed high sensitivity to price increases.

  • This suggests that, in general, customers already paying higher monthly bills may be less reactive to future pricing increases.


Mutations

  1. Service Issue Score
  • A mutation was used to create a new variable Service_Issue_Score that combines the number of support calls a customer has made with the average network downtime they have experienced.

  • This provides a combined metric of the customers negative service characteristics, allowing for a more narrower view of those customers more likely to churn in association with poor service experience.


  1. Price_Pressure_Score
  • A mutation was used to create a new variable Price_Pressure_Score that multiplies the monthly charge for a customer by their respective price sensitivity score.

  • This provides a combined metric of the effects of pricing on customers, allowing for more of an understanding of customers that may have higher monthly bills while also being more sensitive to price changes.


Counts

  1. Short Term Customers With Lower Service Issues
  • A count was used to identify customers with a monthly service contract with a short tenure of < 12 months and < 2 service support calls.

  • Out of 7,043 customers, 0 customers (0%) with less tenure experienced < 2 service calls.

  • This suggests that, in general, most customers may often find themselves needing several support calls within the first year of being with the provider.


  1. Customers by Churn Category
  • A count was used to examine the distribution of customers across different churn categories.

  • Out of 1,869 churned customers, 841 customers (~ 45.00%) churned due to competitors, 321 customers (~ 17.17%) churned due to dissatisfaction, 314 customers (~ 16.80%) churned due to attitude, 211 customers (~ 11.29%) churned due to price, and 182 customers (~ 9.74%) left for other reasons.

  • These results suggest that customers are most often leaving due to competitive strategies used by other providers in the industry, followed by overall dissatisfaction and attitude of customer service providers, with less customers leaving due solely to price. Customers may be more willing to leave for competitors that are offering the best deals at a given time or to find friendlier customer service.

Churn_Category n
NA 5174
Competitor 841
Dissatisfaction 321
Attitude 314
Price 211
Other 182


  1. Customer Status Across Contract Types:
  • A count was used to examine how customer status (Joined / Stayed / Churned) varies across different contract types (Month-to-Month / One Year / Two Year).

  • Out of 7,043 total customers, 1,655 month to month customers (~ 23.50%) churned, compared to 166 one year customers (~ 2.36%) and 48 (~ 0.69%) two year customers. In regards to retention, 1,547 month to month customers (~ 21.97%) stayed, compared to 1,360 one year customers (~ 19.31%) and 1,813 two year customers (~ 25.74%) that stayed.

  • These initial findings suggest that customers who are not locked into annual plans are more likely to leave due to the flexibility that month to month plans offer, while customers who are locked in for longer terms are less likely to churn and often choose to stay. Customers also appear to prefer the monthly contract, as 408 new customers joined, far exceeding new customers with longer term contracts.

Contract Customer_Status n
Two Year Stayed 1813
Month-to-Month Churned 1655
Month-to-Month Stayed 1547
One Year Stayed 1360
Month-to-Month Joined 408
One Year Churned 166
Two Year Churned 48
One Year Joined 24
Two Year Joined 22


For Loops

  1. Month-to-Month Only Customers
  • A for loop was used to create a binary variable that identified customers with monthly contracts, assigning a 1 to those with a month to month contract and 0 to other contract types.

  • Out of 7,043 customers, 3,610 customers (~ 51.26%) were on month to month contracts while 3,433 customers (~ 48.73%) were on long term contracts such as one and two year. This suggests that slightly more than half of the observed sample of customers preferred the flexibility that short term service contracts offer, as opposed to longer terms.

Monthly_Contract_Flag
   0    1 
3433 3610 


  1. Network Downtime Classifier
  • A for loop was used to classify customers with average network down times of > 5 hours as “High Downtime” and those with < 5 hours of average down times as “Low Downtime”.

  • Out of 7,043 customers, 250 customers (~ 3.69%) indicated that they do experience average network down times of > 5 hours, while the large majority of 6,783 customers (~ 96.31%) generally experienced less down time.

  • This may suggest that the large majority of customers experience stable network performance, while those that do experience larger down times may use this as a motivator for switching to a different provider.

Downtime_Label
High Downtime  Low Downtime 
          260          6783 


If Statements

  1. Customer Billing High / Low
  • An if statement was used to categorize a customer’s monthly bill charges as “High” (>= $100), “Average”(>= $50 and <= $99) , or “Low” (< $50).

  • This procedure uses the monthly bill value of customer n and identifies which classification the dollar value falls into.

  • This may be helpful in understanding if customers paying higher monthly bills are more or less likely to churn for better prices elsewhere.

[1] "Average"


  1. Business Action Suggestion
  • An if statement was used to recommend a strategic business action based on a customer’s churn category (Dissatisfaction / Attitude / Competitor / Price / Other).

  • Improving customer service was recommended to those customers who churned due to dissatisfaction or attitude, providing more deals was recommended to those customers who churned due to competitors, running sales was recommended to those customers who churned due to price, and a general suggestion of doing better overall was recommended for any other category reason.

  • This approach allows reasons for churn to be translated into strategic business actions to help retain existing customers and capturing new ones.

  • These findings suggest that customers who churned may have considered staying with a provider if they provided value deals or focused on improving the overall customer service experience.

Action
          Do better overall Improve customer experience 
                        182                         635 
                   No churn          Provide more deals 
                       5174                         841 
                  Run sales 
                        211 


Grouped Summaries

  1. Averages Across Customer Status
  • A grouped summary was used to explore the average tenure, monthly charge, and satisfaction of customers across customer status (Stayed / Joined / Churned).

  • On average, customers who churned had about 18 months of tenure, a monthly bill of about $73.30, and a satisfaction rating of about 6.48/10. In contrast, customers who stayed had an average of about 41 months of tenure, a monthly bill of about $61.70, and a satisfaction rating of about 6.45/10.

  • While the months of service is higher with customers who stayed, their monthly bills and overall satisfaction were slightly lower on average than those customers who churned.

  • This may suggest that monthly billing amounts may have an effect on customer churn as those who have left had higher monthly bills on average, so they may be looking for lower prices at competitors in the industry.

Customer_Status Avg_Tenure Avg_Monthly_Charge Avg_Satisfaction
Churned 17.979133 73.34759 6.476533
Joined 1.720264 42.77599 6.676162
Stayed 41.041525 61.73742 6.453852


  1. Averages Across Contract Type
  • A grouped summary was used to explore the average tenure, monthly charge, and satisfaction of customers across contract (Month-to-Month / One Year / Two Year) and customer status (Stayed / Joined / Churned).

  • As expected, customers who churned on monthly contracts had the lowest months of tenure compared to those with longer term contracts.

  • For long term contracts on average, customers who churned had higher monthly charges, while their satisfaction scores remained within the same general scale.

  • These findings suggest that high tenured customers are more likely to stay, while lower tenured customers may be more willing to churn due to higher monthly billing amounts.

Contract Customer_Status Avg_Tenure Avg_Monthly_Charge Avg_Satisfaction
Month-to-Month Churned 14.016918 71.78423 6.480424
Month-to-Month Joined 1.705882 42.39228 6.651356
Month-to-Month Stayed 25.042663 62.28413 6.405482
One Year Churned 44.963855 85.05090 6.512891
One Year Joined 1.875000 35.62292 6.631463
One Year Stayed 41.494853 62.39040 6.447394
Two Year Churned 61.270833 86.77708 6.216630
Two Year Joined 1.818182 57.69545 7.184973
Two Year Stayed 54.353006 60.78108 6.499971


Functions

  1. Risk Categorizor
  • A function was used to categorize observed customers as “High risk” or “Low risk” based on their monthly charge and tenure.

  • If a customer’s monthly bill charge is greater than $100 and they have a tenure less than 12 months, they are considered to be at High risk for churning. Otherwise, customers may be generally at Low risk for churning.

  • This function can be replicated and reused to identify signs of risk based on various customer characteristics, informing strategic planning and decision making towards best capturing those customers who may be highly at risk for churning.

[1] "Low risk"


Data Visualization

Customer Status by Contract Type

  • The stacked bar chart shows the portion of customers that have Joined / Churned / Stayed across Month-to-Month, One Year, and Two Year service contracts.

  • Customers in monthly contracts appear to have churned the most, suggesting that short term contracts may signal higher risk of churn.


Distribution of Customer Tenure by Customer Status

  • The histogram shows the distribution count of customer tenure in months across customer status, whether they have joined, churned, or stayed as a customer.

  • Customers with less tenure are more likely to leave, while those who have longer tenure are generally satisfied and will likely stay.


Monthly Charge by Customer Status

  • The boxplot compares the distribution of monthly charges across joined, churned, or stayed customer status.

  • Customers who have churned appear to have higher monthly bills, suggesting that the financial aspect of monthly bills may be an influential factor of customers leaving to find more affordable alternatives.


Distribution of Churn Category

  • The bar chart shows the count of customers who’s reason for leaving aligns with one of the 5 churn categories.

  • Customers appear to be leaving due to industry competitors, with dissatisfaction and attitude being the next most common reason. This suggests that customers are open to jumping to another provider for benefit, and the current company may need internal changes to improve customer service experiences.


Customer Tenure and Monthly Charge by Customer Status

  • The scatterplot shows monthly charges across customer tenure, with a trend line showing an upward pattern.

  • This may suggest that monthly bills may increase the longer a customer’s tenure becomes.

  • Also, churning is happening across regions of. both low and high tenure, suggesting that that price alone may not be the best predictor of churn.


Average Monthly Charge by Status

  • The point and segment plot shows the average monthly bill for customers across each status group.

  • Churned customers appear to have the highest monthly bills, continuing to suggest monthly bills may be a key predictor of customer churn.


Network Downtime and Customer Satisfaction

  • The scatterplot shows a negative relationship between an average number of hours the network is down for a customer and their respective overall satisfaction with the service provider.

  • The trend line suggests that as the average number of hours a customer’s network is down increases, customer satisfaction tends to decrease.

  • The negative relationship is strong, so it may be possible that network reliability could be a potential predictor for customer churn.


Average Tenure and Monthly Charge by Contract

  • The point plot shows the average monthly charge and customer tenure across the three contract types.

  • On average, customers with two year contracts appear to have the lowest monthly bill and highest tenure, suggesting that these customers are fairly satisfied with the service provider and are not at risk to churn. Month to Month customers may be at a higher risk of churn due to higher monthly charges.


Average Satisfaction by Customer Status

  • The plot shows the average satisfaction of customers across the three customer status’s.

  • Average customer satisfaction appears to be relatively similar across joined, churned, and stayed customers.


Tenure vs Monthly Charge

  • The interactive scatterplot shows the relationship between monthly charges and months of tenure, filterable by customer status.

  • Each point represents a customer’s tenure and monthly bill charge.

  • A slight positive trend may be present, as monthly charges slowly begin to rise in relation to rising months of tenure.


Distribution of Monthly Charges

  • The interactive distribution histogram shows the spread of monthly charges across all customers, regardless of churn risk.

  • Majority of monthly bills fall between average and high price points, with some credits represented as well.

  • Understanding overall pricing distribution helps to gage where expected prices should fall.


Data Modeling & Results

Regression Model

  • Dependent Variable: Churn_Flag - A binary variable created to indicate whether or not a customer churned (1) or not (0).

  • Independent Variables: Tenure_In_Months (Number of service months for customer), Contract (Length of service contract), Monthly_Charge (Monthly service bill), Support_Calls (Number of customer service calls made by customer), Customer_Satisfaction (Satisfaction out of 10), Avg_Network_Downtime, (Average number of hours services were down) and Price_Sensitivity (How reactive a customer is to price changes).

  • Hypotheses:

    • Null (H0) = H0​: β1​ = β2 ​= ⋯ = βk​ = 0 (None of the predictors have a statistically significant relationship with customer churn)

    • Alternative (H1) = H1: At least one βj​ =/ 0 (At least one predictor has a statistically significant relationship with customer churn)

  • Variables were selected based on prior subject matter knowledge, literature review, and exploratory data analysis.


Call:
lm(formula = Churn_Flag ~ Tenure_In_Months + Contract + Monthly_Charge + 
    Support_Calls + Customer_Satisfaction + Avg_Network_Downtime + 
    Price_Sensitivity, data = churn_model)

Residuals:
     Min       1Q   Median       3Q      Max 
-0.65962 -0.31770 -0.06848  0.39809  1.13381 

Coefficients:
                        Estimate Std. Error t value Pr(>|t|)    
(Intercept)            0.3200046  0.0328232   9.749   <2e-16 ***
Tenure_In_Months      -0.0037468  0.0002603 -14.392   <2e-16 ***
ContractOne Year      -0.2616205  0.0131323 -19.922   <2e-16 ***
ContractTwo Year      -0.2865524  0.0145306 -19.721   <2e-16 ***
Monthly_Charge         0.0032398  0.0001551  20.891   <2e-16 ***
Support_Calls         -0.0008740  0.0010026  -0.872    0.383    
Customer_Satisfaction  0.0016469  0.0026961   0.611    0.541    
Avg_Network_Downtime   0.0026533  0.0039262   0.676    0.499    
Price_Sensitivity     -0.0079999  0.0283359  -0.282    0.778    
---
Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Residual standard error: 0.3807 on 7034 degrees of freedom
Multiple R-squared:  0.2576,    Adjusted R-squared:  0.2567 
F-statistic: 305.1 on 8 and 7034 DF,  p-value: < 2.2e-16

Model Results

  • Model is statistically significant at P < 0.001, with an R2 = 0.2576 (25.8%)

    • Tenure_In_Months: As tenure increases by 1 month, the probability of churn decreases by about 0.0038 (0.38%), holding all other variables constant.

    • Contract: Customers on a one oear contract have a 0.2616 (26.16%) lower probability of churn compared to monthly contract customers, holding all other variables constant. Customers on a two tear contract have a 0.2866 (28.66%) lower probability of churn compared to monthly contract customers, holding all other variables constant.

    • Monthly_Charge: As monthly charge increases by $1, the probability of churn increases by about 0.0032 (0.32%), holding all other variables constant.

    • Non-Significant variables (p > 0.05): Support_Calls, Customer_Satisfaction, Avg_Network_Downtime, Price_Sensitivity.

  • The model explains about 25.8% of the variance in churn behavior, which is generally reasonable for human / customer based data.


Clustering

  • Goal: Identify natural segments in the customer observations

  • Inputs: Tenure, Monthly Charge, Support Calls, Customer Satisfaction, Network Downtime, and Price_Sensitivity

  • Input variables were standardized with scale(), using k-means clustering (k = 3) to segment customers into three groups based on behavior.

Cluster Avg_Tenure Avg_Monthly_Charge Avg_Support_Calls Avg_Loyalty Avg_Downtime Avg_Satisfaction Avg_Price_Sensitivity
1 31.23612 63.06486 20.00625 242.7819 3.8763722 3.376542 0.2837795
2 14.03129 51.18711 20.19086 247.0388 0.9587109 7.221294 0.2824834
3 55.80413 79.30436 19.90693 247.2403 1.0198481 7.087207 0.2906379


Clustering Results

  • Cluster 1 (1,279 customers, ~18%, Red)

    • On average, Tenure: 31 months, Monthly Charge: $63, Downtime: 3.88 hours, Satisfaction: 3.38

    • Includes customers that have a moderate level of tenure and monthly bill, but are likely at risk of churn due to frequent outage issues contributing to low satisfaction.

  • Cluster 2 (3,196 customers, ~45%, Green) - Largest

    • On average, Tenure: 14 months, Monthly Charge: $51, Downtime: 0.96 hours, Satisfaction: 7.22

    • Includes customers that have a low level of tenure and monthly billing, and are likely to stay as they may be satisfied overall.

  • Cluster 3 (2,568 customers, ~36%, Blue)

    • On average, Tenure: 56 months, Monthly Charge: $79, Downtime: 1.02 hours, Satisfaction: 7.09

    • Includes customers that have been loyal to the provider while continuing to have higher monthly bills, and are more likely to stay as they are highly satisfied, despite it being more expensive.


Conclusion

  • The purpose of this analysis was to explore which customer characteristics were associated with customer churn in the telecommunications industry.

  • Results from EDA, regression modeling, and the clustering techniques showed that on average, customer tenure (new customers), contract type (short term), and monthly charges (high monthly payments) are the most associated with customer churn as they were found to be statistically significant.

  • Other predictors such as network down time, customer satisfaction, and support calls were found to not be statistically significant. However, clustering results suggest that characteristics associated with customer service quality may be contributing factors to customer churn in specific customer groups.

  • Because this model explains only about 25% of churn behavior, future iterations should experiment with different model types and strive to be inclusive of other factors that may contribute more explanatory power.


Adds

Email

  • Aldin Hajric - ahajric1@students.kennesaw.edu

  • Garrett Springsted - gsprings@students.kennesaw.edu

Acknowledgement

The findings presented in this project are exclusive to this course and were not in this or previous semesters and will not be presented in any other courses during this semester.

KSU Map

QR Code

#install.packages('qrcode')
library(qrcode)
qr <- qr_code("https://rpubs.com/aldinhajric/1426556")

plot(qr)