具有混合连续和离散边缘的典型藤蔓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变量始终存储0值。为什么?   如何使用Java/REST将Azure blob从一个存储容器移动到另一个存储容器?   java将commons DBCP从1.2升级到1.4,我应该害怕吗?   java如何使用分隔符拆分字符串?   java使用数组读取json对象   java在groovy中切片字符串   交换数组java的两个邻域元素   java移动用于确定字符串是否为回文的逻辑   java Android应用程序在一个活动中崩溃   java Sparkjava将webapp文件夹设置为静态资源/模板的文件夹   java复杂条件表达式,用户易用。   java如何仅在表存在时从表中选择值   java I无法将数据从Recyclerview传递到其他活动   java数据结构最佳设计(大数据)   java Android从DatePickerDialogFragment中删除日历视图   java将数据从Firebase获取到片段   数组。sort()在java中运行不正常