没有合适的资源?快使用搜索试试~ 我知道了~
()下一页;|软件X 14(2021)100686原始软件出版物Ennemi:具有互信息的非线性相关检测放大图片作者:Peter A.Zaidana,c,Tuomo Nieminena,ba P.O.理学院大气和地球系统研究所/物理学。Box 64,FI-00014 University of Helsinki,Finlandb大气和地球系统研究所/森林科学,农林学院,P.O. Box 27,FI-00014 University of Helsinki芬兰c南京大气科学学院大气与地球系统科学国际联合研究实验室南京大学,南京210023ar t i cl e i nf o文章历史记录:收到2020年2021年3月2日收到修订版,2021年MSC:62B1094A17关键词:信息论互信息相关分析变量选择a b st ra ct我们提出了ennemi,一个基于互信息(MI)的相关性分析的Python包。MI是衡量变量之间关系的指标。与皮尔逊相关性不同,它也适用于非线性关系,但在线性情况下,两者是等价的。其他变量的影响可以像偏相关一样被去除,具有相同的等价性。这些特征使得MI成为许多变量对探索性分析的更好的相关性度量。我们的软件包提供了使用MI进行常见相关性分析任务的方法。它是可扩展的,与Python数据科学生态系统集成,并且需要最少的配置。版权所有©2021作者。由爱思唯尔公司出版这是CC BY许可下的开放获取文章(http://creativecommons.org/licenses/by/4.0/)中找到。代码元数据当前代码版本1.0.0指向此代码版本所用代码/存储库的永久链接https://github.com/ElsevierSoftwareX/SOFTX-D-20-00028Code Ocean compute capsule N/A法律代码许可证MIT许可证使用Git的代码版本控制系统使用Python 3的软件代码语言、工具和服务编译要求、操作环境依赖性Python 3.6+、NumPy 1.17.5+、SciPy 1.4+开发人员文档/手册https://polsys.github.io/ennemi/问题支持电子邮件petri. helsinki.fi1. 动机和意义在过去的几十年里,测量数据已经在各个科学领域中变得可用。这使我们能够发现测量变量之间的意外关系。另一方面,可变对的数量也显著增长为了集中注意力这是因为许多自然现象都是非线性的。互信息(MI)是两个随机变量之间依赖性的信息论度量[1]。它被定义为边缘熵和联合熵之间的差,或者等价地定义为为了对最有希望的关系进行探索性(产生假设)数据分析,需要一个自动化的过程。的I(X;Y)=0p(x,y)logp(x,y)d(x,y),(1)p(x)p(y)最流行的相关系数,皮尔逊*通讯作者。电子邮件地址:petri. helsinki.fi(P. Laarne)。https://doi.org/10.1016/j.softx.2021.100686其中p表示相应的概率密度。该定义类似于离散变量。 此外,条件MI,表示为I(X Y Z),是由第三个条件,可能是多维的,变量定义的。它类似于部分2352-7110/©2021作者。 由Elsevier B.V.出版。这是一篇开放获取的文章,使用CC BY许可证(http://creativecommons.org/licenses/by/4.0/)。可在ScienceDirect上获得目录列表SoftwareX期刊主页:www.elsevier.com/locate/softxR2P. Laarne,文学硕士 Zaidan和T. 涅米宁软件X 14(2021)1006862√;−相关性在这两种情况下,零MI意味着两个变量之间的独立性互信息的范围在[0,∞]上,但可以通过下式归一化为[0, 1]中的衰减系数:ρI(X;Y) =1−exp ( −2I ( X;Y ) ) 。(二)如果(X, Y)服从正态分布,则ρI(XY)等于两个变量之间的皮尔逊相关系数。同样的等价性也适用于条件MI和偏导数系数。此外,MI在变量的单调变换下是不变的这意味着非线性模型(X, Y)的MI相关系数与线性化模型(f(X),g(Y))的皮尔逊相关系数相匹配。f和g的一般条件描述于[2,Thm.1.6.3]。MI已被用于跨领域的相关性分析,例如生物信息学[3]和大气科学[4]。专用软件包括用于分子动力学的MDEntropy [5]和用于网络推理的IDTxl [6]。scikit-learn [7]等机器学习软件包将MI作为特征选择的一部分。自包含的软件包,如infotheory [8]或pycit[9],使用起来有些技术性。我们的目标是将MI作为一种相关性度量,一个被从业者很好理解的因此,我们专注于与现有工作流程的兼容性和各种用例,而不是各种算法。我们的软件包名为ennemi,具有以下特点:简单的文档化界面,用于常见的分析工作流程,与Python数据科学生态系统集成,支持• 最小限度地暴露技术细节,• 良好且可扩展的运行时性能。从连续数据中估计MI有三种常用方法:分箱/离散化(由infotherology 使 用 ) , 核 密 度 估 计 [10] 和 k- 最 近 邻 搜 索 [11](scikit-learn,pycit)。我们选择了最后一个,因为它表现良好,只需要一个参数k,其影响相对较小[11]。其他方法对箱/核宽度敏感[例如,12,图2]。我们还将算法变体用于2. 软件描述Ennemi的实现由两部分组成:al-出租ms和公共接口。后一个模块实现了所有的区别特征:并行性,滞后,掩码和可选的Pandas数据类型支持。这种拆分大大简化了算法模块,该模块仅处理原始NumPyndarray变量和独立估计任务。这些算法是参考文章的直接实现。2.1. 功能Ennemi的主要方法是estimate_mi和pair-wise_mi。第一个将一个变量与一个或多个变量进行比较,而第二个则在一组变量之间进行成对比较。数据可以作为Python列表、ndarray或PandasDataFrame传入(在这种情况下,结果将具有列名)。estimate_mi方法支持变量的时滞。当提供正的滞后Δ t时,数据点y1+Δ t,. . .,y n与x1,. . .,xn是对称的。如果指定了多个滞后,则y个观测的集合是固定的。这确保了所有估计值都使用感兴趣变量的相同子集。这两个方法都接受一个掩码参数。掩码应用于y值和转换后的x值。这使得能够使用数据的子集,而无需手动地使掩模适应滞后。这两种方法也接受条件变量,这可能是多维的。当变量大致对称且方差相同时,最近邻算法产生最准确的结果。如果存在重复观测(例如,由于精度低),则应添加一些噪声。默认情况下,该软件包会重新调整变量并添加可再现的噪声。然而,如果必要的话,用户需要将边缘分布转换为对称的(例如,通过取对数)。最 后 , 还 有 用 于 返 回 相 关 值 的 附 加 参 数 ( 等 式 10 ) 。(2)),指定y是离散的,并且执行算法。完整的描述和示例包含在Ennemi文档中。为了完整性,我们还包括了一个连续熵估计的方法(estimate_entropy).2.2. 性能执行时间在样本大小n中接近线性,并且随着要搜索的条件变量和邻居的数量而 不同n和k值下的运行时间测量结果如图所示。1.一、k-最近邻算法包括两个主要步骤:找到到的第k个邻居的L∞(最大范数)距离一个点,并计算在边际距离内的点空间.这些步骤使用scipy.spatial.cKDTree类提供该类是用C++实现的,提供了高效的向量化。Python通过一次只执行一个Python线程来强制数据一致性。cKDTree方法在执行编译代码时释放全局解释器锁(GIL),因此可以使用线程级并行。由于线程开销和GIL争用相对较小,大型估算任务几乎可以完美地并行化。我们使用简单的并行处理在单个线程上运行非常短的任务本节中的性能测量是在台式机上完成的,该台式机具有Inteli5-4670(4核,3.40 GHz)CPU,16 GB DDR3 RAM,Windows10 ( 版 本 1910 ) , 64 位 Python 3.8.5 , NumPy 1.19.1 和 SciPy1.5.2。代码和其他基准测试包含在Ennemi源代码库中。2.3. 验证我们已经实现了一个广泛的测试套件,包括单元和集成测试。托管在GitHub上的持续集成(CI)系统使用支持的操作系统和Python版本的组合对每个pull请求运行单元测试对单元测试的行覆盖率进行了测量,要求接近100%.为了测试算法,我们使用MI的解析表达式,最重要的是高斯分布和[14]中描述的一些。集成测试模拟更真实的工作流程,使用真实数据或具有数值参考结果的模拟数据集。例如,测试重现了[12,13]的结果因为Python是一种动态类型语言,所以类型错误只在运行时发生。为了更早地检测到这些错误,我们使用标准库中定义的类型注释对所有方法进行了修改[15],以便使用Mypy静态分析器进行验证。这些注释也可供包用户使用。覆盖范围仍然是部分的,因为NumPy和其他依赖项正在添加类型信息。···P. Laarne,文学硕士 Zaidan和T. 涅米宁软件X 14(2021)1006863Fig. 1. 具有零(无条件)、一(1D条件)和两(2D条件)条件变量的单个MI估计的执行时间(10次重复中最好),作为(a)数据点数目n和(b)参数k的函数。所有变量都是独立的标准高斯分布。图二. 赫尔辛基当地时间下午3点气象数据集中每个变量之间的成对MI。在(a)中显示了无条件相关性,在(b)中显示了无条件相关性。该相关性取决于一年中的哪一天我们还实现了软件包发布过程的自动化。当在GitHub上创建发布时,脚本提交包Python包索引(PyPI)已发布的代码版本存档在Zenodo上,确切的版本可引用[16]。3. 说明性示例我们展示了芬兰赫尔辛基Kaisaniemi气象站2015年至2019年的气象观测(风速和风向、露点、温度和气压)的基本用途Ennemi文档中包含此示例的扩展版本原始数据来自芬兰气象研究所。1从恩内米进口estimate_mi, 成对mi进口 numpyas NP进口熊猫如pddata = pd。read_csv(“kaisaniemi . csv“,index_col =0,parse_dates=True)清单1:导入包和数据。1https://en.ilmatieteenlaitos.fi/download-observations,2020年8月13日访问。首先,我们导入Ennemi、NumPy和Pandas,然后将数据作为Pandas数据框加载(清单1)。通过视觉检查,变量具有大致对称的分布,因此不需要例如取曲线图。因此,变量的自动缩放就足够了。一个好的第一步是绘制所有变量之间的成对MI。由于该算法假设独立的样本,而气象数据是高度自相关的,我们必须每天只选择一个样本例如,我们可以计算本地时间下午3点的变量之间的依赖关系,包括在一年中的某一天进行调节和不进行调节(清单2)。#The 数据I s在小时我不想去 和 以UTC掩模 = (数据。指数.小时 == 13)pairwise = pairwise_mi(data,mask=mask,normalize=True)pairwise_doy = pairwise_mi(data,mask=mask,cond=data [“DayOfYear“],normalize=True)清单2:变量间成对MI的计算所得到的矩阵可以用例如Matplotlib,如图所示。 二、温度和露点的强烈季节性周期调节消除了这种影响,而无需进一步的模型规格。P. Laarne,文学硕士 Zaidan和T. 涅米宁软件X 14(2021)1006864图三. 赫尔辛基的风向和气温之间的相关性取决于季节,西风与极端气温的相关性较小。见图4。 下午3点的温度与变量的温度和风向之间的相关性随着条件作用而增加,正确地表明空气质量源影响一个季节内的温度。这种依赖性可能很难用传统的方法看到,因为相关性的符号随季节变化,如图所示。3.第三章。#滞后 起来到三天与四时距滞后 = NP . arange(0, 3∗ 24 + (第1、4段)mi = estimate_mi(data [“Temperature“],data,lags,cond=data [“DayOfYear“],mask=afternoon_mask,normalize=True)清单3:去除季节性影响后的时间依赖性估计。我们还可以估计变量之间的时间依赖性。例如,我们能预测未来多久的温度?这可以通过将协变量滞后传递到estimate_mi中来计算。季节性影响通过在一年中的某一天进行调节来消除(清单3)。结果显示在Fig. 四、正如可以预期的那样,相关性随着时间差的增加而降低。气压是个例外,这表明它是变化最慢的。温度和风速之间的相关性很低,与时间延迟无关。在最低相关值中存在显著的噪声。这是因为标准化公式(Eq.(2)非线性。增加k参数可提高低值的准确度,但可能会对高值产生小偏差。为了在不违反独立性假设的情况下从1826天增加有效样本量,我们可以对单独的、几乎相同的估计结果进行平均:例如,温度观测值固定在下午2点、3点和4点。4. 影响我们已经使用Ennemi来评估MI在大型大气数据集中检测非线性相关性的适用性。我们使用了赫尔辛基大学SMEAR台站网络[17]的数据,该台站网络对气象、大气和生态参数进行了全面的长期测量。这些数据集允许详细研究大气-生物圈系统中的各种过程、相互作用和反馈在我们过去的经验中,MI在检测已知的线性和非线性相关性方面表现良好[4,18]。主要的问题是必须解决自相关和低MI值的不准确性。还需要对称化变量的边际分布,尽管这个过程可以可行地自动化。还有其他类似的变量关系度量,如最大信息系数[19]和传递熵[20]。简单性和理论上与皮尔逊相关性的等价性使得MI即使在更先进的方法可用的情况下也具有吸引力。转移熵可能是一个未来的列入恩尼米。我们的新软件包的特点是专门针对数据分析。它几乎不需要用户的信息理论知识,并与常见的Python生态系统一起进行数据操作。我们还在测试和性能方面进行了广泛的工作,以便为未来的应用提供可靠的构建模块5. 结论我们已经提出了一个用于估计互信息的Python包该软件包是专为非线性相关检测的一部分,现代数据分析管道。因此,它具有与Pandas数据类型集成的功能,并支持掩码、时间滞后和相关系数缩放的标准化。我们的实现也经过了广泛的测试,可移植,并且相当快。我们相信Ennemi可以帮助发现数据集中的新关系。基本的测量方法已经在多个领域的专业应用和一般相关性分析通过介绍一个现成的软件包,我们希望鼓励更广泛适用的探索性相关分析在不同的情况下。竞合利益作者声明,他们没有已知的竞争性财务利益或个人关系,可能会影响本文报告的工作确认这项工作得到了芬兰科学院PROFI3 基金的支持(决定编号311932)。P. Laarne,文学硕士 Zaidan和T. 涅米宁软件X 14(2021)1006865引用[1] 封面TM,托马斯JA.信息论的基本原理Wiley; 2006.[2] 伊原湾连续系统的信息论世界科学; 1993年。[3] 放大图片Lachmann A,Giorgi FM,Lopez G,Califano A. ARACNe-AP:通过自适应划分相互信息推理的基因网络逆向工程。Bioinformatics 2016;32(14):2233-5. http://dx.doi.org/10.1093/bioinformatics/btw216.[4] Zaidan MA,Haapasilta V,Relan R,Paasonen P,Kerminen V-M,Junni-nen H,Kulmala M,Foster AS.探索大气新粒子形成和环境变量之间的非线性关系:互信息方法。Atmos Chem Phys 2018;18(17):12699-714。网址://dx.doi.org/10.5194/acp-18-12699-2018网站。[5] Hernández CX,Pande VS. MDEntropy :分子动力学的信息理论分析。JOpenSourceSoftw2017;2 ( 19 ) : 427.http://dx.doi 的 网 站 。org/10.21105/joss.00427。[6] [10]李文辉, 李文辉 . IDTxl:The Information Dynamics Toolkit xl:一个Python 包 , 用 于 有 效分 析 网 络 中 的 多 元信 息 动 态 。 J Open Source Softw2019;4(34):1081. http://dx.doi.org/10的网站。21105/joss.01081。[7] Pedregosa F,Varoquaux G,Gramfort A,Michel V,Thirion B,Grisel O,Blondel M,Prettenhofer P,Weiss R,Dubelovic V,Vanderplas J,Passos A,Cournapeau D,Brucher M,Perrot M,Duchesnay E. Scikit-learn:Python中的机器学习。J Mach Learn Res2011;12:2825-30.[8] Candadai M,Izquierdo E.infotheory:一个用于多变量信息理论分析的C++/Python 包 JOpenSourceSoftw2020;5 ( 47 ) : 1609.http://dx.doi.org/10.21105/joss.01609网站。[9] 杨A. pycit。网址https://pypi.org/project/pycit/。[10]Moon Y-I,Rajagopalan B,Lall U.利用核密度估计器估计互信息。Phys RevE1995;52(3):2318-21。http://dx.doi的网站。org/10.1103/PhysRevE.52.2318。[11]Kraskov A , Stögbauer H , Grassberger P. 估 计 相 互 信 息 。 Phys Rev E2004;69(6):066138。http://dx.doi.org/10.1103/PhysRevE的网站。六十九点零六六一三八。[12] 罗斯BC。离散和连续数据集之间的互信息。PLoS One 2014;9(2):e87357. http://dx.doi.org/10.1371/journal.pone的网站。0087357。[13] 弗伦泽尔,庞培多元时间序列耦合分析的部分互信息。物理学评论快报2007;99(20):204101。http://dx.doi的网站。org/10.1103/PhysRevLett.99.204101。[14]达贝莱多元连续分布的熵表达式。IEEE TransInform Theory 2000;46(2):709-12. http://dx.doi的网站。org/10.1109/18.825848。[15][10]李晓,李晓,李晓. PEP 484 -类型提示。Python软件基金会; 2015 年,URLhttps://www.python.org/dev/peps/pep-0484/。[16] Laarne P. polsys/ennemi,最新版本。http://dx.doi.org/10.5281/zenodo的网站。3834018[17]Hari P , Kulmala M. 生 态 系 统 - 大 气 关 系 测 量 站 ( SMEAR II ) 。 BorealEnvironRes2005;10(5):315-22,URLhttp://www.borenv.net/BER/archive/pdfs/ber10/ber10-315.pdf网站。[18]Zaidan MA , Dada L , Alghamdi MA , Al-Jeelani H , Lihavainen H ,Hyvärinen A,Hussein T.互信息输入选择器和概率机器学习在空气污染代理中的应用。应用科学2019;9(20):4475。http://dx.doi.org/10.3390/app9204475网站。[19]Reshef DN , Reshef YA , Finucane HK , Grossman SR , McVean G ,Turnbaugh PJ,Lander ES,Mitzenmacher M,Sabeti PC. 在大数据集中检测新的关联Science 2011;334(6062):1518-24. http://dx.doi.org/10的网站。1126/science.1205438.[20]Kaiser A,Schreiber T.在连续过程中的信息传递。物理学D2002;166(1-2):43-62.http://dx.doi.org/10.1016/S0167-2789(02)00432-3.
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功