Churn, predykcja i analiza

Churn jest to pojęcie które oznacza utratę klientów na rzecz konkurencji. Z punktu widzenia firmy, przewidzenie oraz utrzymanie klientów którzy chcą od nas odejść jest bardzo ważne, i w wielu przypadkach o wiele tańsze niż pozyskanie nowych. Poniżej przedstawiamy zbiór danych na temat klientów operatora komórkowego, z których część odejdzie, a część z nim zostanie.

Na podstawie tego prostego zbioru, możemy zapoznać się z ważną koncepcją biznesową, oraz przećwiczyć, modele pozwalające nam przewidzieć który z klientów odejdzie. Churn, jest ważnym zjawiskiem, również w przypadków banków czy też ubezpieczycieli

Zachęcamy do dokonywania analiz z jego użyciem oraz ćwiczenia umiejętności przewidywania tego zjawiska.

Zbiór danych churn

Zbiór dostępny jest na stronach analityka, pod adresem:

http://analityk.edu.pl/wp-content/uploads/2020/03/Telco-Customer-Churn.csv

Opis zbioru churn

  • churn – czy klient odszedł, czy nie
  • customerID – numer identyfikacyjny klienta
  • gender – płeć
  • SeniorCitizen – czy jest to osoba starsza
  • Partner – czy ma partnera
  • Dependents – czy ma jakieś zależności
  • tenure – ile miesięcy jest już u tego operatora
  • PhoneService – czy ma telefon
  • MultipleLines – czy ma kilka numerów telefonów
  • InternetService – czy ma internet
  • OnlineSecurity – czy ma usługę bezpieczeństwa online
  • OnlineBackup – czy ma usługę kopii danych online
  • DeviceProtection – czy ma usługę zabezpieczenia telefonu
  • TechSupport – czy ma usługę wsparcia technicznego
  • StreamingTV – czy ma opcję streamingu TV
  • StreamingMovies – czy ma opcję streaming filmów
  • Contract – czy ma umowę na czas określony (rok lub 2 lata), czy na nieokreślony (z miesiąca na miesiąc)
  • PaperlessBilling – e-faktura
  • PaymentMethod – metoda płatności
  • MonthlyCharges – miesięczna wysokość opłat
  • TotalCharges – łączna wysokość opłat

 

Import zbioru

import pandas as pd

df = pd.read_csv("http://analityk.edu.pl/wp-content/uploads/2020/03/Telco-Customer-Churn.csv")

print("Rozmiar zbioru:\n")
print(df.shape, '\n')
print("Nazwy kolumn:\n")
print(df.columns)

Zbiór zawiera informację na temat 7043 klientów, oraz 21 kolumn z danymi na ich temat. Najważniejsza jest kolumna churn, która informuje nas, że dany klient zrezygnował z usług naszego operatora telekomunikacyjnego.

Wykonajmy kilka statystyk, aby zobaczyć z czym mamy do czynienia

Podstawowe statystyki

Wiemy już jaki jest rozmiar naszego zbioru:

Sprawdźmy czy mamy do czynienia z brakującymi danymi:

Zbiór wydaje się być w doskonałej kondycji.

Procent churn w naszym zbiorze

Zobaczmy, jaką część naszego zbioru stanowi churn:

sns.catplot(data=df,
           x = 'Churn',
           kind = 'count')
plt.show()

I jeszcze spójrzmy na te same dane, ale pod kątem procentu:

df_per = df.groupby('Churn')['Churn'].count() / df.shape[0] * 100
df_per

Wygląda na to, że churn stanowi 26% naszej bazy. Jest to dużo, jednak w przypadku operatorów telekomunikacyjnych, jest to poziom realny. Obecnie migracja klientów, pomiędzy sieciami jest bardzo duża.

Nie będziemy analizować wszystkich zmiennych, ale spójrzmy na dwie, które w dość oczywisty sposób mogą mieć wpływ na churn – długość okresu, jaki jest z nami dany klient oraz rodzaj kontraktu, jaki z nami ma:

Wpływ czasu trwania umowy na churn

sns.catplot(data=df,
           x = 'Churn',
           y = 'tenure',
           kind='box')
plt.show()

Możemy wnioskować, że użytkownicy, którzy są z nami bardzo długo, są do nas przywiązani.

Wpływ rodzaju umowy na churn

df_x = df[['Churn','Contract','customerID']].pivot_table( index='Churn', 
                        values='customerID', 
                        columns='Contract', 
                        aggfunc='count')
sns.heatmap(df_x/np.sum(df_x), annot=True, 
            fmt='.2%', cmap='Blues')
plt.show()

Na powyższej heatmapie, widzimy, że większość klientów z umową dwuletnią, z nami zostaje, z roczną troszkę mniej, natomiast klienci z umowami bez terminowymi są o wiele bardziej skłonni do przejścia do konkurencji. Nie jest to wielkie odkrycie. Z zerwaniem umowy, prawdopodobnie wiąże się kara finansowa.

Podsumowując

Jest to dobry zbiór, aby eksperymentować z modelami predykcji churn, co z kolei jest zjawiskiem bardzo ważnym, z punktu widzenia każdego biznesu świadczącego usługi ciągle. Tak jak to widać na podstawie rodzaju kontraktu oraz czasu jaki są z danym operatorem kliencie, jest to zjawisko, które da się za modelować i osiągnąć korzyści biznesowe.