SAS - Анализ счета мошенничества / номеров маршрутизации через RDI (плохие чеки) - PullRequest
0 голосов
/ 06 ноября 2019

Итак, я новичок в SAS и в мире бизнеса, и у меня ужасное время с задачей, которую я выполняю.

Краткое описание: У меня есть набор данных RDI_HIST , который показывает все RDI по учетной записи / маршруту # в течение ~ 6 месяцев. В наборе данных содержится ~ 250 000 транзакций, некоторые из которых принадлежат одному и тому же клиенту (тот же acct / routing #).

Мне сказали провести анализ этих данных, но сначала я не уверен, что они отсортированы / сгруппированы для этого (см. Таблицу).

+------------------+-------------+------------+-----------+-------+
| 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 (плохие проверки) и еженедельно добавляет их в черный список. Какие параметры для этого списка, я пока не уверен, поэтому я просто пытаюсь придумать приличную статистику.

Я обязательно заплачу, если кто-нибудь сможет оказать некоторую помощь. Я буду здесь, чтобы ответить на любые вопросы. Благодарю.

Ответы [ 2 ]

1 голос
/ 06 ноября 2019

Вы можете начать с процедурными средствами. Предполагая, что RDI_ACCT_NO - это идентификатор клиента, который вы можете сгруппировать по следующему:

proc means data=RDI_HIST;
var RDI_RT_TRAN_CODE RDI_AMOUNT RDI_TOTAL;
by RDI_ACCT_NO;
run;

Это быстро предоставит вам сводную статистику для выбранных переменных по вашему идентификатору клиента.

Кроме того, я настоятельно рекомендую посмотреть на сообщества поддержки SAS. Stackoverflow великолепен, но у SAS есть большое сообщество программистов, готовых помочь и людям SAS.

0 голосов
/ 06 ноября 2019

Начните с грубой силы. Сначала получите распределение вашего 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;

Вы захотите проверить распределение последней частоты выполнениякоторый по сути является распределением # счетов. Т.е. если вы посмотрите на 90-й процентиль, он скажет вам, сколько аккаунтов попадает в эту группу. Вы также можете взглянуть на CDF в PROC UNIVARIATE.

proc univariate data=rdi_counts_ranked;
histogram rank_count;
cdf rank_count;
run; 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...