##twalktutorial.py软件# #Python中的twalk实现示例,#作者:J Andres Christen,jac at cimat.mx。##检查文件version中的当前版本。##请参见http://www.cimat.mx网站/~jac/twalk/了解更多细节。#进口pytwalk从numpy导入1、0、日志、数组从numpy.随机导入统一##您可以获得内联帮助:#pytwalk.pytwalk?#pytwalk.pytwalk。跑步?"""#####################################################################这将为n=1独立法线设置MCMC(默认)正常=pytwalk.pytwalk(n=10)##这会引起骚动正常。运行(T=10000,x0=ones(1),xp0=zeros(1))###这将以10000次迭代完成Metriopolis Hastings的随机漫步###正常跳跃的初始点x0和标准偏差=σ正常。运行RWMH(T=10000,x0=10*个1(10),sigma=个1(0))###这将进行基本输出分析正常。安娜()"""#############################################################################指数乘积λ=[1.,2.,3.,4.,5.]定义ExpU(x):“”“-指数乘积的对数”“”返回和(x*lambdas)定义支出支持(x):返回所有(0<x)###我们用U函数定义目标函数###这是密度函数的对数。###支持在单独的函数中定义。###参数空间的维数为n#Exp=pytwalk.pytwalk(n=5,U=ExpU,Supp=ExpSupp)####这会引起骚动#支出。运行(T=50000,x0=30*ones(5),xp0=40*ones#支出。安娜()#支出。保存(“Exptwalk.dat”)##############################################################################一个更复杂的示例:#####相关伯努利试验##########假设x_{i,j}~Be(theta_j),i=0,1,2,。。。,nj-1,指数j=0,1,2#####但已知0<theta_0<theta_3<theta_2<1θ=数组([0.4,0.5,0.7])###真θn=数组([20,15,40])###样本大小####模拟数据,但我们只需要1的总和r=零(3)对于范围(3)中的j:r[j]=总和(均匀(大小=n[j])<θ[j]###定义支持。这基本上是这种支持的优先、统一定义ReBeSupp(θ):rt=真rt&=(0<θ[0])rt&=(θ[0]<θ[1])rt&=(θ[1]<θ[2])rt&=(θ[2]<1)返回rt####最好有一个产生随机初始点的函数,####确实总是有人支持####在这种情况下,我们从与之前类似的东西进行模拟定义ReBeInit():θ=零(3)θ[0]=均匀(低=0,高=1)θ[1]=均匀(低=θ[0],高=1)θ[2]=均匀(低=θ[1],高=1)返回θ#######函数U(能量):-后部的对数定义ReBeU(θ):返回-1*sum(r*log(θ)+(n-r)*log######定义twalk实例#ReBe=pytwalk.pytwalk(n=3,U=ReBeU,Supp=ReBeSupp)####这是我的梦想#ReBe公司。运行(T=100000,x0=ReBeInit(),xp0=ReBeInit(()))###这将进行基本输出分析#ReBe公司。安娜()##马尔可夫链(时间序列)的演化#ReBe公司。TS()###还有一些直方图#ReBe公司。历史(par=0)#ReBe公司。历史(par=1)#ReBe公司。历史(par=2)###然后将其保存到一个文本文件中,每个参数对应一列###加上最后一列中的U,即T+1行和n+1列。###这可能反过来被其他程序加载###用于更复杂的输出分析(例如BOA)。#ReBe公司。保存(“RelatedBer.txt”)###您可以使用直接访问(T+1)X(n+1)输出矩阵#ReBe公司。输出######有关更多详细信息,请查看twalk.py。######所有方法都应该有帮助行。