pymc

pymc with observations on multiple variables

左心房为你撑大大i 提交于 2021-01-28 08:25:50
问题 I'm using an example of linear regression from bayesian methods for hackers but having trouble expanding it to my usage. I have observations on a random variable, an assumed distribution on that random variable, and finally another assumed distribution on that random variable for which I have observations. How I have tried to model it is with intermediate distributions on a and b , but it complains Wrong number of dimensions: expected 0, got 1 with shape (788,). To describe the actual model,

Coding and Paper Letter(五)

守給你的承諾、 提交于 2021-01-11 05:42:29
资源整理<!-- more --> 1 Coding: 1.Python模块libpysal,pysal的核心组件。与pysal的区别目前没有明确。有空研究一下。功能都是Python空间分析的模块。 libpysal 2.R语言包mongrel,多项逻辑斯蒂-正态线性回归模型。 mongrel 3.R语言工程SLATRRA——Satellite Latency Assessment Tools for Real-time River Applications,用于实时河流应用的卫星延迟评估工具。包含Allen等人的数据分析和数字和表格的制作,“河流波浪传播时间的全球估计和低延迟卫星数据的影响”。代码的最基本部分包括: 计算河流坡度; 将兴趣点(POI:城市,水坝和仪表)连接到河网; 模拟流量波动和计算行程时间; 使用基于仪表的快速估算来验证模型; 生成图表,并计算论文中提供的各种统计数据。 SLATRRA 4.R语言工程RSSA——统计分析用于估算GRWL数据库中的全球河流和河流表面积。 RSSA 5.R语言包nassR。通过R下快速统计载各种USDA数据的方法。 nassR 6.书籍《社会空间数据科学书》。 SSDSBook 7.R语言包getSpatialData。通过R可以轻松查询,预览,下载和预处理多种空间数据(包括MODIS, Landsat等卫星)。

推荐算法之Thompson(汤普森)采样

孤者浪人 提交于 2020-12-29 05:24:16
如果想理解汤普森采样算法,就必须先熟悉了解贝塔分布。 一、Beta(贝塔)分布 Beta分布是一个定义在[0,1]区间上的连续概率分布族,它有两个正值参数,称为形状参数,一般用 α 和 β 表示,Beta分布的概率密度函数形式如下: 这里的 Γ表示gamma函数。 Beta分布的均值是: 方差: Beta分布的图形(概率密度函数): 从Beta分布的概率密度函数的图形我们可以看出,Beta分布有很多种形状,但都是在0-1区间内,因此Beta分布可以描述各种0-1区间内的形状(事件)。因此,它特别适合为某件事发生或者成功的概率建模。同时,当 α = 1, β = 1的时候,它就是一个均匀分布。 贝塔分布主要有 α和 β两个参数,这两个参数决定了分布的形状,从上图及其均值和方差的公式可以看出: 1) α/(α+β)也就是均值,其越大,概率密度分布的中心位置越靠近1,依据此概率分布产生的随机数也多说都靠近1,反之则都靠近0。 2) α+β越大,则分布越窄,也就是集中度越高,这样产生的随机数更接近中心位置,从方差公式上也能看出来。 二、举例理解Beta分布 贝塔分布可以看作是一个概率的分布,当我们不知道一个东西的具体概率是多少时,它给出了所有概率出现的可能性大小,可以理解为概率的概率分布。 以棒球为例子:   棒球运动的一个指标就是棒球击球率,就是用一个运动员击中的球数除以总的击球数

独家 | 为什么要尝试A/B测试的贝叶斯方法(附链接)

不问归期 提交于 2020-09-25 10:55:29
作者:Michael Armanious 翻译:欧阳锦 校对:阿笛 本文 约3400字 ,建议阅读 8 分钟 本文通过一个A/B测试的实例,介绍了贝叶斯方法的各种优点和具体的实现方法,同时也将贝叶斯推断方法与传统的频率推断估计进行了对比。 标签:数据科学,A/B测试,贝叶斯统计,机器学习 本文以一种直观的方式介绍了A/B测试、贝叶斯方法的优点以及它的具体实现方法。 “批判性思维是一个活跃而持续不断的过程。它要求我们所有人都像贝叶斯主义者那样思考,随着新信息的到来更新我们的知识。” —— Daniel J. Levitin,说谎的实地指南:信息时代的批判性思维 绪论 在深入研究使用贝叶斯估计方法之前,我们需要了解一些概念。这些概念包括: 推论统计 贝叶斯主义者与频率主义者 A / B测试 概率分布 推论统计是什么? 推论统计是指根据人口总体样本推断某个总体人口的某些信息,而不是描述整个人口总体的描述性统计信息。 当涉及推理统计时,主要有两种哲学:频率推断和贝叶斯推断。众所周知,频率推断方法是更传统的统计推断方法,因此在大多数统计课程(尤其是入门课程)中都进行了更多的研究。然而,许多人认为贝叶斯方法更接近于人类自然地认识概率的方式。 贝叶斯方法包含了根据新证据去改变一个人的想法。例如,你去看医生是因为你感觉不适,并且认为自己患有某种疾病。几个医生对你进行检查

How do I get parameters from a posterior distribution in PyMC?

丶灬走出姿态 提交于 2020-02-23 04:51:21
问题 I have the following program written in PyMC: import pymc from pymc.Matplot import plot as mcplot def testit( passed, test_p = 0.8, alpha = 5, beta = 2): Pi = pymc.Beta( 'Pi', alpha=alpha, beta=beta) Tj = pymc.Bernoulli( 'Tj', p=test_p) @pymc.deterministic def flipper( Pi=Pi, Tj=Tj): return Pi if Tj else (1-Pi) # Pij = Pi if Tj else (1-Pi) # return pymc.Bernoulli( 'Rij', Pij) Rij = pymc.Bernoulli( 'Rij', p=flipper, value=passed, observed=True) model = pymc.MCMC( [ Pi, Tj, flipper, Rij]) model

Problems with a hidden Markov model in PyMC3

吃可爱长大的小学妹 提交于 2020-02-01 19:59:30
问题 To learn PyMC, I'm trying to do a simple Hidden Markov Model as shown below: with pymc3.Model() as hmm: # Transition "matrix" a_t = np.ones(num_states) T = [pymc3.Dirichlet('T{0}'.format(i), a = a_t, shape = num_states) for i in xrange(num_states)] # Emission "matrix" a_e = np.ones(num_emissions) E = [pymc3.Dirichlet('E{0}'.format(i), a = a_e, shape = num_emissions) for i in xrange(num_states)] # State models p0 = np.ones(num_states) / num_states # No shape, so each state is a scalar tensor

pymc3 Multi-category Bayesian network - how to sample?

醉酒当歌 提交于 2020-01-25 22:04:14
问题 I have set up a Bayes net with 3 states per node as below, and can read logp's for particular states from it (as in the code). Next I would like to sample from it. In the code below, sampling runs but I don't see distributions over the three states in the outputs; rather, I see a mean and variance as if they were continuous nodes. How do I get the posterior over the three states? import numpy as np import pymc3 as mc import pylab, math model = mc.Model() with model: rain = mc.Categorical(

Simple Dynamical Model in PyMC3

試著忘記壹切 提交于 2020-01-12 10:20:13
问题 I'm trying to put together a model of a dynamical system in PyMC3, to infer two parameters. The model is the basic SIR, commonly used in epidemiology : dS/dt = - r0 * g * S * I dI/dt = g * I ( r * S - 1 ) where r0 and g are parameters to be inferred. So far, I'm unable to get very far at all. The only examples I've seen of putting together a Markov chain like this yields errors about recursion being too deep. Here's my example code. # Time t = np.linspace(0, 8, 200) # Simulated observation

How to implement a function of a random variable in PyMC which could be sampled by MCMC Metropolis?

徘徊边缘 提交于 2020-01-06 15:05:54
问题 If you have a random variable $X$ and a function $f$, you can define $y=f(X)$ as a new random variable with a probability density function as follows: $p(y)=(f^{-1})'(y)p(x)$. For details see here. Now I have defined a random variable alpha, with an exponential distribution in the following code. I want to add to my model, log(alpha) as a new random variable. How should I implement it in my model? I already made an effort but it seems that it is wrong, and the reason as been pointed out in

How to implement a function of a random variable in PyMC which could be sampled by MCMC Metropolis?

早过忘川 提交于 2020-01-06 15:04:50
问题 If you have a random variable $X$ and a function $f$, you can define $y=f(X)$ as a new random variable with a probability density function as follows: $p(y)=(f^{-1})'(y)p(x)$. For details see here. Now I have defined a random variable alpha, with an exponential distribution in the following code. I want to add to my model, log(alpha) as a new random variable. How should I implement it in my model? I already made an effort but it seems that it is wrong, and the reason as been pointed out in