具有混合连续和离散边缘的典型藤蔓copula树的包。

mixedvines的Python项目详细描述


连续与离散混合的典型藤蔓copula树的包装 边缘。如果您使用此软件进行发布,请引用[ONKEN2016]

说明

这个包包含一个基于 对部分离散和部分连续的多元数据建模。这个 多变量分布具有丰富的依赖性 结构和边缘。

对于连续边值,normal和gamma的实现 提供分配。对于离散边值,poisson,二项式和 给出了负二项分布。作为二元copula构造 块,高斯,弗兰克和克莱顿族以及旋转变换 提供家庭。附加的边缘和对copula分布可以是 很容易添加。

该软件包包括抽样、似然计算和推断方法, 所有这些都具有二次复杂度。这些程序组合在一起 用蒙特卡罗积分法估计熵。

有关框架的详细说明,请参见[ONKEN2016]

文件

mixedvines包的完整文档可在 Read the Docs

要求

该包与Python2.7和3.x兼容,并且需要 NumPy and SciPy

安装

要安装mixedvines包,请运行:

pip install mixedvines

用法

假设数据以numpy数组samples的形式给出,其形状为(n, d), 其中,n是样本数,d是每个 样品。首先,指定哪些元素是连续的。例如,如果, 分布有三个元素,第一个和最后一个元素是 连续,而第二个元素是离散的:

is_continuous=[True,False,True]

要将混合的藤蔓植物放入样本:

frommixedvines.mixedvineimportMixedVinevine=MixedVine.fit(samples,is_continuous)

vine现在是一个MixedVine对象。从分布中提取样本, 计算它们的密度并估计以位为单位的分布熵:

samples=vine.rvs(size=100)logpdf=vine.logpdf(samples)(entropy,standard_error_mean)=vine.entropy(sem_tol=1e-2)

要手动构建和可视化一个简单的混合viNe模型:

fromscipy.statsimportnorm,gamma,poissonimportnumpyasnpfrommixedvines.copulaimportGaussianCopula,ClaytonCopula,FrankCopulafrommixedvines.mixedvineimportMixedVineimportmatplotlib.pyplotaspltimportitertools# Manually construct mixed vinedim=3# Dimensionvine=MixedVine(dim)# Specify marginalsvine.set_marginal(0,norm(0,1))vine.set_marginal(1,poisson(5))vine.set_marginal(2,gamma(2,0,4))# Specify pair copulasvine.set_copula(1,0,GaussianCopula(0.5))vine.set_copula(1,1,FrankCopula(4))vine.set_copula(2,0,ClaytonCopula(5))# Calculate probability density function on latticebnds=np.empty((3),dtype=object)bnds[0]=[-3,3]bnds[1]=[0,15]bnds[2]=[0.5,25](x0,x1,x2)=np.mgrid[bnds[0][0]:bnds[0][1]:0.05,bnds[1][0]:bnds[1][1],bnds[2][0]:bnds[2][1]:0.1]points=np.array([x0.ravel(),x1.ravel(),x2.ravel()]).Tpdf=vine.pdf(points)pdf=np.reshape(pdf,x1.shape)# Generate random variatessize=100samples=vine.rvs(size)# Visualize 2d marginals and samplescomb=list(itertools.combinations(range(dim),2))fori,cmbinenumerate(comb):# Sum over all axes not in cmbcmb_inv=tuple(set(range(dim))-set(cmb))margin=np.sum(pdf,axis=cmb_inv).Tplt.subplot(2,len(comb),i+1)plt.imshow(margin,aspect='auto',interpolation='none',cmap='hot',origin='lower',extent=[bnds[cmb[0]][0],bnds[cmb[0]][1],bnds[cmb[1]][0],bnds[cmb[1]][1]])plt.ylabel('$x_'+str(cmb[1])+'$')plt.subplot(2,len(comb),len(comb)+i+1)plt.scatter(samples[:,cmb[0]],samples[:,cmb[1]],s=1)plt.xlim(bnds[cmb[0]][0],bnds[cmb[0]][1])plt.ylim(bnds[cmb[1]][0],bnds[cmb[1]][1])plt.xlabel('$x_'+str(cmb[0])+'$')plt.ylabel('$x_'+str(cmb[1])+'$')plt.tight_layout()plt.show()

此代码显示二维边缘和100个三维混合藤蔓样本。

源代码

mixedvines包的源代码托管在 GitHub

参考文献

[ONKEN2016](1, 2) A. Onken and S. Panzeri (2016). Mixed vine copulas as joint models of spike counts and local field potentials. In D. D. Lee, M. Sugiyama, U. V. Luxburg, I. Guyon and R. Garnett, editors, Advances in Neural Information Processing Systems 29 (NIPS 2016), pages 1325-1333.

许可证

版权所有(c)2017、2018 Arno Onken

此文件是mixedvines包的一部分。

mixedvines包是免费软件;您可以重新分发和/或修改它 它根据GNU通用公共许可证的条款 软件基础;许可证的第3版,或(由您选择)任何 更高版本。

mixedvines包的发布是希望它会有用,但是 没有任何保证;甚至没有对适销性或 适合某一特定目的。更多信息请参见GNU通用公共许可证 细节。

你应该收到一份GNU通用公共许可证的副本 此程序;如果没有,请参阅<;http://www.gnu.org/licenses/>;。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
如何使用Java中的扫描仪读取文本文件中的特定字符?   java如果我们在hibernate中开始事务但不提交它,会发生什么?   Azure CosmosDB Java Springboot中的无服务器帐户不支持spring boot设置提供吞吐量或容器自动导航   附加到新对象的Java注释?   java如何将自定义文本视图添加到。在Kotlin中添加通知操作   java Shibboleth添加_OpenSAMLcookies,导致HTTP头大小>8k   分布式传感器数据(~40Hz)的高效Java观测器设计   java如何在while循环外声明数组,但在while循环中初始化它?   用@XmlElementRef注释的java元素没有显示在JAXB编组字符串中?   java替换二维数组的值   java如何在任务栏上创建Windows7加载栏   java如何在组件注释bean中使用会话或RequestScope bean?   java netbeans freermarker插件错误:在实现版本中请求netbeans桥的插件Lexer   java谷歌地图方向。加载失败,返回服务器错误   java当我试图递归地计算两个值之间的整数之和时,为什么结果返回一个奇怪的值?   java如何通过html文件的用户获取运行时输入,以使用Jsoup进行解析?