R中的贝叶斯模型

5月1日,二千零一十九
通过

(本文首次发表于 毒蛇鱼,并对 188bet appR博主

克罗托帕加少校(大阿尼)
大阿尼族 克罗托帕加少校)杜鹃是一种杜鹃,其雌鸟偶尔会在同种的巢中产卵,最近发现的一种寄生现象[ 来源]

如果有什么事情总是让我感到沮丧,那就是我没有完全理解贝叶斯推理。去年某个时候,我看到一篇关于TensorFlow支持的贝叶斯分析金宝搏网址R包的文章,打电话葛丽泰.那时,我寻找葛丽泰教程和偶然发现的这个博客帖子它赞扬了一本叫做统计反思:一个以r和stan为例的贝叶斯过程理查德·麦克莱思。我找到了解决我挥之不去的沮丧的方法,所以我马上买了一本。

在过去的几个月里,我阅读了它的封面,以涵盖和解决拟议中的练习,这在很大程度上是基于反思包裹。我不能把它高度推荐给任何想牢牢掌握贝叶斯统计的人,在理论和应用上。这篇文章应该是我迄今为止最令人满意的博客体验,在这一点上,我基本上是在报告自己最近的学习情况。我相信这将使讲故事更加有效。

作为示范,最近分析的雌性杜鹃繁殖输出数据里尔.,二千零一十九[1]将使用

  • 泊松和零膨胀泊松回归,基于反思包裹;
  • 逻辑回归,基于葛丽泰包裹。

在这个过程中,我们将进行MCMC取样,可视化后验分布,预测并最终评估社会寄生对女性生殖产出的影响。您应该对标准统计模型有一些了解。如果您需要使用r刷新一些概率的基础知识,请查看我的第一篇文章.所有材料可在https://github.com/monogenea/布谷鸟寄生.我希望你和我一样快乐!

请注意,大多数包含管道的代码块都已损坏。请参阅回购材料.

介绍

频率主义观点

尝试降低学习的复杂性是人类的天性,为了离散数量,这在现代统计学中尤其如此。当我们需要估计任何给定的未知参数时θ 我们通常会创造出最合理的价值。想想把一枚硬币翻一千次,不知道它是否有偏见,有多大。让f(h) 在一千次试验中,要按人头比例。如果我让你估计一下P(H) ,在任何特定的审判中有头的可能性,你的答案是什么?

你可能会说\ Hat P(H)=F(H) ,这是一个明智的选择(这意味着“估计”)。获得的磁头频率f(h) 是的最大似然估计(MLE)P(H) 在我们的实验中。这是大多数人认可的直观、频繁的观点。

贝叶斯透视

贝叶斯观点更为全面。它不会产生单一价值,而是未知参数的整体概率分布θ 以你的数据为条件。这个概率分布,P(\theta数据) ,称为后部。后部来自最著名的作品之一牧师。托马斯贝叶斯你可能以前见过,

p(\theta data)=\frac p(data \theta)乘以p(\theta)\int p(data \theta)乘以p(\theta)d\theta

或者,简而言之,

后验=\frac lik\times prior average lik

后验可以由三个关键因素计算得出:

  • 似然分布,P(数据\theta)
  • 先前的分配,P(θ)
  • “平均可能性”,\ int p(data \theta)乘以p(\theta)d \theta=p(data) .

所有的贝叶斯定理都是通过计算观测数据来更新一些先验信念,并且确保得到的概率分布的密度恰好为一。

通过以下三个简单步骤对定理进行重构,将封闭频率主义和贝叶斯观点之间的鸿沟。

步骤1。所有可能的方法(概率分布)

大约五年前,我哥哥和我在玩轮盘赌在波提姆赌场,葡萄牙。除此之外,你可以赌打任何一个黑球(或红色R)假设概率相等。为了简化,我们假设p(b)=p(r)=0.5 我还记得我们下注前的十次抽签:

BBrBBBrBB乙

F(b)=\frac 8 10 基于这十次抽签,我哥哥认为我们应该选择黑人。他的理由是,打黑球的几率比打红球的几率大,我有点同意。我们最终把赌注押在了黑牌上并赢了。在这个例子中,我们不知道打两种颜色的机会,f(b)=0.8 是最大似然估计吗?P(B) .这是经常使用的方法。但你不认为p(b)=p(r)=0.5

另一种思维方式是考虑使用不同的P(B) .如果我们估计可能性P(数据p(b)) 从100个估计P(B) 从0到1,我们可以自信地估计它的分布。在这里,二项分布的概率质量函数\数学b \左(10,P(B)}右 八次成功,即p(x\sim\mathcal b \左(10,p(b)\右)=8) ,提供所有不同估计的可能性P(B) .我们可以用几行r代码来演示它。

范围P<-序列(0,1,length.out=100)图(rangep,dBiNm(x=8,PROB=RangEP,size=10),type=“l”,xlab=“P(黑色)”,ylab=“密度”)

一

顾名思义,轮盘问题中的MLE是似然分布的峰值。然而,在这里,我们发现了一个完整的光谱,包括所有可能的方法f(b)=0.8 可能是生产出来的。

步骤2。更新您的信仰(以前的分发)

在我们的贝叶斯旅行中,我们甚至都不是中途。先前的遗漏,这和以前穿制服一样,危险地给了可能性自由的推论。这些修道院也被称为“平房”。另一方面,信息先验约束参数估计,越窄越好。这应该会引起那些熟悉套索和山脊规则化的人的共鸣。也,注意,将一个似然分布乘以一个常数并不会改变它的形状,即使它改变了密度。

回到轮盘赌的例子,假设我介入并向我弟弟表达了我的信念P(B) 必须为0.5或接近,例如p(b)\sim正常(0.5,0.1) .为了比较,用上一步的可能性覆盖这个先前的分布。

线条(RangEP)dnorm(x=范围p,平均值=5,sd=0.1)/15,col=“红色”)

二

前面的显示为红色。在上面的代码中,我用一个常量除以前面的值,只是为了缩放。请记住,分布密度只对后部重要。

计算似然与先验之间的乘积很简单,给出了这个定理的分子。下一位将计算并叠加P(B) p(data \theta)乘以p(\theta) .估计序列的使用P(B) 重建概率分布称为网格近似。

lik<-dbinom(x=8,PROB=RangEP,尺寸=10)之前<-dnorm(x=rangep,平均值=5,sd=0.1)行(rangep,LK*先验,COL =“绿色”

三

简而言之,我们已经成功地使用了十个轮盘抽签(黑色)来更新我的前(红色)到无心形后(绿色)。我为什么称之为“非标准”?答案来自于定理的分母。

步骤3。总结为最多一个(标准化后部)

任何概率密度或质量函数的一个重要性质是它与一个函数相结合。这就是那个丑陋的分母的角色\ int p(data \theta)乘以p(\theta)d\theta 我们简单地称之为“平均可能性”。IT标准化p(data \theta)乘以p(\theta) 到真正的后方P(\theta数据) 密度为1。知道密度是唯一的区别,然后,后部始终与非标准后部成比例:

p(\theta data)\propto p(data \theta)乘以p(\theta)

那个有趣的符号普罗托 表示“成比例”。现在,我们将通过标准化上面计算的后验值并比较所有定理的片段来最终确定轮盘赌示例。

unstPost<-lik*prioristPost<-unstPost/sum(unstPost)行(rangeP,STDPOST,col=“blue”)图例(“左上角”,图例=C(“lik”,“优先”“UNSTD邮政”“post”),text.col=1:4,BTY=“n”)

四

注意形状是如何在非标准分布和实际后验分布之间保持的。在这个例子中,我们可以对各种事物使用非标准形式,例如模拟绘图。然而,当其他参数和竞争模型发挥作用时,你应该坚持实际的后方。

我们终于得出了贝叶斯定理的最终形式,p(\theta data)=\frac p(data \theta)乘以p(\theta)\int p(data \theta)乘以p(\theta)d\theta .后面P(B) 现在可以用来绘制概率区间或模拟新的轮盘赌绘制。在那里,我们从一个经常光顾的角度转向了一个全面的弗莱奇贝叶斯观点。

注意在这个例子中有一个单一的数据,总共十次试验的成功次数。我们将看到,有了多个数据,单一的数据,如概率和先验概率,都是相乘在一起的。此外,当多个参数进入模型时,不同的先验也都是相乘的。这可能有助于消化以下示例。无论如何,记住这一切p(data \theta)乘以p(\theta) .

现在是时候进行一个更复杂的分析了,而不是一个,但有两个参数。

模拟

我们将在一个简单的模拟中快速涵盖这三个步骤。这将演示对两个参数的推断亩 西格玛 从正态分布。本例的目的是双重的:)为了明确增加越来越多的参数会使后验估计变得越来越低效,使用网格近似法,和)展示贝叶斯模型捕捉真实底层参数的能力。

从分布中抽取100个观测值的样本。正常值(5)2) 只有你和我知道真正的参数,μ=5 σ=2 .然后,可以使用此示例使用以下贝叶斯伪模型恢复原始参数,

x \sim正常(\mu,西格玛)

\ Mu\Sim正常(0,5)

\ sigma \sim exp(1)

最后两个术语对应于亩 西格玛 ,分别。你所需要的只是

    1. 使200个值的所有可能组合帽子{MU} 跨越0和10,200个值帽子{西格玛} 跨越1和3。这些是两种方法的候选估计值亩 西格玛 解释如何生成上述样本。
    2. 计算每个200乘以200 组合(网格近似)。这相当于lik_i=\prod^ n j=1 p(\mu_i,SigaMiI xxJ) 具有J索引参数组合和数据点,分别或在日志中lik j=1 log(p(\mu i,“SigaMii xxJJ) ,结果证明,在R中更容易操作;
    3. 计算两者之间的乘积(或对数尺度的和)利克塞 以及相应的优先级亩 p(\mu)\sim正常(0,5) 以及西格玛 P(\sigma)\sim exp(1)
    4. 如果使用对数刻度,则将生成的产品标准化并恢复原始单位。这一标准化,你会注意到,将先验分布和似然分布的乘积除以其最大值,与前面提到的总密度不同。这是一种更实用的方法,可以在后验抽样中获得概率值。

我们现在有一个关节后分布亩 西格玛 可以从中取样。尺寸为1000的样品与真实参数的匹配程度如何,μ=5 σ=2

#定义真正的pars mu和sigma,样本100xtruemu<-5truesig<-2set.seed(100)randomsample<-rnorm(100,特鲁姆,truesig)网格近似,%%中的MU%〔0〕;10]和Sigma%,[1,3]网格<-展开。网格(mu=seq(0,10,length.out=200),sigma=seq(1,三,length.out=200)计算likelihoodlik<-sapply(1:nrow(网格),函数(x)和(dnorm(x=随机样本,平均值=网格$mu[x],sd=网格$sigma[x],对数=t)))乘(和对数)似然和先验概率<-lik+dnorm(网格$mu,平均值=0,SD=5,对数=t)+dexp(网格$sigma,1,Log=t)将lik x之前的产品标准化,总计为1,从mu和sigma的后部距离恢复unitprob<-exp(prod-max(prod))样本,plotPostsample<-sample(1:nrow(grid)),尺寸=1E3,prob=prob)图(网格$mu[后采样],网格$sigma[postsample],xlab=“mu”,YLAB =“西格玛”,PCH=16,col=rgb(0,0,0,.2))abline(v=truemu,H = TruteSigg,COL=“红色”,LTY=2)

五

上图显示了关节后部分布的1000号样本。P(μ)σ)数据 .真实参数值在相应轴上以红色虚线突出显示。考虑使用零中心先验亩 ,观察真实值是令人满意的μ=5 正好落在它后面边缘的中心。可以对西格玛 .这本质上是推断中数据的影响。Try again with smaller sample sizes or more conservative,狭窄的先验。你能预测结果吗?

贝叶斯模型和MCMC

贝叶斯模型与我们上面看到的不同,在解释变量中插入。与传统的基于MLE的模型一样,每个解释变量都与一个系数相关,为了一致性,我们将调用参数。因为目标结果也以先验和可能性为特征,然后,该模型通过在所有先验集和相应的相似性之间找到折衷点来近似后验,这与代数技术形成了明显的对比。例如来自OLS的QR分解。最后,链接函数的引入扩大了可建模的问题范围,例如二进制或多标签分类,序贯分类回归泊松回归和二项式回归,举几个例子。这种模型通常被称为广义线性模型(GLMS)。

贝叶斯模型最吸引人的特征之一是,模型参数的不确定性一直向下渗透到目标结果水平。没有残留物。甚至与结果测量误差相关的不确定性也可以解释,如果你怀疑有。

所以,为什么当前围绕贝叶斯模型的炒作?在很大程度上,贝叶斯推理的主要局限性一直以来都是后验抽样。后验分布的解析解是不可解的,如果不是不可能的话。使用数值方法,比如上面介绍的网格近似法,可能给出粗略的近似值。包含更多的参数和不同的分布族,虽然,使替代马尔可夫链蒙特卡罗(MCMC)抽样方法成为优秀的选择。

然而,这带来了沉重的计算负担。在高维环境中,启发式MCMC方法通过逐点跳跃绘制多变量后验图。这些跳跃是随机的,但是——这里是捕捉点——它们使较小的跳跃,在当前坐标系中密度越大。因此,他们关注关节后部分布的最大值,增加足够的分辨率来充分重建它。问题是每个跳转都需要更新所有内容,一切都与一切互动。因此,后验近似一直是将贝叶斯方法推广到更大尺度的主要障碍。近年来,MCMC方法的复兴主要是由于我们即将探索的更强大的机器和高效的框架的出现。

大都会黑斯廷斯,吉布斯和哈密顿蒙特卡罗(HMC)是一些最流行的MCMC方法。我们将与HMC合作,被广泛认为是最健壮和最有效的。

葛丽泰VS反思

两个葛丽泰反思是流行的r包,用于进行相互补充的贝叶斯推理。我觉得把两个对立起来是不公平的,希望将来的版本能进一步增强它们的兼容性。无论如何,这是我对利弊的印象,写作时:

归责

缺失值插补仅在反思.这是一个重要而简单的功能,和贝叶斯模型一样,它的工作原理和参数采样一样。不言而喻,它有助于挽救其他无法获得的信息。正如我们将看到的,杜鹃繁殖输出数据包含大量的NAS。

句法

两者的语法反思葛丽泰是非常不同的。因为葛丽泰依赖于张量流,它必须完全由张量支持。这意味着自定义张量操作需要一些带有张量流操作的硬编码函数。此外,葛丽泰模型是自下而上建立的,反之反思模型是自上而下构建的。我发现自上而下的流程稍微更加直观和紧凑。

可用型号

当涉及到模型类型时,这两个软件包提供不同的选项。我注意到一些模特来自反思在中当前不可用葛丽泰反之亦然。Nick Golding的维护人员之一葛丽泰,很好地实现了顺序分类回归我的论坛调查.也,和我们接下来要做的相关,零膨胀泊松回归在葛丽泰.总的来说,这并不意味着葛丽泰有更少的选择。如果你对阅读感兴趣,参考相应的起重机文件。

HMC采样

这两个包部署了由两个最强大的库支持的HMC采样。Stan(也在Richard的书中讨论)是一种以其MCMC框架闻名的统计编程语言。它已经存在了一段时间,并最终通过rstan适应了r。这是用C++实现的。另一方面,是最近的。它的表弟,张量流概率是贝叶斯分析的丰富资源。两个TensorFlow库都有效地在CPU和GPU中分配计算,导致大幅加速。

作图法

这两个包附带了不同的可视化工具。对于后向分布,我更喜欢贝叶斯图支持葛丽泰,而对于模拟和反事实情节,我采取了更灵活的方式反思绘图功能。

我们从R开始吧

是时候使用反思葛丽泰R包。我们将从里尔.二千零一十九[1]女性生殖输出克罗托帕加少校,也被称为大阿尼布谷鸟。

这种布谷鸟的雌性表现出合作和寄生的筑巢行为。在赛季开始的时候,females are more likely to engage in cooperative nesting than either solitary nesting or parasitism.当合作筑巢涉及两个或两个以上的雌性共享巢穴时,寄生包括在其他同种巢中产卵,由主人照顾。然而,寄生行为在某些条件下是有利的,比如巢穴捕食。这使我们得出了三个主要假设,即为什么较大的ANI雌性动物会经历寄生:

  • “超级母亲”假设,这样,雌性就有太多的卵供自己筑巢,因此寄生于其他巢;
  • “专门寄生虫”假说,雌虫一生寄生的行为;
  • “最后手段”假设,其中寄生行为是在自己的巢或蛋丢失后引起的,比如通过巢穴捕食。

这项研究发现对第三个假设有更好的支持。作者拟合了寄生行为的混合效应逻辑回归。使用女性和群体身份作为嵌套的随机效果。在主要发现中,他们发现:

  • 寄生的雌性比单独合作的雌性产下更多的卵;
  • 寄生卵明显小于非寄生卵;
  • 寄生卵的损失率高于非寄生卵。可能是由于主机拒绝;
  • 独家合作行为和合作和寄生行为之间的混合策略在羽化后代中产生了相似的数量。

如果你发现这篇文章过于技术化或字面上无法理解,您可以在相应的金宝搏网址新闻与观点,一篇来自Nature的开放访问合成文章。

首先加载相关的包并下载布谷鸟繁殖输出数据集。它是Excel电子表格中三个选项卡之一,共包含607条记录和12个变量。

library(rethinking)library(tidyverse)library(magrittr)library(readxl)从riehl等人下载数据集。2019dataurl<-“https://datadryad.org/bitstream/handle/10255/dryad.204922/riehl%20and%20strong_social%20parosism%20data_2007-2017_dryad.xlsx”下载.file(dataurl,destfile=“data.xlsx”)。

变量如下:

  • ,记录的年份(2007-2017)
  • 女性编码,女性唯一标识符(n= 209)
  • 群编码,组唯一标识符(n= 92)
  • 寄生虫,寄生的二进制编码(1/0)
  • 最小年龄,最低年龄(3-13岁)
  • 成功的,繁殖成功/幼稚的二进制编码(1/0)
  • 群大小,每组人数(2-8)
  • 平均尺寸,平均鸡蛋大小(24-37g)
  • 蛋黄,产卵数(1-12)
  • 埃格斯因因科,孵化卵数(0-9)
  • 蛋鸡翅,孵化卵数(0-5)
  • 茄子,羽化蛋数(0-5)

出于建模目的,其中一些变量将以平均值为中心,并按单位方差进行缩放。随后将使用Z后缀。

从整个数据集,只有57%的记录是完整的。缺少的值存在于平均尺寸(40.6%)蛋黄(14.8%)埃格斯因因科(10.7%)蛋鸡翅(9.2%)茄子(5.2%)群大小(4.1%)和成功的(1.8%)。不用说,铺设的,孵育,孵化和羽化的蛋按这个顺序计数,覆盖不同的生殖阶段,都是相互依赖的。自然地,鸡蛋损失的结转在连续的阶段影响计数。

以下模型将包含主要拦截,不同的截获(也称为随机效应)多重效果,相互作用项和缺失值的插补。希望定义足够清楚。

羽化卵计数的零膨胀泊松回归

我发现建立鸡蛋数量模型是一个有趣的问题。作为一个可假设的计数变量,茄子可以认为是泊松分布。然而,如果对计数进行总结,您会注意到泊松变量有过多的零。这不足为奇,因为很多鸡蛋都吃不透,如上所述。幸运的是,零膨胀泊松回归(zipoison)可从反思从二项式分布中容纳额外的概率参数$latex p$它将零计数的一部分从泊松分量中重新定位。

从电子表格(“女性生殖输出”)中加载相关选项卡,并丢弃缺少计数的记录茄子.你应该有575条记录。其余缺失值将由模型输入。然后,重编码女性编码群编码.这是因为必须对分组因子进行编号,以便将不同的截获与反思.这将有助于我们排除女性之间的系统差异,从群体和年代的主要影响。最后,添加的标准化版本最小年龄群大小平均尺寸到数据集。

(alltabs<-excel_sheets(“data.xlsx”))列出选项卡将雌性生殖输出pro%读取为.data.frame()for%%mutate(雌性_id=as.integer(female_id_coded)),year_id=as.integer(factor(year)),group_id=as.integer(factor(group_id_coded)),min_age_z=scale(min_age),group_size_z=scale(group_size),mean_eggsize_z=scale(mean_eggsize))。

日志链接是限制模型的一种方便方法拉姆达 ,即泊松回归的速率,非负值。逻辑链接,另一方面,可用于将模型概率限制为介于0和1之间的值。logit链接由logistic函数恢复。这里是我提出的羽化蛋数模型:

Eggsfledged_i \sim Zipoison(P,兰贝达依)

logit(p)=\alpha_p

对数(\lambda_i)=\alpha+\alpha_123;母_I+\alpha_123;年_I+\alpha组_I_+

寄生虫+

MeanEggSizeZ_i \beta_{ES} + Parasite_i MinAgeZ_i \beta_{PA}

GrpsisiZZIⅠ,meaneggsizez_i \sim正常(0,3)

\alpha_{female_i} \sim Normal(0,西格玛1)

\α年\ sim正常(0,西格玛2)

\α组sim正常(0,西格玛3)

SigaMy1西格玛2,\ sigma_3 \sim半柯西(0,1)

AlpHaP p\ alpha\sim正常(0,3)

β-肽β-β\BETA{{GSM},\BETAA{{ES},\βpa \ sim正常(0,2)

在代码方面,这就是它的样子。HMC将使用5000次迭代运行,其中1000个用于热身,有四条独立的链条,每个都有自己的CPU核心。最后,这个普里斯调用显示所有边缘后验分布的95%最高密度概率区间(hpdi)。你可以用绘图(precis(…)).

eggsfmod<-map2stan(alist(鸡蛋成熟~dzipois(P,lambda),logit(p)<-a p,log(lambda)<-a+a eu fem[雌eu id]+a_year[年_id]+a_group[组_id]+寄生虫*bp+min_age_z*ba+组_size_z*bgs+平均_eggsize_z*bes+寄生虫*min_age_z*bp a,组_size_z~dnorm(0,3),平均鸡蛋大小z~dnorm(0,3),一个FEM[女性ID]~D表格(0,sigma1),一年[年ID]~dnorm(0,sigma2),a_group[group_id]~dnorm(0,sigma3),c(sigma1,SigMA2,sigma3)~d声学(0,1)C(AP)a)~d范数(0)3)C(BP)文学士,BGS贝斯BPA)~DNORM(0)2)),数据=fro,iter=5e3,热身= 1E3,链=4,核心=4)检查后发畸形(eggsfmod,prob=0.95)对于不同的截获,使用深度=2

对羽化卵的数量没有明显的影响,由于在所有报告的95%hpdi间隔内均为零。寄生的影响(血压)在这个对数尺度上有点负,这表明泊松率总体上略有下降。

下面的代码将从我们刚刚创建的模型后面的关节中提取16000大小的样本。样品磷 特别地,将传递给逻辑函数以恢复各自的概率。

然后,该代码根据泊松率预测生成一个反事实图。我们将用反事实的预测来比较不同年龄的寄生和非寄生雌性以及其他所有固定的物种。它会告诉我们,在你的模特眼里,一些假设中的雌性平均产多少羽化卵。为了方便,我们现在考虑的是“普通”女性,平均鸡蛋大小和平均群体大小,是否寄生,以及不同的标准化年龄。边际参数后验器的计算很简单。最后,简单的求幂返回预测的泊松率。

综上所述,从16000大小的关节后部样本中我们拿了磷 返回相应概率的后边缘,和预测拉姆达 通过插入手工选择的值,从其组成参数的边缘后继。

我们现在可以检查抽样概率和预测泊松率的分布。如果是后者,需要计算标准化年龄范围内的平均和95%hpdi。

#样本后柱<-提取。样本(eggsfmod)P的PI(完全没有离合器)密度(logistic(post$ap)HPDI=T,xlab=“zip-bernoulli(p)”)运行模拟,包括所有预测因子的平均值,除了寄生虫0/1lambdanop<-exp(发布$A+0*发布$BP+0*发布$BA+0*发布$BGS+0*发布$BES+0*0*发布$BPA)simfledgenopar<-rpois(n=长度(lambdanop)),lambda=lambdanop)lambdap<-exp(发布$A+1*发布$BP+0*发布$BA+0*发布$BGS+0*发布$BES+1*0*发布$BPA)simfledgepar<-rpois(n=长度(lambdap),lambda=lambdap)table(simfledgenopar)table(simfledgepar)使用不同的agerange a<-seq(-3,三,length.out=100)无寄生虫预测<-sapply(rangea,函数(x)exp(post$a+0*post$bp+x*post$ba+0*post$bgs+0*post$bes+0*x*post$bpa))hdpois<-apply(预测,2,HPDIprob=.95)meanpoi<-colmeans(预测)图(rangea,吝啬鬼,类型=“L”,yLIM=C(0),3)YAXP= C(0),三,3),xlab=“最小年龄(标准化)”,ylab=表达式(lambda))阴影(hdpipois,rangea)寄生虫预测sp<-sapply(rangea,函数(x)exp(post$a+1*post$bp+x*post$ba+0*post$bgs+0*post$bes+x*post$bpa))hdpipoisp<-apply(predictionsp,2,HPDIprob=0.95)meanpoip<-colmeans(predictionsp)行(rangea,平均泊松LTY=2,col=“red”)阴影(hdpipoisp,兰吉col=rgb(1,0,0、.25)

一

左面板显示了磷 ,进入模型二项式分量的参数。它的跨度介于0.20和0.50之间。在任何一个伯努利试验中,把它作为产生零的可能性,而不是遵循泊松分布。

现在我们来看看右图中的反事实情节。如果我们暂时将假设寄生或非寄生行为的预测区分为拉姆达普 LAMBDA{{NP} ,分别然后它显示LAMBDA{{NP} 作为一条完整的黑线,深灰色阴影代表95%的hpdiLAMBDA{{NP} ,平均值拉姆达普 作为一条红色虚线,浅红色阴影代表95%的hpdi拉姆达普 .

看来,非寄生“普通”雌性的年龄与羽化卵数量的重大变化无关,而寄生的“普通”雌性似乎随着年龄的增长而略有增加。注意不确定性是如何随着年龄的增长而增加的,面板两侧。在我看来,寄生与非寄生C.专业雌性在其生殖生活的大部分时间里,对于羽化的卵数是无法区分的。

产卵数的泊松回归

以下型号:还基于反思,旨在预测产卵数量。茄子蛋黄最小值为1,相对频率比我们以前遇到的零膨胀情况要小。问题,然而,我们需要进一步筛选记录以清除蛋黄.你应该留下514条记录。为了一致性,重新标准化前面练习中标准化的变量。

#尝试下蛋~dpoisforReduced%as.data.frame()重新进行变量缩放,否则,采样会抛出一个ErrorFroReduced%%突变(female_id=as.integer(factor(female_id_coded))、year_id=as.integer(factor(year))、group_id=as.integer(factor(group_id_coded))、min_age_z=scale(min_age)、group_size_z=scale(group_size)、mean_eggsize_z=scale(mean_eggsize))。

除了目标结果外,该模型与上一次Zipoison回归中的泊松分量相同:

茄子酱

对数(\lambda_i)=\alpha+\alpha_123;母_I+\alpha_123;年_I+\alpha组_I_+

寄生虫+

MeanEggSizeZ_i \beta_{ES} + Parasite_i MinAgeZ_i \beta_{PA}

GrpsisiZZIⅠ,meaneggsizez_i \sim正常(0,3)

\alpha_{female_i} \sim Normal(0,西格玛1)

\α年\ sim正常(0,西格玛2)

\α组sim正常(0,西格玛3)

SigaMy1西格玛2,\ sigma_3 \sim半柯西(0,1)

\ alpha\sim正常(0,3)

β-肽β-β\BETA{{GSM},\BETAA{{ES},\βpa \ sim正常(0,2)

以及相应的实施,与之前的HMC采样设置相同。

eggslmod<-map2stan(alist(eggs_layed~dpois(lambda),log(lambda)<-a+a_fem[雌性_id]+a_year[年份]+a_group[组_id]+寄生虫*bp+min_age_z*ba+组_size_z*bgs+平均_eggsize_z*bes+寄生虫*min_age_z*bpa,组_size_z~dnorm(0,3),平均鸡蛋大小z~dnorm(0,3),一个FEM[女性ID]~D表格(0,sigma1),一年[年ID]~dnorm(0,sigma2),a_group[group_id]~dnorm(0,sigma3),c(sigma1,SigMA2,sigma3)~d声学(0,1),a~dMnad(0);3)C(BP)文学士,BGS贝斯BPA)~DNORM(0)2)),数据=frorreduced,iter=5e3,热身= 1E3,链=4,核心=4)检查后发畸形(eggsfmod,prob=0.95)对于不同的截获,使用深度=2

在这里,你会注意到血压后面是零的左边,表明寄生对产卵量的总体负面影响。相互作用项双酚A同样,表现出强烈的负面影响。

现在用上面同样的方法:从关节后部制作一个16000大小的样本;预测“平均”女性的泊松率,是否寄生,不同的标准化年龄;指数化计算以检索预测的拉姆达 ;计算标准化年龄范围内预测率的平均值和95%hpdi。

#样本后验或后验<-extract.samples(eggslmod)运行模拟,包括所有预测因子的平均值,除了寄生虫0/1lambdanop<-exp(发布$A+0*发布$BP+0*发布$BA+0*发布$BGS+0*发布$BES+0*0*发布$BPA)simfledgenopar<-rpois(n=长度(lambdanop)),lambda=lambdanop)lambdap<-exp(发布$A+1*发布$BP+0*发布$BA+0*发布$BGS+0*发布$BES+1*0*发布$BPA)simfledgepar<-rpois(n=长度(lambdap),lambda=lambdap)表(simfledgenopar)表(simfledgepar)不同年龄的sim无寄生虫预测<-sapply(rangea,函数(x)exp(post$a+0*post$bp+x*post$ba+0*post$bgs+0*post$bes+0*x*post$bpa))hdpois<-apply(预测,2,HPDIprob=.95)meanpoi<-colmeans(预测)图(rangea,吝啬鬼,类型=“L”,yLIM=C(0),7)YAXP= C(0),7,7),xlab=“最小年龄(标准化)”,ylab=表达式(lambda))阴影(hdpipois,rangea)寄生虫预测sp<-sapply(rangea,函数(x)exp(post$a+1*post$bp+x*post$ba+0*post$bgs+0*post$bes+x*post$bpa))hdpipoisp<-apply(predictionsp,2,HPDIprob=0.95)meanpoip<-colmeans(predictionsp)行(rangea,平均泊松LTY=2,col=“red”)阴影(hdpipoisp,兰吉col=rgb(1,0,0、.25)

二

颜色搭配是一样的。平均值LAMBDA{{NP} 显示为一条完整的黑线,深灰色阴影代表95%的hpdiLAMBDA{{NP} ,平均值拉姆达普 显示为红色虚线,浅红色阴影代表95%的hpdi拉姆达普 .与前一个相比,这个反事实的情节显示了寄生和非寄生女性之间的鲜明对比。年轻的“普通”寄生雌性比年轻的“普通”非寄生雌性产下更多的卵,这种差异似乎随着年龄的增长而恢复,即老的“平均”寄生雌性比老的“平均”非寄生雌性产卵少。基本上,虽然严格合作的雌性在其生殖生活中有一个恒定的离合器大小,寄生行为反过来导致一只雌鸟的年龄稳步下降。

这次,您将进一步模拟LAMBDA{{NP} ,年龄不一。简而言之,你的预测高于平均值拉姆达 以及相应的95%hpdi,现在这些速率预测将用于从相应的泊松分布中抽样计数。为了便于解释,绘制平均值拉姆达 和95%的hpdi在上述相同范围内。然后,只需覆盖95%的hpdi区域,就可以得到样本产卵数。

奖金!来自PredictionSP的样本计数,取95%的hdpihdpipoisp<-apply(预测sp,2,HPDIprob=0.95)meanposip<-colmeans(predictionsp)plot(rangea,平均泊松类型=“L”,yLIM=C(0),15),YAXP= C(0),15,5)xlab=“最小年龄(标准化)”,ylab=表达(Paste(lambda,“没有。下蛋”))阴影(hdpipoisp,范围a)泊松<-sapply(1:100,函数(k)rpois(nrow(predictionsp)、predictionsp[,k]))hdpisample<-apply(泊松,2,HPDIprob=.95)阴影(hdpisample,兰吉亚)

四

平均值LAMBDA{{NP} 显示为整行,深灰色阴影表示95%的hpdiLAMBDA{{NP} ,浅灰色阴影表示所得计数样本的95%hpdi。

女性生殖成功率的逻辑回归

我们现在将转向女性生殖成功的逻辑回归,使用葛丽泰.自从葛丽泰将输入限制为以完成案例,我们需要选择完整的记录。总共有346条记录。也,这是一个不同的模式,我使用了一组不同的解释变量。你会注意到,与以前的车型非常一致。

库(TensorFlow)使用_Condaenv(“greta”)库(greta)库(tidyverse)库(bayesplot)库(readxl)读取女性生殖输出并丢弃记录w/nasfro<-read_xlsx(“data.xlsx”,sheet=alltabs[2])fro<-fro[完成.案例(fro),]35;使用交叉分类的不同截获,用于年份,女性ID和组ID女性ID<-as.integer(factor(fr$female_id_coded))年份<-as.integer(factor(fr$year))组ID<-as.integer(factor(fr$group_id_coded))定义和标准化模型varsage<-as_data(scale(fr$min_age))下蛋<-as_data(scale(fr$eggs_layed))平均_eggsize<-as_data(scale(fr$mean_eggsize))组<-as_data(scale(fro$group_size))寄生虫<-as_数据(对于$ismost)

为了保持一致,我又重新编码了女性编码群编码和以前一样反思上面的模型。逻辑回归的定义如下:

成功的贝努利

logit(p_i)=\alpha+\alpha123;女性_i_+\alpha年_i_+\alpha组_i_160;+

寄生虫+

MeanEggSizeZ_i \beta_{ES} + Parasite_i MinAgeZ_i \beta_{PA}

\alpha_{female_i} \sim Normal(0,西格玛1)

\α年\ sim正常(0,西格玛2)

\α组sim正常(0,西格玛3)

SigaMy1西格玛2,\ sigma_3 \sim半柯西(0,1)

\ alpha\sim正常(0,5)

β-肽β-β\BETA{{GSM},\BETA{{EL },\βpa \ sim正常(0,3)

最后是模型的实现。我们将再次生产16000尺寸的后验样品,分为四个链和多达十个CPU核心,1000用于预热。注意合并中的差异女性编码群编码作为不同的拦截。

#定义模型效果Ssigmaml<-Cauchy(0,1,截断=c(0,)dim=3)a_fem<-正态(0,SigMAML〔1〕,dim=max(雌性)a_年<-正常(0,SigMAML〔2〕,dim=max(year))a_组<-正常(0,SigMAML〔3〕,dim=max(group_id))a<-正常(0,5)Ba<-正常(0,3)bel<-正常(0,3)BES<-正常(0,3)bgs<-正常(0,3)血压<-正常(0,3)BPA<-正常(0,3)模型设置mu<-a+a u fem[雌性u id]+a u年[年]+a u组[组u id]+年龄*ba+产卵*bel+平均u eggsize*bes+寄生虫*bp+组u大小*bgs+寄生虫*年龄*bp a p<-ilogit(mu)分布(从$成功)<-伯努利(p)布谷鸟模型<-模型(a,文学士,贝尔贝斯英国石油公司BGSbpa)plotplot(布谷鸟模型)hmc samplingdraws<-mcmc(布谷鸟模型,n_samples=4000,warmup=1000,链=4,n_cores=10)trace plotsMcmc_trace(draws)参数posteriomcmcm_interval(draws,PROB=95)

r绘图

我们可以通过Bayesplot::mcmc_间隔或者Bayesplot::MCMC_区.上图反映了一个类似于Zipoisson模型的情况。虽然寄生对生殖成功有明显的负面影响,注意它与年龄有多强的相互作用,以提高生殖成功率。

继续进行通常的反事实情节,请再次注意,上述估计值是在logit尺度中的,所以我们再次需要逻辑函数来恢复概率值。

#模拟平均产卵量,鸡蛋大小和组大小,w/和w/o寄生三,length.out=100)探针不符合标准(seqx,函数(x)方案<-ilogit(a+x*ba)probs<-calculate(方案,draws)返回(unlist(probs)))probspar<-sapply(seqx,函数(x)方案<-ilogit(a+x*ba+bp+x*bp a)probs<-calculate(方案,draws)返回(unlist(probs)))绘图(seqx,应用(probsnopar,2,平均值)类型=“L”,ylim=0:1,xlab=“最小年龄(标准化)”,ylab=“p(成功)”,yaxp=c(0,1,2)重新思考:阴影(应用(probsnopar,2,重新思考:hpdi,prob=0.95),seqx)线(seqx,应用(PrSPSPAR)2,平均值)LTY=2,col=“red”)重新思考::阴影(应用(probspar,2,重新思考:hpdi,prob=0.95),seqx,col=rgb(1,0,0、.25)

一

和之前预测的泊松率一样,这里的意思是P{{NP} 显示为一条完整的黑线,深灰色阴影代表95%的hpdiP{{NP} ,平均值PYP 显示为红色虚线,浅红色阴影代表95%的hpdiPYP 这一新的反事实情节向我们展示了寄生雌性越老越成功,与非寄生雌性相比。尽管如此,有人可能会说,不确定性的增加使情况变得脆弱。

包扎

就是这样。你现在应该对贝叶斯模型和固有的概率推断有一个基本的概念,可以防止误用假设检验。通常称为-在许多科学领域进行黑客攻击。总而言之,上面的模型表明

  • 老年人的寄生C.专业女性有一个谦虚的,对羽化卵数量的积极贡献。寄生的微小负面影响被它与年龄的相互作用抵消了,这对羽化卵的数量显示出较小的积极影响。非寄生雌性,另一方面,在不同年龄的羽化卵计数上没有明显的变化。这些观察得到了相应的反事实情节的支持;
  • 如果是下蛋,寄生及其与年龄的相互作用似乎都会产生强烈的负面影响。反事实情节表明,尽管年轻的寄生雌性比年轻的非寄生雌性产下更多的卵,在寄生导致相对较少的卵的年龄上有一个转折点。对产卵数量的额外模拟进一步支持了最后的观察结果;
  • 尤其是,生殖成功似乎也受到年龄和寄生状态之间的相互作用的影响。结果与Zipoisson模型相似。显示随着年龄的增长,成功率增加,超过了非寄生雌性。

因此,相对于非寄生雌性,寄生雌性越老,产卵越少,反之亦然;然而,寄生的雌性越老,成熟的鸡蛋越多。在老年女性中,寄生现象似乎也促进了生殖的成功。对这组观察结果有许多合理的解释,因果关系并不是隐含的。它很可能掩盖了未知因素的影响。尽管如此,我发现有趣的是,年长的寄生雌性能够从较小的抓握中繁殖出尽可能多的幼鸟,与不寄生的雌性相比。年龄较大的寄生雌性会不会更有经验?它们会不会因为巢穴的破坏而少下蛋?如何解释类似的生殖成功率?

还有很多事要做,为了进行更严格的分析,我列出了一些额外的考虑因素:

  • 我们还没有正式讨论模型比较。在大多数情况下,可以根据信息标准轻松地比较模型,如偏差(dic)和广泛适用(waic)信息标准,以评估模型拟合与自由度之间的折衷;
  • 我们还没有研究过MCMC链。在模型取样过程中,您可能阅读了一些关于“采样期间的发散交互”和未能收敛的警告。这个反思包通过报告gelman-rubin收敛统计数据帮助您驯服这些链拉特有效参数的个数诺埃夫,无论何时调用普里斯.如果拉特不是大约一个或诺埃夫对于任何特定参数都非常小,它可能需要谨慎的重新参数化。用户提供的初始值为HMC采样种子也有帮助;
  • 我们没有研究测量误差或过度分散的结果。当目标结果的方差非常大或与理论分布存在偏差时,这些方法就很有用了;
  • 我们没有考虑混合或排他性的合作或寄生行为,因此,任何与原始研究[1]的比较都是没有根据的。

最后,感谢克里斯蒂娜·里尔,为了澄清数据集和Nick Golding的某些方面,金宝搏网址为了他在葛丽泰论坛.

IMG26863

这是我在圣托里尼写的这篇文章的介绍,希腊。我的下一个项目是分析Twitter数据,金宝搏网址所以请注意。请留言,修正或建议!

工具书类

〔1〕Riehl,克里斯蒂娜和J.强的,Meghan(2019年)。社会寄生作为合作繁殖杜鹃的替代生殖策略。自然,567(7746),96-99。

留下评论作者,请关注他们博客上的链接和评论: 毒蛇鱼.

188bet appR博客提供 每日电子邮件更新金宝搏网址 R新闻与 教程关于以下主题: 数据科学大数据, r作业,可视化(可视化) GGPROTT2箱形图地图动画)程序设计(程序) 演播室斯威夫特乳胶SQL日食吉特哈多普刮网)统计 回归主成分分析时间序列交易还有更多…



如果你走这么远,为什么不 订阅更新 从站点?选择您的口味: 电子邮件推特1188bet app,或 脸谱网

注释已关闭。

搜索R-Blo188bet appggers


赞助商

千万不要错过更新!
订阅R-Bloggers188bet app接收
最新R帖子的电子邮件。
(您将不再看到此消息。)

单击此处关闭(此弹出窗口将不再出现)