Example: bankruptcy

Statistics and Data Analysis

Paper 257-25A Methodology for customer segmentation Using Existing Product Category Schemesand The SAS SystemChristopher S. Andrews, DiaLogos, Inc., Boston, MAAbstract:Nearly every retailer (or e-tailer) has a methodology forcategorizing the products that they sell. However, most ofthem do not have a clearly defined system (or any systemfor that matter) for categorizing their customers by thetypes of products they buy. This is unfortunate since, inthe rapidly evolving world of customer relationshipmanagement, this level of customer understanding iscritical. This paper will develop a methodology forturning product categorization on its ear (so to speak) andinto a customer segmentation scheme that is not onlystraightforward in its production, but also simple in addition to the development of customer segments, thispaper will also present methods for evaluating theperformance of segments from a financial targeting is a natural consequence of this, aswell as similar evaluation techniques that wi

Paper 257-25 A Methodology for Customer Segmentation Using Existing Product Category Schemes and The SAS® System Christopher …

Tags:

  Customer, Segmentation, Customer segmentation

Information

Domain:

Source:

Link to this page:

Please notify us if you found a problem with this document:

Other abuse

Advertisement

Transcription of Statistics and Data Analysis

1 Paper 257-25A Methodology for customer segmentation Using Existing Product Category Schemesand The SAS SystemChristopher S. Andrews, DiaLogos, Inc., Boston, MAAbstract:Nearly every retailer (or e-tailer) has a methodology forcategorizing the products that they sell. However, most ofthem do not have a clearly defined system (or any systemfor that matter) for categorizing their customers by thetypes of products they buy. This is unfortunate since, inthe rapidly evolving world of customer relationshipmanagement, this level of customer understanding iscritical. This paper will develop a methodology forturning product categorization on its ear (so to speak) andinto a customer segmentation scheme that is not onlystraightforward in its production, but also simple in addition to the development of customer segments, thispaper will also present methods for evaluating theperformance of segments from a financial targeting is a natural consequence of this, aswell as similar evaluation techniques that will paper is designed to be soup-to-nuts coveringeverything from the data manipulation necessary to beginthe Analysis , all the way through to the financialcalculations used to evaluate the segmentationperformance.

2 As such, the PROC SUMMARY and PROCSQL from BASE SAS will be prominently utilized, aswill PROC FASTCLUS from SAS Issue:In most retail marketing shops the focus is productcentric. That is, customers get offers based on what theybought most recently, or sometimes what they boughtonly once. The problem with this type of marketing is thatit is highly susceptible to unusual or seasonal purchases(such as gifts). In the brick and mortar world this can beannoying to customers who receive mail offers forproducts they have no interest in buying. In the e-commerce world, this can be devastating. Because of therelative ease with which customers can opt-out of allfuture email solicitations, an e-commerce company thatdoes not target effectively will find it s lifeblood list ofcustomers to whom it may solicit rapidly dwindling.

3 Onesolution to this is to develop a profile of the types ofproducts that customers tend to Segment Development:One way to develop profiles of customers is to examine,individually, all the products that each customer haspurchased over his/her lifetime of interaction with thecompany. While this approach is certainly thorough, it hasthe drawback of not being very easy to use since theentire order history of each customer under considerationmust be scrutinized each time a new campaign is , relatively new customers are not treatedwell under this scenario since they have little history onwhich to base offer generation. Another approach, whichthis paper advocates, assumes that while all customers arecertainly different, there exist only a few broad categoriesin terms of the type of items customers tend to leveraging all available customer order history,general segments can be developed which can then beused to predict the profile of new customers.

4 This schemeis also easy to use since only a few customer segmentsand their corresponding profiles need be Example:The easiest way to understand the process proposedherein is through an example. Let us suppose that theonline camera store Shutterbugs wishes to develop aprofile of the types of customers that shop at their currently have a system for classifying theirproducts through a 3-byte field stored in their database;The first byte indicates the high-level type of product, thesecond it s brand, and the third indicates the specific kindof product. That is, every product can be completelydefined by these 3 hierarchical qualifiers. The possiblevalues for these bytes are shown in Table 1.

5 Note that thisexample is intentionally over-simplified for ease ofpresentation. Actual schemes may be significantly and Data AnalysisTable 1: Shutterbugs' product category schemeByte 1 Byte 2 Byte 3 Accessories (A) Canyon (C)Camera (C)Hardware (H)Fungi (F)Digital Camera (D)Image Media (I) Independent (I) Standard Film (F)Kodiak (K)Lens (L)Polaris (P)Tripod (P)Scanner (S)Digital Storage (T)So, for example, a Polaris digital camera would beclassified as a may be a great way to classify products, but itdoesn t tell much about the customers buying them. Nordoes it lend itself to any statistical Analysis since there areonly three variables, none of which is , a little creativity reveals a simple way to rectifyboth of these can now transpose the category scheme so that everypossible value in each byte becomes it s own variable.

6 Tocontinue this customer centric idea, instead of havingproducts as rows, we now have customers. Each of thenewly generated variables is now the count of the numberof items the customer purchased that fell into thatcategory value. In summary, we have transformed a tablethat consisted of rows of items with columns of categoriespopulated by characters, into one of rows of customerswith columns of category values populated by example will help. Table 2 shows the data as itcurrently exists in the database, and Table 3 shows thetransformed data where the columns c#_? stand for thecount of items purchased that fell into the value ? ofcategory (byte position) # .Table 2: An example of Shutterbugs' order historycustomer_id product_id product_category31 AFL310 AFP43 APS14 HCD44 HCD35 HFC16 HFD26 HFD36 HFD47 HIT12 HKC18 HPC39 IFF59 IFF511 IKF512 IPFS tatistics and Data AnalysisTable 3: The transformed order history data from Table 2customer_id c1_Ac1_Hc1_I10402010322141205003.

7 C2_Cc2_Fc2_Ic2_Kc2_P11011010000500010101 01011..c3_Cc3_Dc3_Fc3_Lc3_Pc3_Sc3_T22000 000100000111110001000110030000 While transforming the data from Table 2 into Table 3 isprobably best left to a data engineer or DBA, thefollowing is a brute force SAS code for conducting thetransformation: data in1;data in1;data in1;data in1; infile 'infile 'infile 'infile 'c:\ ' c:\ ' c:\ ' c:\ ' dlm = ',';dlm = ',';dlm = ',';dlm = ','; input input input input cust_id cust_id cust_id cust_id prod_id prod_cat $;prod_id prod_cat $;prod_id prod_cat $;prod_id prod_cat $; cat1 = substr(prod_cat,1,1);cat1 = substr(prod_cat,1,1);cat1 = substr(prod_cat,1,1).

8 Cat1 = substr(prod_cat,1,1); cat2 = substr(prod_cat,2,1);cat2 = substr(prod_cat,2,1);cat2 = substr(prod_cat,2,1);cat2 = substr(prod_cat,2,1); cat3 = substr(prod_cat,3,1);cat3 = substr(prod_cat,3,1);cat3 = substr(prod_cat,3,1);cat3 = substr(prod_cat,3,1); count = 1;count = 1;count = 1;count = 1; run;run;run;run; proc sort data = in1 out = cat1;proc sort data = in1 out = cat1;proc sort data = in1 out = cat1;proc sort data = in1 out = cat1; by by by by cust_id cat1;cust_id cat1;cust_id cat1;cust_id cat1; run;run;run;run; proc summary data = cat1 sum;proc summary data = cat1 sum;proc summary data = cat1 sum;proc summary data = cat1 sum; var count;var count;var count;var count; by by by by cust_id cat1;cust_id cat1;cust_id cat1;cust_id cat1; output out = in1cat1 sum = cnt;output out = in1cat1 sum = cnt;output out = in1cat1 sum = cnt;output out = in1cat1 sum = cnt; run;run;run;run; Statistics and Data Analysis data in1cat1;data in1cat1;data in1cat1;data in1cat1; set in1cat1;set in1cat1;set in1cat1;set in1cat1; if cat1 = 'A' then c1_A = cnt;if cat1 = 'A' then c1_A = cnt.

9 If cat1 = 'A' then c1_A = cnt;if cat1 = 'A' then c1_A = cnt; else if cat1 = 'H' then c1_H = cnt;else if cat1 = 'H' then c1_H = cnt;else if cat1 = 'H' then c1_H = cnt;else if cat1 = 'H' then c1_H = cnt; else if cat1 = 'I' then c1_I = cnt;else if cat1 = 'I' then c1_I = cnt;else if cat1 = 'I' then c1_I = cnt;else if cat1 = 'I' then c1_I = cnt; run;run;run;run; proc summary data = in1cat1 sum;proc summary data = in1cat1 sum;proc summary data = in1cat1 sum;proc summary data = in1cat1 sum; var c1_A c1_H c1_I;var c1_A c1_H c1_I;var c1_A c1_H c1_I;var c1_A c1_H c1_I; by cust_id;by cust_id;by cust_id;by cust_id; output out = in1cat1 sum = c1_A c1_H c1_I;output out = in1cat1 sum = c1_A c1_H c1_I;output out = in1cat1 sum = c1_A c1_H c1_I;output out = in1cat1 sum = c1_A c1_H c1_I; run;run;run;run;This results in the following OBS CUST_ID _TYPE_ _FREQ_ C1_A C1_H C1_I OBS CUST_ID _TYPE_ _FREQ_ C1_A C1_H C1_I OBS CUST_ID _TYPE_ _FREQ_ C1_A C1_H C1_I OBS CUST_ID _TYPE_ _FREQ_ C1_A C1_H C1_I 1 1 0 1.

10 4 . 1 1 0 1 . 4 . 1 1 0 1 . 4 . 1 1 0 1 . 4 . 2 2 0 1 . 1 . 2 2 0 1 . 1 . 2 2 0 1 . 1 . 2 2 0 1 . 1 . 3 3 0 3 2 2 1 3 3 0 3 2 2 1 3 3 0 3 2 2 1 3 3 0 3 2 2 1 4 4 0 2 1 2.


Related search queries