这可能是个愚蠢的问题。我正在尝试使用PyMC中的MCMC评估将数据拟合到一个非常奇怪的PDF。对于这个例子,我只想弄清楚如何适应我手动输入正态PDF的正态分布。我的代码是:data=[];forcountinrange(1000):data.append(random.gauss(-200,15));mean=mc.Uniform('mean',lower=min(data),upper=max(data))std_dev=mc.Uniform('std_dev',lower=0,upper=50)#@mc.potential#defdensity(x=data,mu=mean,sig
一些简单的theano代码完美运行,当我导入pymc3时停止运行为了重现错误,这里有一些片段:#InitialTheanoCode(thisworks)importtheano.tensorastsrx=tsr.dscalar('x')y=tsr.dscalar('y')z=x+y#Snippet1importpymc3aspmimporttheano.tensorastsrx=tsr.dscalar('x')y=tsr.dscalar('y')z=x+y#Snippet2importtheano.tensorastsrimportpymc3aspmx=tsr.dscalar('x')
有没有办法加速这个简单的PyMC模型?在20-40个数据点上,拟合大约需要5-11秒。importpymcimporttimeimportnumpyasnpfromcollectionsimportOrderedDict#priorprobabilityofrainp_rain=0.5variables=OrderedDict()#rainobservationsdata=[True,True,True,True,True,False,False,False,False,False]*4num_steps=len(data)p_rain_given_rain=0.9p_rain_giv
我正在尝试拟合用CCD上的光谱仪检测到的线轮廓。为了便于考虑,我提供了一个演示,如果解决了,它与我实际上想要解决的问题非常相似。我看过这个:https://stats.stackexchange.com/questions/46626/fitting-model-for-two-normal-distributions-in-pymc以及其他各种问题和答案,但他们所做的事情与我想做的事情根本不同。importpymcasmcimportnumpyasnpimportpylabaspldefGaussFunc(x,amplitude,centroid,sigma):returnampli
我遇到了一个常见问题,我想知道是否有人可以提供帮助。我经常想在两种模式下使用pymc3:训练(即实际运行参数推断)和评估(即使用推断参数生成预测)。一般来说,我想要一个后验预测,而不仅仅是逐点估计(这是贝叶斯框架的一部分好处,不是吗?)。当您的训练数据固定时,这通常通过将类似形式的模拟变量添加到观察变量来完成。例如,frompymc3import*withbasic_model:#Priorsforunknownmodelparametersalpha=Normal('alpha',mu=0,sd=10)beta=Normal('beta',mu=0,sd=10,shape=2)sig
我一直在尝试使用带有REALDATA的PyMC3实现贝叶斯线性回归模型(即不是来自线性函数+高斯噪声)来自sklearn.datasets中的数据集。我选择了形状为(442,10)的属性数量最少的回归数据集(即load_diabetes());即442个样本和10个属性。我相信我的模型工作正常,后验看起来足够好,可以尝试和预测以弄清楚这些东西是如何工作的,但是......我意识到我不知道如何使用这些贝叶斯模型进行预测!我试图避免使用glm和patsy表示法,因为我很难理解使用它时实际发生了什么。我尝试了以下操作:Generatingpredictionsfrominferredpara
如果pymc实现Metropolis-Hastings算法以从感兴趣参数的后验密度中得出样本,那么为了决定是否移动到马尔可夫链中的下一个状态,它必须能够评估一些成比例的东西所有给定参数值的后验密度。后验密度与基于观察数据乘以先验密度的似然函数成比例。这些在pymc中是如何表示的?它如何从模型对象中计算出每一个数量?我想知道是否有人可以对这种方法进行高级描述或指出我在哪里可以找到它。 最佳答案 要表示先验,您需要一个Stochastic类的实例,它有两个主要属性:value:thevariable'scurrentvaluelogp:
我正在尝试用高斯(和更复杂的)函数拟合一些数据。我在下面创建了一个小例子。我的第一个问题是,我做得对吗?我的第二个问题是,如何在x方向(即观察/数据的x位置)添加错误?很难找到关于如何在pyMC中进行这种回归的好的指南。也许是因为使用一些最小二乘法或类似方法更容易,但我最终有很多参数,需要看看我们能如何约束它们并比较不同的模型,pyMC似乎是个不错的选择。importpymcimportnumpyasnpimportmatplotlib.pyplotasplt;plt.ion()x=np.arange(5,400,10)*1e3#Parametersforgaussianamp_tru
RegressionusingPYMC3我在这里发布了一个IPython笔记本http://nbviewer.ipython.org/gist/dartdog/9008026我通过标准StatsmodelsOLS工作,然后通过Pandas提供的数据与PYMC3类似,顺便说一句,这部分工作得很好。我看不到如何从PYMC3中获取更多标准参数?这些示例似乎只是使用OLS来绘制基本回归线。看来PYMC3模型数据应该可以给出回归线的参数了吧?除了可能的痕迹,即最高概率??线是什么?欢迎对Alpha、Beta和sigma的解释进行任何进一步的解释!另外如何使用PYMC3模型来估计y的未来值给定一个新的xi
RegressionusingPYMC3我在这里发布了一个IPython笔记本http://nbviewer.ipython.org/gist/dartdog/9008026我通过标准StatsmodelsOLS工作,然后通过Pandas提供的数据与PYMC3类似,顺便说一句,这部分工作得很好。我看不到如何从PYMC3中获取更多标准参数?这些示例似乎只是使用OLS来绘制基本回归线。看来PYMC3模型数据应该可以给出回归线的参数了吧?除了可能的痕迹,即最高概率??线是什么?欢迎对Alpha、Beta和sigma的解释进行任何进一步的解释!另外如何使用PYMC3模型来估计y的未来值给定一个新的xi