论文:最近邻条件独立性检测和基于PC的时序数据因果结构发现

文章标题

Conditional independence testing based on a nearest-neighbor estimator of conditional mutual information(Runge,2018,Google schorlar citation 106)

研究背景

条件独立性检测是因果结构(因果图)发现的前提,需要处理连续和离散变量,线性和非线性关系等多种场景进行处理。传统的Partial correlation仅针对线性依赖关系和Gassian error进行测试,基于kernel matrix的条件独立性检测计算量大同时对kernel函数的选择依赖性高。

研究目标

利用对变量间线性还是非线性不敏感的条件互信息检验变量之间的条件独立性,从而支持因果结构发现。本文侧重研究基于最近邻方法来实现条件互信息的计算和空分布的估计,从而执行条件独立性检测,因果结构发现是本文条件独立性检测的一个应用场景。

应用特色

可应用于时间序列数据的因果结构发现。

解决方案

算法

Step1:进行各变量父亲变量集合的初步筛选

在这里插入图片描述

参数

pc-alpha

在这里插入图片描述

Step2:算法

个人理解,这里条件依赖两个变量的父亲节点,只是为了双重剔除有错误的父亲节点。依据Markov assumption,条件依赖一个节点的父亲节点,则这个节点和其他非子孙节点就是独立的,所以both 依赖两个节点的父亲节点,假设两者之间没有直接联系,那两者一定是独立的。而这里的p-value是通过类似机器学习的方式,or AIC等方式实现的。
在这里插入图片描述

参数

估算条件互信息

使用k近邻估计方法。
k-cmi参数

估计空分布和P-value

null distribution estimation
通过permutation based method来估计H0的distribution,permutation产生1000个样本,计算每个样本的CMI估计分布。
k-permutation 参数

实验

环境安装

安装jupyter

https://github.com/jakobrunge/tigramite/blob/master/tutorials/tigramite_tutorial_basics.ipynb
如果发现无法通过jupyter notebook打开notebook,可能因为你没有在当前虚拟环境中安装jupyter

pip install jupyter
conda install -n your_virtual_env ipykernel# 若发现jupyter notebook中无自定义虚拟环境
python -m ipykernel install --user --name your_env --display-name "your_name"# 安装内核
安装tigramite
  • 通过Git下载程序
  • 安装指定的package,在Anoconda的终端环境下进入到你下载的tigramite文件目录下。通过在终端输入D: 进入到你想要进入的硬盘,然后通过cd操作进入到目标文件目录。
    在这里插入图片描述+ python setup.py install
打开tigramite自带的tutorial

通过在目标conda虚拟环境下使用jupyter notebook命令可以打开特定的notebook

jupyter notebook D:\code\JupyterNotes\tigramite_tutorials\tigramite_tutorial_basics.ipynb

模拟数据

采用一个函数

真实数据

因果结构检测
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值