银行客户案例分析
案例背景和问题:
某商业银行试图通过对个人客户购买本银行金融产品的数据进行分析,从而发现交叉销售的机会。
数据集说明:
该银行采集了7991个客户的产品(或服务)购买记录,共32000行,数据集名称为BANK。
变量说明:
ACCT:客户标识
SERVICE:购买的产品或服务
VISIT:购买时间
数据集每一行代表这个顾客拥有的一种产品,一个顾客可能有多个行。平均每个顾客拥有的产品数是3种。数据集中的13种产品和服务缩写如下所示:
ATM 自动取款机 AUTO 自动贷款 CCRD 信用卡
CKCRD 支票/贷记卡 CKING 支票账户 HMEQLC 家居股本信贷
IRA 个人退休账户 MTG 抵押 CD 存款保证
PLOAN 个人消费信贷 SVG 储蓄账户 TRUST 个人信托账户
MMDA 货币市场存款帐户
实验要求和总体步骤:
对BANK数据集进行关联分析和频繁序列分析。
• 确定数据源
• 设置变量角色
• 确定支持度、置信度阈值,进行关联分析
• 查看和筛选关联分析结果
• 设置变量角色,进行频繁序列分析
• 分析评价频繁购买序列
操作步骤
准备工作:
1.在D盘建立文件夹:BANK
2.启动SAS ,建立逻辑库DATA 指向D:\BANK
3.打开企业挖掘机
关联分析:
1. 建立一个新的挖掘项目BANK, 保存在D:\BANK目录下,第一个DIAGRAM命名为ASSOC。并在右边的工作区中加入“input data source”节点。,
2. 打开Input Data Source node(数据输入节点)。
3. .在数据库中选择BANK数据集。
4. 选择Variables(变量)栏。
5. 将ACCT设为id(身份),SERVICE设为target(目标),将VISIT设为sequence (序列)。
6. 关闭Input Data Source node(数据输入节点),保存对它的更改。
7. 工作区中新增Association node节点,并与Input Data Source 节点进行连接。如下图所示:
然后 打开Association node(关联节点)。默认的是Variables tab(变量栏),这与Input Data Source node(数据输入节点)中的Variables tab(变量栏)是一样的。
8. 选择General(综合)栏,通过这个栏可以设置分析节点。
观察Analysis mode(分析方法)选项,默认的方法是By Context。要根据前面的Input Data Source node(数据输入节点)中定义的信息来选择适当的方法。如果输入数据集包括一个ID(身份)变量,一个target(目标)变量,这个节点就会自动地选择association analysis(关联分析)。如果有一个sequence(序列)变量且它的状态是use,那么这个节点就会进行一个sequence Analysis(序列分析)。
因为在输入数据集中有个序列变量,所以这里默认的分析方法为sequence analysis(序列分析)。这里我们先进行association analysis(关联分析),稍后讨论Sequence analysis(序列分析)。
9. 将分析方法改为Association(关联)。设置支持度和置信度的阈值,以及频繁项集的最大元素个数,如上图所示。
10. 关闭Association node(关联节点),弹出提示时选择保存。
11. 运行这图里的Association node(关联节点),并且观察结果。
这个关系栏包含了所有的关联关系,假设关系为A=>B,回顾一下前面的:
● A=>B 的Support(支持度)是指一个顾客同时拥有A和B的可能性。
● A=>B 的confidence(_置信度)是给定顾客拥有A后,又拥有B的可能性。
● A=>B的 lift是对这个关联的强度的恒量。如果关系A=>B 的Lift=2,拥有A的顾客再拥有B的可能性是随机抽样的一个顾客拥有B的可能性的两倍。
12. 在Support(%)列中单击右键,选择Sort(排序)=> Descending(降序)
Support(支持度)是指包含这个关系的所有顾客的百分比。比如说,大约在7991位顾客中有54.17%同时拥有支票与储蓄帐户,而大约有25%的顾客同时拥有支票账户,储蓄账户和ATM(自动取款卡)。
13. 在Confidence(%)列中单击右键,选择Sort(排序)=> Descending(降序)。
Confidence(置信度)表示拥有LHS (左边)业务的顾客中拥有RHS(右边)业务的百分比。比如:所有拥有支票账户的顾客都拥有一张支票卡,而在同时拥有储蓄账户和信用卡的顾客中超过97%的顾客拥有一个支票账户。
14. 在llift(增益)列中单击右键,选择Sort(排序)=> Descending(降序)。
在关联关系中的lift(增益),是RHS(右边)和 LHS(左边)形成关系的confidence(置信度)与假设RHS(右边)和 LHS(左边)不相关的confidence(置信度)二者之比。因此,lift是用来衡量RHS(右边)和 LHS(左边)的关联关系的。如果值大于1,则说明LHS 与RHS正相关,如果等于1则代表无关。如果小于1则二者负相关。
CKCRD ==> CCRD 的lift(增益)值为3.19,因此,如果选择一个顾客拥有check/debit card(支票/借记卡),那他拥有credit card(信用卡)的可能性是随机抽取的一个顾客的3倍。
注:默认情况下,在结果中,只显示lift(增益)大于1的关联。可以将View=> When Confidence(真实可信度) 改为Expected Confidence(期望可信度)。
15. 点击Frequencies(频率)栏。
这个栏格列出了每个产品拥有的客户量。这与简单的次数统计是有所区别的。比如说,一个顾客可能拥有多个支票账户,但这里只会计算一次。这是一个相当有用的信息,尤其在解释为什么一个特定的对象没有出现在这些关系里时。上面提到,在默认的情况下,一个关联出现的次数至少要是出现最多的对象的次数的5%。这里出现最多次数最多的是checking account(支票账户),出现了6855次。因此,一个产品的组合至少要有343位顾客(6855的5%),否则无法形成一个关联准则。
如果想对association(关联)中的出现较少的产品进行研究的话,就要考虑在运行association Node(关联节点)减低最少出现频率的限制。如果得到的关联关系太多,超过了可用范围,则可以考虑提高最少出现频率的限制。
假设想对拥有market deposit account (MMDA) (货币市场存款帐户)和certificate of deposit (CD) (存款保证)的用户进行了解,想了解他们拥有其它什么产品。可以按照以下的方法:
1. 选择Rules tab(关系栏)。
2. 选择View(视图)=> Subset Table….(子栏)
3. 在Predecessor (前续)=> Successor(后续)栏中,选择CD(存款保证)和MMDA(货币市场存款帐户)两项做为左边的项。
4. 在Left Hand Side (左边)的Type(类型)的下拉选项中选择Combinations &Single(结合与单一)。
5. 在Right Hand Side(左边)的Type(类型)的下拉选项中选择Find Any(寻找全部)。
6. 选择Process(进行),然后观察结果。
左边是CD(存款保证)和MMDA(货币市场存款帐户)中一个或者两个的规则有8个。如果是想了解和automobile loans(自动贷款)有关的规则,而且想要得到一个含有AUTO(自动贷款)的规则的子集,最简单的方法将这些规则保存为一个子集,然后用SAS Code node(SAS代码节点)分出这个数据。
7. 选择 View(视图)=> Reset Table(重排表格)
8. 选择 File(文件)=> Save As Data Set….(保存为数据集)
9. 可以看到,这个数据集的保存名为Selected Output from Rulegen.点击OK,保存这个数据集。
10. 关闭这个Association node(关联节点),然后在图栏中添加一个SAS Code node(SAS代码节点)。
11. 打开这个SAS Code node(SAS代码节点),打开Macros tab(宏栏)。
Enterprise Miner(企业挖掘器)自动创建了很多宏变量。这里,我们可以看到&_MAC_4,这是从Association node(关联节点)中保存过来的结果。
12. 选择Program(程序)栏。
13. 输入如下的程序:
14. 点击按钮 行SAS Code(SAS代码)。
15. 点击Yes,选择现在运行SAS Code(SAS代码)。
16. 弹出提示时点击Yes,观察运行结果。
17. 选择Output(输出)栏。
在输出结果中得到了13个关于与automobile loans (自动贷款)有关的规则。
18. 看完输出结果以后,关闭SAS Code node(SAS代码节点)结果和SAS Code node(SAS代码节点)。
序列分析
Association analysis(关联分析)的作用是用来研究出售的产品之间的关系。换句话说,哪些产品是顾客同时会购买的。Sequence analysis(序列分析)又进一步分析了这些产品的购买的顺序。这可以回答这样的问题:如果一周顾客购买了A产品,下周他是否会购买B产品?一个Sequence analysis(序列分析)需要定义一个sequence(序列)变量。association analysis(关联分析)则不要求sequence(序列)变量。银行除了对客户拥有的产品感兴趣以外,还想了解顾客购买这些的顺序。在数据集中有sequence (序列)变量,就可以进行sequence analysis(序列分析)。
1. 在图表工作区添加一个Association node(关联结点),把它与Input Data Source node(输入数据源节点)节点相连。
2. 打开这个Association node(关联节点)。
3. 选择General(一般)栏。观察到,由于数据集中的sequence(序列)变量的状态是use(利用),所以在默认的情况下,分析的方法就是sequence analysis(序列分析)。
4. 选择Sequences(序列)栏。
在Sequences(序列)栏中,可以定义一个序列出现的最小出现频率以及在一个最长的序列链里出现的个数。定义的最多个数是10个。
5. 选择Time Constraints(时间限制)栏。这里的选项允许对一系列交易指定最大时间长度,这些交易被考虑成一个序列。可能只考虑在三个月内购买两种产品的情况进行序列分析,而超过三个月的则不以考虑。另外一个选项是固定时差。意思是如果在一天之内购买两种产品,则认为是同时购买。
6. 使用默认值,关闭关联节点。
7. 运行Association node(关联节点),在弹出提示时选择Yes来观察得出的结果。
8. 在Confidence(置信度)(%)列内单击右键选择Sort(排序)=> Descending(降序)。
这里的transaction count(交易总数)是指按后面的序列顺序购买了产品的总的顾客总数。这里的support(支持度)是指用transaction count(交易总数)除以总的顾客数,而总的顾客数也是可能的最大transaction count(交易总数)。Confidence(置信度)百分比是用transaction count(交易总数)除以拥有序列左边业务的顾客的总数(这个可以在Frequencies(频率)栏中查得)。比如说,使用了过automobile loan(自动贷款)的顾客中,有82.12%会使用第二次automobile loan(自动贷款)。
9. 选择View(视图)=>Subset Table….(子表)
10. 从Available Columns(变量列)清单中选择Chain Item 1。
11. 在Operators(方法)中选择EQ。
12. 在Available Columns(变量列)清单中选择
13. 选择AUTO(自动贷款)。
14. 在Operators(方法)=> OR。
15. 在Available Columns(变量列)清单中选择Chain Item 2。
16. 在Operators(方法)中选择EQ。
17. 在Available Columns(变量列)清单中选择
18. 选择AUTO(自动贷款)。
19. 在Operators(方法)=> OR
20. 在Available Columns(变量列)清单中选择Chain Item 3。
21. 在Operators(方法)中选择EQ。
22. 在Available Columns(变量列)清单中选择
23. 选择AUTO(自动贷款)。
24. 点击OK。
得到了包含automobile loans(自动贷款)的序列有17条。
25. 看完上述结果后关闭sequence analysis(序列分析)结果。
枯藤老树昏鸦,小桥流水人家,古道西风瘦马。夕阳西下,断肠人在天涯。
本文来源:https://www.2haoxitong.net/k/doc/bc5303b3b80d4a7302768e9951e79b8969026851.html
文档为doc格式