【发布时间】:2020-11-19 05:25:17
【问题描述】:
这是我的交易数据:
data:
id from_id to_id amount date_trx
<fctr> <fctr> <fctr> <dbl> <date>
0 7468 5695 700.0 2005-01-04
1 6213 9379 11832.0 2005-01-08
2 7517 8170 1000.0 2005-01-10
3 6143 9845 4276.0 2005-01-12
4 6254 9640 200.0 2005-01-14
5 6669 5815 200.0 2005-01-20
6 6934 8583 49752.0 2005-01-24
7 9240 8314 19961.0 2005-01-26
8 6374 8865 1000.0 2005-01-30
9 6143 6530 13.4 2005-01-31
...
我想按如下方式过滤数据:
如果在转账链中的任何一点,账户收到的资金与离开初始发送方的资金的比率高于阈值,例如 0.9,(即 1 ≥ (second_transacted_amount / first_transacted_amount) > 0.9) ,然后我想提取这些帐户并保存以供日后调查。
例如,这里的帐户“7468”在 2005 年 1 月 4 日向帐户“5695”发送了 700.0 美元。在此事务之后,假设“5695”进行了超过 700.0 的 90% 的事务,但不完全是 700.0。这里还有一点很重要:第二个事务应该总是在第一个之前。因此, date_trx 变量在这种情况下也很重要。我怎样才能为整个数据(在 R 中)做到这一点?
我们可以有一个小数据集来测试:
id from_id to_id amount date_trx
<fctr> <fctr> <fctr> <dbl> <date>
0 A B 200.0 2005-07-08
1 B C 185.0 2005-08-20
2 B E 50.0 2005-10-19
3 C B 170.0 2005-05-08
4 C D 40.0 2005-09-19
5 D F 38.0 2005-07-13
考虑到 B 的交易,
0 A B 200.0 2005-07-08
1 B C 185.0 2005-08-20
2 B E 50.0 2005-10-19
3 C B 170.0 2005-05-08
由于以下交易对,B应该被标记为可疑
0 A B 200.0 2005-07-08
1 B C 185.0 2005-08-20
同样的道理,考虑来自或去往 C 的交易
1 B C 185.0 2005-08-20
3 C B 170.0 2005-05-08
4 C D 40.0 2005-09-19
C 不应被标记为可疑
可以对from_id进行标记:
输出可能类似于:
id from_id to_id amount date_trx suspicious
<fctr> <fctr> <fctr> <dbl> <date> <fctr>
0 A B 200.0 2005-07-08 N
1 B C 185.0 2005-08-20 Y
2 B E 50.0 2005-10-19 Y
3 C B 170.0 2005-05-08 N
4 C D 40.0 2005-09-19 N
5 D F 38.0 2005-07-13 N
【问题讨论】:
-
id 2 应该是可疑的?
-
可疑列实际上是基于 from_id ,而不是基于 id 列。 @费尔南多
-
好的,那我换个答案
标签: r networking igraph social-networking network-analysis