网络科学基础:图论基础
各位同学好,我是老张。今天咱们聊聊网络科学里最底层的那些东西——图论。说实话,我刚开始做风控那会儿,觉得图论就是数学课本里的抽象概念,跟实际业务八竿子打不着。直到有一次处理银行间同业拆借数据,我才发现,原来金融网络本质上就是一张图。嗯,从那以后,我再也不敢小看它了。
节点与边:网络的最小单元
图论里最核心的两个概念,就是节点和边。节点,你可以理解成网络里的一个个实体。在咱们机构间风险敞口的场景里,节点就是银行、券商、保险公司这些金融机构。边呢,就是它们之间的关联关系。
我个人习惯把节点想象成「人」,边想象成「关系」。你想想看,人和人之间有关系,比如朋友、同事、借贷关系。金融机构之间也一样,有资金拆借、衍生品交易、担保关系等等。
关键点:在风险敞口网络中,节点代表机构,边代表风险敞口的方向和大小。
我在项目中遇到过一个问题:有些同事把节点和边的定义搞混了。比如,把一笔交易当作节点,把机构当作边。这其实是不对的。记住一句话:节点是主体,边是关系。主体是静态的,关系是动态的。
有向图 vs 无向图
图可以分为有向图和无向图。这个区别很重要,尤其是在金融风控里。
无向图,说白了就是边没有方向。比如两家银行互相持有对方的债券,这种关系是对称的。有向图呢,边是有箭头的,表示方向。比如A银行向B银行拆借资金,这个关系就是单向的。
我曾经踩过一个坑:在处理跨境资本流动数据时,默认用了无向图。结果发现,资金明明是从A流到B,我却把它当成双向关系来分析。那段时间模型预测总是偏差很大,后来才发现是图的方向搞错了。避坑指南:金融网络里,绝大多数关系都是有向的,除非你能明确证明关系是对称的。
| 类型 | 定义 | 金融场景举例 |
|---|---|---|
| 无向图 | 边没有方向,关系是对称的 | 两家银行互相持有对方债券(假设金额相等) |
| 有向图 | 边有方向,关系是单向的 | A银行向B银行拆借资金,B银行向C银行提供担保 |
邻接矩阵与度分布
图怎么用数学表示?最常用的就是邻接矩阵。说白了,就是一个方阵,行和列都代表节点。如果节点i和节点j之间有边,那矩阵里第i行第j列就填1(或者权重值),没有就填0。
举个例子,假设我们有3家银行:工行、农行、中行。工行向农行拆借了100亿,农行向中行拆借了50亿。那邻接矩阵就是:
# 邻接矩阵示例
# 行:资金流出方,列:资金流入方
# 工行 农行 中行
adj_matrix = [
[0, 100, 0], # 工行
[0, 0, 50], # 农行
[0, 0, 0] # 中行
]
度分布呢,就是统计每个节点有多少条边。在有向图里,度分为入度和出度。入度是「有多少条边指向我」,出度是「我从这里出发有多少条边」。
我建议你记住这个直觉:入度高的机构,是「资金黑洞」,大家都把钱借给它;出度高的机构,是「资金源头」,它把钱借给很多人。在风险敞口分析里,这两种机构都需要重点关注。
小技巧:用Python的NetworkX库,一行代码就能算度分布:nx.degree_histogram(G)。我经常用它快速看网络结构。
网络的基本拓扑性质
图建好了,接下来要看它的拓扑性质。说白了,就是这张图长什么样,有什么特点。我挑几个最常用的讲讲。
1. 连通性
图是不是连在一起的?如果从任意一个节点都能走到另一个节点,那就是连通图。金融网络里,如果出现孤立节点,说明这家机构跟谁都没关系,风险传染不到它,但它也享受不到网络的好处。
2. 路径与距离
两个节点之间最短的路径长度,叫距离。在风险传染分析里,距离越短,风险传播得越快。我记得有一次做压力测试,发现某家小银行虽然规模不大,但它跟所有大行都有直接连接,距离全是1。结果它一违约,整个网络都震动了。
3. 聚类系数
这个指标衡量的是「你的朋友之间是不是也互相认识」。在金融网络里,聚类系数高,说明机构之间抱团严重,风险容易在局部聚集。我处理过的一个案例:某地区几家城商行互相担保、互相拆借,聚类系数高达0.8。结果一家出问题,整个区域都跟着遭殃。
4. 度分布与幂律
很多金融网络的度分布服从幂律分布。什么意思?就是少数机构连接了大部分边,大多数机构只连接很少的边。这些「少数机构」就是系统重要性金融机构,也就是我们常说的「大而不能倒」。
注意:幂律分布的网络对随机攻击有很强的鲁棒性,但对针对性攻击非常脆弱。如果你要设计风险缓释策略,一定要优先保护那些度高的节点。
知识体系总览
下面这张图是我自己画的,把本章的核心逻辑串起来了。你可以把它当作一个思维导图来用。
这张图从最底层的节点和边出发,逐步延伸到有向/无向图、邻接矩阵与度分布,最后落到网络的拓扑性质上。你会发现,所有的高级分析——风险传染、系统重要性识别——都建立在这些基础概念之上。
好了,这一章的内容就到这里。图论基础是后面所有网络分析的基石,建议你多动手画几张图,用Python的NetworkX库跑几个小例子。我在下一章会讲如何用这些工具做实际的风险敞口网络构建,到时候咱们再细聊。
公众号:蓝海资料掘金营,微信deep3321