SAS - 通过 RDI 分析“欺诈”帐户/路由号码(空头支票)
Posted
技术标签:
【中文标题】SAS - 通过 RDI 分析“欺诈”帐户/路由号码(空头支票)【英文标题】:SAS - Analysis on 'Fraud' Account/Routing numbers via RDIs (bad checks) 【发布时间】:2020-03-03 02:27:33 【问题描述】:所以我是 SAS 和商业世界的新手,我正在做的一项任务很糟糕。
简介:我有一个数据集 RDI_HIST,它显示了大约 6 个月内按帐户/路由# 显示的所有 RDI。数据集中有约 250,000 笔交易,其中一些是同一客户(相同的帐户/路由#)。
我被告知要对这些数据进行分析,但首先我不确定我是否对其进行了排序/分组(见表格)。
+------------------+-------------+------------+-----------+-------+
| RDI_RT_TRAN_CODE | RDI_ACCT_NO | RDI_AMOUNT | RDI_TOTAL | COUNT |
+------------------+-------------+------------+-----------+-------+
| 518 | 0 | 3117.00 | 3777.5 | 3 |
| 518 | 0 | 170.00 | 3777.5 | 3 |
| 518 | 0 | 490.50 | 3777.5 | 3 |
| 26013673 | 0 | 755.63 | 755.63 | 1 |
| 31100225 | 0 | 31.40 | 31.4 | 1 |
| 41001039 | 0 | 143.10 | 143.1 | 1 |
| 41202443 | 0 | 32.38 | 32.38 | 1 |
| 41203824 | 0 | 63.31 | 63.31 | 1 |
| 41207341 | 0 | 43.00 | 375.87 | 4 |
| 41207341 | 0 | 184.87 | 375.87 | 4 |
| 41207341 | 0 | 15.00 | 375.87 | 4 |
| 41207341 | 0 | 133.00 | 375.87 | 4 |
| 41208719 | 0 | 247.57 | 247.57 | 1 |
| 41215621 | 0 | 220.00 | 630 | 4 |
| 41215621 | 0 | 250.00 | 630 | 4 |
| 41215621 | 0 | 60.00 | 630 | 4 |
| 41215621 | 0 | 100.00 | 630 | 4 |
| 43301601 | 0 | 1999.70 | 2407.16 | 3 |
| 43301601 | 0 | 330.18 | 2407.16 | 3 |
| 43301601 | 0 | 77.28 | 2407.16 | 3 |
| 43306910 | 0 | 1200.00 | 1200 | 1 |
| 43313259 | 0 | 1312.65 | 9852.52 | 6 |
| 43313259 | 0 | 1352.37 | 9852.52 | 6 |
| 43313259 | 0 | 2939.98 | 9852.52 | 6 |
| 43313259 | 0 | 1500.00 | 9852.52 | 6 |
| 43313259 | 0 | 1309.10 | 9852.52 | 6 |
| 43313259 | 0 | 1438.42 | 9852.52 | 6 |
| 44103976 | 0 | 126.00 | 126 | 1 |
+------------------+-------------+------------+-----------+-------+
对于分析,我真的不知道从哪里开始。主要目标是创建一段代码来吸引拥有多个 RDI(错误检查)的客户,并每周将他们添加到黑名单中。该列表的参数是什么,我还不确定,所以我只是想提出一些不错的统计数据。
如果有人能提供一些帮助,我一定会付清的。我会在这里回答任何问题。谢谢。
【问题讨论】:
【参考方案1】:从蛮力开始。首先获取 RDI 的分布,然后设计一个截止值。
假设您的数据被称为 have
并且变量名称如图所示,那么类似下面的内容很有用。
proc freq data=have noprint;
table rdi_account_no / out=rdi_counts;
run;
proc rank data=rdi_counts groups=100 out=rdi_counts_ranked;
var count;
ranks rank_count;
run;
proc freq data=rdi_counts_ranked;
table rank_count;
run;
您需要检查最后一个 proc freq 的分布,它本质上是帐户数的分布。即,如果您查看第 90 个百分位,它会告诉您有多少帐户属于该组。您还可以查看 PROC UNIVARIATE 中的 CDF。
proc univariate data=rdi_counts_ranked;
histogram rank_count;
cdf rank_count;
run;
【讨论】:
谢谢。真的很感激。【参考方案2】:你可以从 proc 方法开始。 假设 RDI_ACCT_NO 是您可以按此分组的客户 ID:
proc means data=RDI_HIST;
var RDI_RT_TRAN_CODE RDI_AMOUNT RDI_TOTAL;
by RDI_ACCT_NO;
run;
这将根据您的客户 ID 快速为您提供所选变量的汇总统计信息。
另外,我强烈建议您查看 SAS 支持社区。 *** 很棒,但 SAS 有一个庞大的程序员社区也准备帮助 SAS 人。
【讨论】:
同意,尤其是当您不是真正提出技术问题但需要更多在 *** 上无效的方法或方向时。 感谢您的帮助和建议。以上是关于SAS - 通过 RDI 分析“欺诈”帐户/路由号码(空头支票)的主要内容,如果未能解决你的问题,请参考以下文章
Azure 存储帐户:Blob 服务 (SAS) 连接检查失败
Azure 存储帐户生成 SAS 令牌,而不是 SAS URI