ACKNOWLDGEMENT
* The dashboard is for educational purpose only and it should be used for understanding the survival analysis technique. The outputs and analysis displayed in the flexdashboard should not strictly be considered for professional deicison making.
DISCLAIMER
* > Authors don’t bear any responsibility for any consequences emnating from the content covered in the dashboard, the web url and links.
Customer Churn occurs when customers of organization moves out gradually over the period of time for many reasons like dissatisfaction from product or service, better competitive offering, temporary degradation of services due to technical issues, not feeling the value of service against charges, death of customer, relocation of customer etc. Customer churn is also known as customer turnover or customer defection or loss of clients.
There are two types of customer churns— voluntary churn and involuntary churn.The voluntary churn is the exit of customer by his own decision. Involuntary churn is the exit of customer due to circumstances. When modeling the customer churn phenomenon, the analyst excludes the involuntry churns and keeps only voluntary churns into consideration as voluntary churns is the output of function of company customer relationship.
Customer churn modeling is very popular in financial services like banking and insurance, retailing, telecommunication, etc. Customer churn modeling is taken very seriously in telecommunication as customers can change their service provider without hiccups due to Mobile Number Portability (MNP). Similar scenario is emerging in health insurnce domain as government authority IRDA has allowed policy portability. Customer churn is also taken as indication of customer satisfaction. So understanding churn is very important to frame strategies of Customer Relationship Management (CRM).
Predicting customer churn can help companies to increase customer retention as it makes company proactive and company can fromulate more effective strategies to retain the customer. It can help companies to do more precise customized plans for retaining customers.
Not all customer churns are bad as many unprofitable customers leaves the company and it is good for the company. Such bad churns are called customer divestment of unprofitable customer.
Source: https://en.wikipedia.org/wiki/Customer_attrition
FURTHER READINGS
To know more about customer churn modeling, following research papers and articles are suggested—
Buckinx Wouter, Dirk Van den Poel (2005), “Customer Base Analysis: Partial Defection of Behaviorally-Loyal Clients in a Non-Contractual FMCG Retail Setting”, European Journal of Operational Research, 164 (1), 252–268.
Burez Jonathan, Dirk Van den Poel (2006), “CRM at a Pay-TV Company: Using Analytical Models to Reduce Customer Attrition by Targeted Marketing for Subscription Services,” Expert Systems with Applications, 32 (2), 277–288.
Prinzie Anita, Dirk Van den Poel (2005), “Incorporating sequential information into traditional classification models by using an element/position-sensitive SAM”, Decision Support Systems, 42 (2), 508–526.
Pohl Stefan (2007), Zeitraumbezogene Stornomodellierung in der Kraftfahrtversicherung, Zeitschrift für Versicherungswesen (ZfV), 59 (11), 361–368.
This flexdashboard is an attempt to address hte customer churn modeling with the help of survival analysis. Let’s begin, so click on next menu item on “MENU” tab.
[1] "customerID" "gender" "SeniorCitizen" "Partner"
[5] "Dependents" "tenure" "PhoneService" "MultipleLines"
[9] "InternetService" "OnlineSecurity" "OnlineBackup" "DeviceProtection"
[13] "TechSupport" "StreamingTV" "StreamingMovies" "Contract"
[17] "PaperlessBilling" "PaymentMethod" "MonthlyCharges" "TotalCharges"
[21] "Churn"
'data.frame': 7043 obs. of 21 variables:
$ customerID : chr "7590-VHVEG" "5575-GNVDE" "3668-QPYBK" "7795-CFOCW" ...
$ gender : chr "Female" "Male" "Male" "Male" ...
$ SeniorCitizen : int 0 0 0 0 0 0 0 0 0 0 ...
$ Partner : chr "Yes" "No" "No" "No" ...
$ Dependents : chr "No" "No" "No" "No" ...
$ tenure : int 1 34 2 45 2 8 22 10 28 62 ...
$ PhoneService : chr "No" "Yes" "Yes" "No" ...
$ MultipleLines : chr "No phone service" "No" "No" "No phone service" ...
$ InternetService : chr "DSL" "DSL" "DSL" "DSL" ...
$ OnlineSecurity : chr "No" "Yes" "Yes" "Yes" ...
$ OnlineBackup : chr "Yes" "No" "Yes" "No" ...
$ DeviceProtection: chr "No" "Yes" "No" "Yes" ...
$ TechSupport : chr "No" "No" "No" "Yes" ...
$ StreamingTV : chr "No" "No" "No" "No" ...
$ StreamingMovies : chr "No" "No" "No" "No" ...
$ Contract : chr "Month-to-month" "One year" "Month-to-month" "One year" ...
$ PaperlessBilling: chr "Yes" "No" "Yes" "No" ...
$ PaymentMethod : chr "Electronic check" "Mailed check" "Mailed check" "Bank transfer (automatic)" ...
$ MonthlyCharges : num 29.9 57 53.9 42.3 70.7 ...
$ TotalCharges : num 29.9 1889.5 108.2 1840.8 151.7 ...
$ Churn : chr "No" "No" "Yes" "No" ...
NULL
customerID gender SeniorCitizen Partner
Length:7043 Length:7043 Min. :0.0000 Length:7043
Class :character Class :character 1st Qu.:0.0000 Class :character
Mode :character Mode :character Median :0.0000 Mode :character
Mean :0.1621
3rd Qu.:0.0000
Max. :1.0000
Dependents tenure PhoneService MultipleLines
Length:7043 Min. : 0.00 Length:7043 Length:7043
Class :character 1st Qu.: 9.00 Class :character Class :character
Mode :character Median :29.00 Mode :character Mode :character
Mean :32.37
3rd Qu.:55.00
Max. :72.00
InternetService OnlineSecurity OnlineBackup DeviceProtection
Length:7043 Length:7043 Length:7043 Length:7043
Class :character Class :character Class :character Class :character
Mode :character Mode :character Mode :character Mode :character
TechSupport StreamingTV StreamingMovies Contract
Length:7043 Length:7043 Length:7043 Length:7043
Class :character Class :character Class :character Class :character
Mode :character Mode :character Mode :character Mode :character
PaperlessBilling PaymentMethod MonthlyCharges TotalCharges
Length:7043 Length:7043 Min. : 18.25 Min. : 18.8
Class :character Class :character 1st Qu.: 35.50 1st Qu.: 401.4
Mode :character Mode :character Median : 70.35 Median :1397.5
Mean : 64.76 Mean :2283.3
3rd Qu.: 89.85 3rd Qu.:3794.7
Max. :118.75 Max. :8684.8
NA's :11
Churn
Length:7043
Class :character
Mode :character
# Removing NAs
churn=na.omit(churn)
# Removing CustomerID variable
churn$customerID=NULL
# Changing Gender into factor variable
churn$gender=as.factor(churn$gender)
# Changing SeniorCitizen into factor variable
churn$SeniorCitizen=as.factor(churn$SeniorCitizen)
# Changing Partner into factor variable
churn$Partner=as.factor(churn$Partner)
# Changing Dependents into factor variable
churn$Dependents=as.factor(churn$Dependents)
# Changing Churn into integer variable
churn$tenure=as.integer(churn$tenure)
# Changing phoneServices into factor variable
churn$PhoneService=as.factor(churn$PhoneService)
# Changing multipleLines into factor variable
churn$MultipleLines=as.factor(churn$MultipleLines)
# Changing InternetService to factor variable
churn$InternetService=as.factor(churn$InternetService)
# Changing OnlineSecurity to factor variable
churn$OnlineSecurity=as.factor(churn$OnlineSecurity)
# Changing OnlineBackup to factor variable
churn$OnlineBackup=as.factor(churn$OnlineBackup)
# Changing DeviceProtection to factor variable
churn$DeviceProtection=as.factor(churn$DeviceProtection)
# Changing TechSupport to factor variable
churn$TechSupport=as.factor(churn$TechSupport)
# Changing StreamingTV to factor variable
churn$StreamingTV=as.factor(churn$StreamingTV)
# Changing StreamingMovies to factor variable
churn$StreamingMovies=as.factor(churn$StreamingMovies)
# Changing Contract to factor variable
churn$Contract=as.factor(churn$Contract)
# Changing PaperlessBilling to factor variable
churn$PaperlessBilling=as.factor(churn$PaperlessBilling)
# Changing PaymentMethod to factor variable
churn$PaymentMethod=as.factor(churn$PaymentMethod)
# Changing Churn to factor variable
churn$Churn=as.factor(churn$Churn)
Two Sample t-test
data: tenure by Churn
t = 31.741, df = 7030, p-value < 2.2e-16
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
18.45603 20.88572
sample estimates:
mean in group No mean in group Yes
37.65001 17.97913
Two Sample t-test
data: MonthlyCharges by Churn
t = -16.48, df = 7030, p-value < 2.2e-16
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
-14.69625 -11.57160
sample estimates:
mean in group No mean in group Yes
61.30741 74.44133
Two Sample t-test
data: TotalCharges by Churn
t = 17.069, df = 7030, p-value < 2.2e-16
alternative hypothesis: true difference in means is not equal to 0
95 percent confidence interval:
905.9968 1141.0993
sample estimates:
mean in group No mean in group Yes
2555.344 1531.796
Pearson's Chi-squared test with Yates' continuity correction
data: table(factor_churn$Churn, factor_churn$gender)
X-squared = 0.47545, df = 1, p-value = 0.4905
Pearson's Chi-squared test with Yates' continuity correction
data: table(factor_churn$Churn, factor_churn$SeniorCitizen)
X-squared = 158.44, df = 1, p-value < 2.2e-16
Pearson's Chi-squared test with Yates' continuity correction
data: table(factor_churn$Churn, factor_churn$Partner)
X-squared = 157.5, df = 1, p-value < 2.2e-16
Pearson's Chi-squared test with Yates' continuity correction
data: table(factor_churn$Churn, factor_churn$Dependents)
X-squared = 186.32, df = 1, p-value < 2.2e-16
Pearson's Chi-squared test with Yates' continuity correction
data: table(factor_churn$Churn, factor_churn$PhoneService)
X-squared = 0.87373, df = 1, p-value = 0.3499
Pearson's Chi-squared test
data: table(factor_churn$Churn, factor_churn$MultipleLines)
X-squared = 11.272, df = 2, p-value = 0.003568
Pearson's Chi-squared test
data: table(factor_churn$Churn, factor_churn$InternetService)
X-squared = 728.7, df = 2, p-value < 2.2e-16
Pearson's Chi-squared test
data: table(factor_churn$Churn, factor_churn$OnlineSecurity)
X-squared = 846.68, df = 2, p-value < 2.2e-16
Pearson's Chi-squared test
data: table(factor_churn$Churn, factor_churn$OnlineBackup)
X-squared = 599.18, df = 2, p-value < 2.2e-16
Pearson's Chi-squared test
data: table(factor_churn$Churn, factor_churn$DeviceProtection)
X-squared = 555.88, df = 2, p-value < 2.2e-16
Pearson's Chi-squared test
data: table(factor_churn$Churn, factor_churn$TechSupport)
X-squared = 824.93, df = 2, p-value < 2.2e-16
Pearson's Chi-squared test
data: table(factor_churn$Churn, factor_churn$StreamingTV)
X-squared = 372.46, df = 2, p-value < 2.2e-16
Pearson's Chi-squared test
data: table(factor_churn$Churn, factor_churn$StreamingMovies)
X-squared = 374.27, df = 2, p-value < 2.2e-16
Pearson's Chi-squared test
data: table(factor_churn$Churn, factor_churn$Contract)
X-squared = 1179.5, df = 2, p-value < 2.2e-16
Pearson's Chi-squared test with Yates' continuity correction
data: table(factor_churn$Churn, factor_churn$PaperlessBilling)
X-squared = 256.87, df = 1, p-value < 2.2e-16
Pearson's Chi-squared test
data: table(factor_churn$Churn, factor_churn$PaymentMethod)
X-squared = 645.43, df = 3, p-value < 2.2e-16
two-Independent Sample t-Tests : Interpretations
There were three two-independent samples t-tests were conducted between Churn variable and tenure, MonthlyCharges, TotalCharges.
The hypothesis test between churn and tenure fails to accept the null hypothsis. There is significant difference between the mean tenure of No Churn customers and Churn customers. Churn customers have mean tenure 17.98 in comparison to mean tenure (37.65) of Non Churn customers. This gives us the hint that customers who have tenure less or equal to 17.98 is more likely to churn.
The hypothesis test between churn and MonthlyCharges fails to accept the null hypothsis. There is significant difference between the mean MonthlyCharges of No Churn customers and Churn customers. Churn customers have mean MonthlyCharges 74.44 in comparison to mean tenure 61.31 of Non Churn customers. This gives us the hint that customers who have MonthlyCharges more or equal to 74.44 is more likely to churn.
The hypothesis test between churn and TotalCharges fails to accept the null hypothsis. There is significant difference between the mean tenure of No Churn customers and Churn customers. Churn customers have mean TotalCharges 1531.80 in comparison to mean TotalCharges 2555.34 of Non Churn customers. This gives us the hint that customers who have tenure less or equal to 17 is more likely to churn.
Chi Square Tests : Interpretations
There were 19 Chi Square tests were conducted between Churn variable and gender, SeniorCitizen, Partner, Dependents, PhoneService, MultipleLines,Internet Services, OnlineSecurity, OnlineBackup,DeviceProtection, TechSupport,StreamingTV, StreamingMovies, COntract, PaperlessBilling, PaymentMethod. All these variables are factor variables hence t test can’t be applied.
The Chi-Square tests of Churn with gender and PhoneService variables fail to reject the null hypotheses. Therefore, gender of subscriber and whether subcriber uses phoneService or not, decision of churn by customer does not depend on both.
The Chi-Square tests of Churn with SeniorCitizen, Partner, Dependents, MultipleLines, InternetService, OnlineSecurity, OnlineBackup, DeviceProtection, TechSupport, StreamingTV, StreamingMovies, COntract, PaperlessBilling and PaymentMethod fail to accept the null hypotheses. Therefore, all thse variables have impact on decision of churn by the subscribers.
WHAT IS SURVIVAL ANALYSIS
Survival Analysis is a branch of statistics for analyzing the expected duration of time until one or more events happen, such as death in biological organisms and failure in mechanical systems.
This topic is called reliability theory or reliability analysis in engineering, duration analysis or duration modelling in economics, and event history analysis in sociology. Survival analysis attempts to answer questions such as: what is the proportion of a population which will survive past a certain time? Of those that survive, at what rate will they die or fail? Can multiple causes of death or failure be taken into account? How do particular circumstances or characteristics increase or decrease the probability of survival?
More generally, survival analysis involves the modelling of time to event data; in this context, death or failure is considered an “event” in the survival analysis literature – traditionally only a single event occurs for each subject, after which the organism or mechanism is dead or broken. Recurring event or repeated event models relax that assumption. The study of recurring events is relevant in systems reliability, and in many areas of social sciences and medical research. Survival Analysis can also be used in non traditional fields like predicting the employee attrition, predicting the customer churn, predictive maintenance, earthquake prediction and many other.
The case study in focus is understanding Customer Churn based on Survival Analysis Techniques. In this flexdashbaord, we are going to use Kaplan Meier Model and Random Forest Model.
Call: survfit(formula = Surv(time, status) ~ 1, data = churn)
time n.risk n.event P((s0)) P(Yes)
1 7032 380 0.946 0.0540
2 6419 123 0.928 0.0722
3 6181 94 0.914 0.0863
4 5981 83 0.901 0.0990
5 5805 64 0.891 0.1089
6 5672 40 0.885 0.1152
7 5562 51 0.877 0.1233
8 5431 42 0.870 0.1301
9 5308 46 0.862 0.1376
10 5189 45 0.855 0.1451
11 5073 31 0.850 0.1503
12 4974 38 0.843 0.1568
13 4857 38 0.837 0.1634
14 4748 24 0.832 0.1676
15 4672 37 0.826 0.1742
16 4573 28 0.821 0.1793
17 4493 26 0.816 0.1840
18 4406 24 0.812 0.1885
19 4309 19 0.808 0.1920
20 4236 18 0.805 0.1955
21 4165 17 0.801 0.1988
22 4102 27 0.796 0.2040
23 4012 13 0.793 0.2066
24 3927 23 0.789 0.2113
25 3833 23 0.784 0.2160
26 3754 15 0.781 0.2191
27 3675 13 0.778 0.2219
28 3603 12 0.776 0.2245
29 3546 15 0.772 0.2278
30 3474 16 0.769 0.2313
31 3402 16 0.765 0.2349
32 3337 19 0.761 0.2393
33 3268 14 0.757 0.2426
34 3204 12 0.755 0.2454
35 3139 15 0.751 0.2490
36 3051 10 0.749 0.2515
37 3001 15 0.745 0.2552
38 2936 13 0.742 0.2585
39 2877 14 0.738 0.2621
40 2821 13 0.734 0.2655
41 2757 14 0.731 0.2692
42 2687 14 0.727 0.2730
43 2622 15 0.723 0.2772
44 2557 6 0.721 0.2789
45 2506 6 0.719 0.2806
46 2445 12 0.716 0.2842
47 2371 14 0.712 0.2884
48 2303 9 0.709 0.2912
49 2239 15 0.704 0.2959
50 2173 10 0.701 0.2991
51 2105 8 0.698 0.3018
52 2037 8 0.695 0.3046
53 1957 14 0.690 0.3095
54 1887 13 0.686 0.3143
55 1819 9 0.682 0.3177
56 1755 10 0.678 0.3216
57 1675 8 0.675 0.3248
58 1610 11 0.671 0.3294
59 1543 8 0.667 0.3329
60 1483 6 0.664 0.3356
61 1407 8 0.661 0.3394
62 1331 5 0.658 0.3419
63 1261 4 0.656 0.3439
64 1189 4 0.654 0.3462
65 1109 9 0.649 0.3515
66 1033 13 0.640 0.3596
67 944 10 0.634 0.3664
68 846 9 0.627 0.3731
69 746 8 0.620 0.3799
70 651 11 0.610 0.3903
71 532 6 0.603 0.3972
72 362 6 0.593 0.4072
Call: survfit(formula = Surv(time, status) ~ gender, data = churn)
n nevent rmean*
gender=Female, (s0) 3483 0 54.08731
gender=Male, (s0) 3549 0 54.89988
gender=Female, Yes 3483 939 17.91269
gender=Male, Yes 3549 930 17.10012
*mean time in state, restricted (max time = 72 )
Call: survfit(formula = Surv(time, status) ~ SeniorCitizen, data = churn)
n nevent rmean*
SeniorCitizen=0, (s0) 5890 0 56.09665
SeniorCitizen=1, (s0) 1142 0 47.35506
SeniorCitizen=0, Yes 5890 1393 15.90335
SeniorCitizen=1, Yes 1142 476 24.64494
*mean time in state, restricted (max time = 72 )
Call: survfit(formula = Surv(time, status) ~ Partner, data = churn)
n nevent rmean*
Partner=No, (s0) 3639 0 46.95026
Partner=Yes, (s0) 3393 0 61.31063
Partner=No, Yes 3639 1200 25.04974
Partner=Yes, Yes 3393 669 10.68937
*mean time in state, restricted (max time = 72 )
Call: survfit(formula = Surv(time, status) ~ Dependents, data = churn)
n nevent rmean*
Dependents=No, (s0) 4933 0 50.879968
Dependents=Yes, (s0) 2099 0 62.526506
Dependents=No, Yes 4933 1543 21.120032
Dependents=Yes, Yes 2099 326 9.473494
*mean time in state, restricted (max time = 72 )
Call: survfit(formula = Surv(time, status) ~ PhoneService, data = churn)
n nevent rmean*
PhoneService=No, (s0) 680 0 55.14895
PhoneService=Yes, (s0) 6352 0 54.42484
PhoneService=No, Yes 680 170 16.85105
PhoneService=Yes, Yes 6352 1699 17.57516
*mean time in state, restricted (max time = 72 )
Call: survfit(formula = Surv(time, status) ~ MultipleLines, data = churn)
n nevent rmean*
MultipleLines=No, (s0) 3385 0 52.60421
MultipleLines=No phone service, (s0) 680 0 55.14895
MultipleLines=Yes, (s0) 2967 0 56.89605
MultipleLines=No, Yes 3385 849 19.39579
MultipleLines=No phone service, Yes 680 170 16.85105
MultipleLines=Yes, Yes 2967 850 15.10395
*mean time in state, restricted (max time = 72 )
Call: survfit(formula = Surv(time, status) ~ InternetService, data = churn)
n nevent rmean*
InternetService=DSL, (s0) 2416 0 58.905253
InternetService=Fiber optic, (s0) 3096 0 47.040035
InternetService=No, (s0) 1520 0 66.459816
InternetService=DSL, Yes 2416 459 13.094747
InternetService=Fiber optic, Yes 3096 1297 24.959965
InternetService=No, Yes 1520 113 5.540184
*mean time in state, restricted (max time = 72 )
Call: survfit(formula = Surv(time, status) ~ OnlineSecurity, data = churn)
n nevent rmean*
OnlineSecurity=No, (s0) 3497 0 43.460187
OnlineSecurity=No internet service, (s0) 1520 0 66.459816
OnlineSecurity=Yes, (s0) 2015 0 64.459709
OnlineSecurity=No, Yes 3497 1461 28.539813
OnlineSecurity=No internet service, Yes 1520 113 5.540184
OnlineSecurity=Yes, Yes 2015 295 7.540291
*mean time in state, restricted (max time = 72 )
Call: survfit(formula = Surv(time, status) ~ OnlineBackup, data = churn)
n nevent rmean*
OnlineBackup=No, (s0) 3087 0 43.074966
OnlineBackup=No internet service, (s0) 1520 0 66.459816
OnlineBackup=Yes, (s0) 2425 0 61.335045
OnlineBackup=No, Yes 3087 1233 28.925034
OnlineBackup=No internet service, Yes 1520 113 5.540184
OnlineBackup=Yes, Yes 2425 523 10.664955
*mean time in state, restricted (max time = 72 )
Call: survfit(formula = Surv(time, status) ~ DeviceProtection, data = churn)
n nevent rmean*
DeviceProtection=No, (s0) 3094 0 43.521016
DeviceProtection=No internet service, (s0) 1520 0 66.459816
DeviceProtection=Yes, (s0) 2418 0 60.694521
DeviceProtection=No, Yes 3094 1211 28.478984
DeviceProtection=No internet service, Yes 1520 113 5.540184
DeviceProtection=Yes, Yes 2418 545 11.305479
*mean time in state, restricted (max time = 72 )
Computing permutation importance.. Progress: 15%. Estimated remaining time: 3 minutes, 1 seconds.
Computing permutation importance.. Progress: 31%. Estimated remaining time: 2 minutes, 25 seconds.
Computing permutation importance.. Progress: 47%. Estimated remaining time: 1 minute, 48 seconds.
Computing permutation importance.. Progress: 62%. Estimated remaining time: 1 minute, 15 seconds.
Computing permutation importance.. Progress: 78%. Estimated remaining time: 44 seconds.
Computing permutation importance.. Progress: 94%. Estimated remaining time: 12 seconds.
Ranger result
Call:
ranger::ranger(Surv(time, status) ~ gender + SeniorCitizen + Partner + Dependents + PhoneService + MultipleLines + InternetService + OnlineSecurity + OnlineBackup + DeviceProtection + TechSupport + StreamingTV + StreamingMovies + Contract + PaperlessBilling + PaymentMethod + MonthlyCharges + TotalCharges, mtry = 4, importance = "permutation", splitrule = "extratrees", data = churn)
Type: Survival
Number of trees: 500
Sample size: 7032
Number of independent variables: 18
Mtry: 4
Target node size: 3
Variable importance mode: permutation
Splitrule: extratrees
Number of unique death times: 72
Number of random splits: 1
OOB prediction error (1-C): 0.1174041
importance
TotalCharges 0.1177
Contract 0.0963
InternetService 0.0310
OnlineSecurity 0.0252
TechSupport 0.0218
OnlineBackup 0.0161
MonthlyCharges 0.0146
PaymentMethod 0.0095
Partner 0.0092
DeviceProtection 0.0092
StreamingTV 0.0063
StreamingMovies 0.0060
MultipleLines 0.0049
Dependents 0.0043
PaperlessBilling 0.0039
PhoneService 0.0016
gender 0.0000
SeniorCitizen -0.0002
cutpoint statistic
TotalCharges 5711.05 34.91383
$TotalCharges
* Dr AMITA SHARMA Post Doc from Erasmus University, Rotterdam, the Netherlands Assistant Professor Institute of Agri Business Management, Swami Keshwanand Rajasthan Agricultural University, Bikaner (Raj),India Blog: www.thinkingai.in
* ARUN KUMAR SHARMA Machine Learning Enthusiast 13 Years of Financial Services Marketing Exp Blogger, Writer and Machine Learning Consutlant Certified Business Analytics Professional Certified in Predictive Analytics, Indian Institute of Mnamagement,IIMx Bangalore Certified in Macroeconomic Forecasting, International Monetary Fund(IMFx) Certified in Text Analytics, openSAP Email: aks10000@gmail.com Tel:9468567418