一起读数据 | 贝叶斯网络
1. 贝叶斯网络简介
贝叶斯网络是有向无环图的一种概率图模型。它在1988年由图灵奖得主Judea Pearl提出,主要用于不确定性表达和推理。有向无环图由节点和边组成。每条边代表了节点间的相互关系。在贝叶斯网络中,一个样本点包含向无环图和相关的概率关系。本文讨论贝叶斯网络的可视化方法,其中并不涉及其中的概率关系。
2. 贝叶斯网络可视化工具
R语言中比较早期的贝叶斯网络可视化工具主要有,network包和igraph包。这些包都会根据用户数据生成特定的对象,然后定义相关的作图函数。在tidyverse项目开发之后,R中的很多作图函数都发生了巨大改变。ggraph就是基于ggplot2语法的一个可视化贝叶斯网络的R包。之后,ggdag包在ggraph和dagitty的基础上被开发出来。
3. 邻接矩阵和ggdag
邻接矩阵(adjacency matrix)是最常用最有效的表达贝叶斯网络的方式。如果邻接矩阵的元素为1,则相应的行与列对应的节点就存在一条边连接。但是在R语言中,作图函数通常不能直接使用邻接矩阵作图。例如,ggraph可以使用igraph类型作图。ggdag可以使用dagitty类型作图。下图就是典型的ggdag作图的语法。
library(ggdag)dag ~ x + z2 + w2 + w1, x ~ z1 + w1,