稳定同位素溯源混合模型-SIMMR

一个稳定同位素混合模型
版本 0.4.5
日期 2021-02-28
作者 Andrew Parnell
URL https://github.com/andrewcparnell/simmr,
https://andrewcparnell.github.io/simmr/

关于SIMMR

描述

适合稳定同位素混合模型(SIMMs),可以长期替代以前广泛使用的SIAR包,包含了不确定性、浓度依赖,及大量来源分析。SIMMs是通过观察从生物体组织样本中获取的稳定同位素值来推断生物体消费各种食物来源的膳食比例。然而,SIMMs也可用于其他情况,例如在沉积物混合或脂肪酸组成中。主要函数是simmr_load和simmr_mcmc。这两个小节包含了一个快速开始和所有功能的完整列表。

一种常见的应用是利用消费者及其食物的稳定同位素组成来推断动物的同化食物的组成。

依赖
R(版本>=3.5.0),R2jags,ggplot2

simmr包使用JAGS(另一种吉布斯采样器)程序来运行稳定同位素混合模型。在安装simmr之前,请访问JAGS网站并下载并安装适合您的操作系统的JAGS。

编码
UTF-8

内置数据
TRUE

R 主题列表

  • combine_sources
  • compare_groups
  • compare_sources
  • geese_data
  • geese_data_day1
  • plot.simmr_input
  • plot.simmr_output
  • posterior_predictive
  • print.simmr_input
  • print.simmr_output
  • prior_viz
  • simmr
  • simmr_data_1
  • simmr_data_2
  • simmr_elicit
  • simmr_load
  • simmr_mcmc
  • simmr_mcmc_tdf
  • square_data
  • summary.simmr_output
  • summary.simmr_output_tdf

1、combine_sources


函数说明
combine_sources运行simmr后,结合两种食物来源的膳食比例

描述

这个函数接受simmr_output类的对象,并组合两个食物源。它适用于单个和多个组数据。

用法

combine_sources(
	simmr_out,
	to_combine = simmr_out$input$source_names[1:2],
	new_source_name = "combined_source"
	)

输入参数

参数说明
simmr_outsimmr_mcmc创建的类对象
to_combine两个源的名字,该名称应与simmr_load中的名称精确匹配
new_source_name给新组合源的名称

详细

通常两个源要么 (1) 在同位素空间图上位于相似位置,要么 (2) 在系统发育方面非常相似。在 (1) 中,来源之间的后验相关性通常很高(负)。将它们结合起来可以减少这种相关性并提高估计的精度。在 (2) 中,我们可能希望确定这两种食物合并后的共同食用量。因此,该函数在运行simmr_mcmc(称为后验组合)之后组合了两个源。然后可以使用plot.simmr_inputplot.simmr_output调用此新对象,生成组合后输出的同位素空间图概要。

输出值

为一个新的simmr_output对象

示例

  • 运行前加载依赖包
library(rjags)
library(R2jags)
library(ggplot2)
library(simmr)
  • 查看simmr包内自带的数据集
print(data(package='simmr'))

Data sets in package simmr:

数据集描述
geese_dataGeese stable isotope mixing data set
geese_data_day1A smaller version of the Geese stable isotope mixing data set
simmr_data_1A simple fake stable isotope mixing data set
simmr_data_2A 3-isotope fake stable isotope mixing data set
square_dataAn artificial data set used to indicate effect of priors
  • 可在终端中输入help命令查看详细的数据集说明
help(geese_data_day1)

geese_data_day1是一个真实的布兰特鹅数据集,包括对2种同位素(d13Cd15N)、4种来源(ZosteraGrassU.lactucaEnteromorpha)、校正/营养富集因子(TEFs或TDFs)和浓度依赖均值的9次观测。

  • 使用with函数,通过simmr_load方法加载simmr包自带的geese_data_day1数据集中的数据到结构体simmr_1
data(geese_data)
# Load into simmr
simmr_1 <- with(
  geese_data_day1,
  simmr_load(
    mixtures = mixtures,
    source_names = source_names,
    source_means = source_means,
    source_sds = source_sds,
    correction_means = correction_means,
    correction_sds = correction_sds,
    concentration_means = concentration_means
  )
)
  • 绘图
# Plot
plot(simmr_1)

在这里插入图片描述

  • 打印simmr_1
#Print
simmr_1

This is a valid simmr input object with 9 observations, 2 tracers, and 4 sources.
The source names are: Zostera, Grass, U.lactuca, Enteromorpha.
The tracer names are: d13C_Pl, d15N_Pl.

  • 运行simmr_mcmc
# MCMC run
simmr_1_out <- simmr_mcmc(simmr_1)

module glm loaded
Compiling model graph
Resolving undeclared variables
Allocating nodes
Graph information:
Observed stochastic nodes: 18
Unobserved stochastic nodes: 6
Total graph size: 128
Initializing model
|++++++++++++++++++++++++++++++++++++++++++++++++++| 100%
|**************************************************| 100%

  • 打印输出结果simmr_1_out
# Print it
print(simmr_1_out)

This is a valid simmr input object with 9 observations, 2 tracers, and 4 sources.
The source names are: Zostera, Grass, U.lactuca, Enteromorpha.
The tracer names are: d13C_Pl, d15N_Pl.
The input data has been run via simmr_mcmc and has produced 3600 iterations over 4 MCMC chains.

  • 查看结果概要
# Summary
summary(simmr_1_out)
summary(simmr_1_out, type = "diagnostics")
summary(simmr_1_out, type = "correlations")
summary(simmr_1_out, type = "statistics")
ans <- summary(simmr_1_out, type = c("quantiles", "statistics"))
  • 绘图
#plot
plot(simmr_1_out)

在这里插入图片描述

plot(simmr_1_out, type = "boxplot")

在这里插入图片描述

plot(simmr_1_out, type = "histogram")

在这里插入图片描述

plot(simmr_1_out, type = "density")

在这里插入图片描述

plot(simmr_1_out, type = "matrix")

在这里插入图片描述

  • simmr_mcmc的输出带入combine_sources,将在同位素空间分布接近的源合并,生成新的组合源
simmr_out_combine <- combine_sources(simmr_1_out,
                                     to_combine = c("U.lactuca", "Enteromorpha"),
                                     new_source_name = "U.lac+Ent"
)
  • 重新绘制同位素空间
plot(simmr_out_combine$input)

在这里插入图片描述

plot(simmr_out_combine, type = "boxplot", title = "simmr output: combined sources")

在这里插入图片描述

2、compare_groups


函数说明
compare_groups单一源在不同组中膳食比例对比

描述

compare_groups函数接受simmr_output类的对象,并为给定的源和至少两个组的集合创建概率比较

用法

compare_groups(
  simmr_out,
  source_name = simmr_out$input$source_names[1],
  groups = 1:2,
  plot = TRUE
)

输入参数

参数说明
simmr_outsimmr_mcmc创建的类对象
source_name源的名称,应与simmr_load中给定的源名称精确匹配
groups要比较的组号的整数值。必须至少指定两个组。
plot一个逻辑值,指定是否应该生成图。

详细

当指定了两组时,函数会直接计算其中一组比另一组大的概率。当给出两个以上的组时,该函数为每个组的组合生成一组最有可能的概率排序。该函数在默认情况下生成箱线图,如果需要,还允许存储输出以供进一步分析。

输出值

如果有两组,输出值为一个包含该源在两组间膳食比例差异的向量。如果有多个组,输出值为一个包含以下字段的列表

参数说明
Ordering这个食物来源在组间的膳食比例的可能的不同排列
out_all这个食物来源在组间的膳食比例列在矩阵中

示例

  • 载入simmr数据集中的geese_datasimmr_in
## Not run:
data(geese_data)
simmr_in <- with(
  geese_data,
  simmr_load(
    mixtures = mixtures,
    source_names = source_names,
    source_means = source_means,
    source_sds = source_sds,
    correction_means = correction_means,
    correction_sds = correction_sds,
    concentration_means = concentration_means,
    group = groups
  )
)
  • 打印simmr_in
# Print
simmr_in

This is a valid simmr input object with 251 observations, 2 tracers, and 4 sources. There are 8 groups.
The source names are: Zostera, Grass, U.lactuca, Enteromorpha.
The tracer names are: d13C_Pl, d15N_Pl.

  • 对8组数据绘图
# Plot
plot(simmr_in,
     group = 1:8, xlab = expression(paste(delta^13, "C (\u2030)", sep = "")),
     ylab = expression(paste(delta^15, "N (\u2030)", sep = "")),
     title = "Isospace plot of Inger et al Geese data"
)

在这里插入图片描述

  • 运行simmr_mcmc,并打印模型运行概要
# Run MCMC for each group
simmr_out <- simmr_mcmc(simmr_in)
# Print output
simmr_out

This is a valid simmr input object with 251 observations, 2 tracers, and 4 sources. There are 8 groups.
The source names are: Zostera, Grass, U.lactuca, Enteromorpha.
The tracer names are: d13C_Pl, d15N_Pl.
The input data has been run via simmr_mcmc and has produced 3600 iterations over 4 MCMC chains.

  • 查看输出结果的概要
# Summarise output
summary(simmr_out, type = "quantiles", group = 1)
summary(simmr_out, type = "quantiles", group = c(1, 3))
summary(simmr_out, type = c("quantiles", "statistics"), group = c(1, 3))
  • 绘图展示模型输出结果
# Plot - only a single group allowed
plot(simmr_out, type = "boxplot", group = 2, title = "simmr output group 2")
  • 第二组消费者样本中食物源的膳食比例
    在这里插入图片描述
  • 第六组消费者样本中食物源的膳食比例
plot(simmr_out, type = c("density", "matrix"), grp = 6, title = "simmr output group 6")

在这里插入图片描述

  • 组间对比
    组1与组2消费者样本集中,食物源Zostera的膳食比例对比
# Compare groups
compare_groups(simmr_out, source = "Zostera", groups = 1:2)

在这里插入图片描述

Prob ( proportion of Zostera in group Period 1 > proportion of Zostera in group Period 2 ) = 1

  • 第1,2,3组消费者样本集中,食物源Zostera的膳食比例对比
compare_groups(simmr_out, source = "Zostera", groups = 1:3)

在这里插入图片描述

Most popular orderings are as follows:
Probability
Period 1 > Period 2 > Period 3 0.8019
Period 1 > Period 3 > Period 2 0.1981


  • 消费者组4,5,7,2样品集中,食物源U.lactuca的膳食比例对比
compare_groups(simmr_out, source = "U.lactuca", groups = c(4:5, 7, 2))

在这里插入图片描述

Most popular orderings are as follows:
Probability
Period 2 > Period 5 > Period 4 > Period 7 0.1825
Period 5 > Period 2 > Period 4 > Period 7 0.1394
Period 5 > Period 4 > Period 2 > Period 7 0.1072
Period 2 > Period 4 > Period 5 > Period 7 0.1003
Period 2 > Period 5 > Period 7 > Period 4 0.0928
Period 5 > Period 2 > Period 7 > Period 4 0.0792
Period 4 > Period 5 > Period 2 > Period 7 0.0642
Period 4 > Period 2 > Period 5 > Period 7 0.0481
Period 5 > Period 4 > Period 7 > Period 2 0.0442
Period 4 > Period 5 > Period 7 > Period 2 0.0231
Period 5 > Period 7 > Period 2 > Period 4 0.0228
Period 2 > Period 4 > Period 7 > Period 5 0.0219
Period 5 > Period 7 > Period 4 > Period 2 0.0169
Period 2 > Period 7 > Period 5 > Period 4 0.0153
Period 4 > Period 2 > Period 7 > Period 5 0.0097
Period 2 > Period 7 > Period 4 > Period 5 0.0072
Period 4 > Period 7 > Period 2 > Period 5 0.0061
Period 4 > Period 7 > Period 5 > Period 2 0.0053
Period 7 > Period 5 > Period 4 > Period 2 0.0042
Period 7 > Period 5 > Period 2 > Period 4 0.0033
Period 7 > Period 4 > Period 2 > Period 5 0.0019
Period 7 > Period 4 > Period 5 > Period 2 0.0019
Period 7 > Period 2 > Period 5 > Period 4 0.0014
Period 7 > Period 2 > Period 4 > Period 5 0.0011

3、compare_sources


函数说明
compare_sources多个源之间对比膳食比例

描述

这个函数接受simmr_output类的对象,并在提供的源之间创建概率比较。也可以指定组号。

用法

compare_sources(
	simmr_out,
	source_names = simmr_out$input$source_names,
	group = 1,
	plot = TRUE
)

输入参数

参数说明
simmr_outsimmr_mcmc创建的simmr_output类的对象。
source_names至少两个源的名称,应与simmr_load中给定的源名称精确匹配
group要比较的组号的整数值。如果未指定,则假定为第一或唯一的组

详细

当两个来源时,该函数直接计算出一个来源的膳食比例大于另一个来源的概率。当给出两个以上的源时,函数为每个源的组合产生一组最可能的概率排序。该函数在默认情况下生成箱线图,如果需要,还允许存储输出以供进一步分析。

输出值

如果有两个来源,输出值为一个向量,包含两种来源的膳食比例差异。如果有多个源,输出值为一个包含以下字段的列表:

参数说明
Ordering不同食物来源膳食比例的可能的不同排列
out_all这些食物来源的膳食比例列在矩阵中

示例

data(geese_data_day1)
simmr_1 <- with(
  geese_data_day1,
  simmr_load(
    mixtures = mixtures,
    source_names = source_names,
    source_means = source_means,
    source_sds = source_sds,
    correction_means = correction_means,
    correction_sds = correction_sds,
    concentration_means = concentration_means
  )
)
# Plot
plot(simmr_1)
# Print
simmr_1
# MCMC run
simmr_1_out <- simmr_mcmc(simmr_1)
# Print it
print(simmr_1_out)
# Summary
summary(simmr_1_out)
summary(simmr_1_out, type = "diagnostics")
summary(simmr_1_out, type = "correlations")
summary(simmr_1_out, type = "statistics")
ans <- summary(simmr_1_out, type = c("quantiles", "statistics"))
# Plot
plot(simmr_1_out, type = "boxplot")
plot(simmr_1_out, type = "histogram")
plot(simmr_1_out, type = "density")
plot(simmr_1_out, type = "matrix")

  • 对比2个食物来源的膳食比例
# Compare two sources
compare_sources(simmr_1_out, source_names = c("Zostera", "Grass"))

在这里插入图片描述

  • 对比多组食物来源的膳食比例
# Compare multiple sources
compare_sources(simmr_1_out)

在这里插入图片描述

4、plot.simmr_input


函数说明
plot.simmr_input绘制从simmr_load创建的simmr_input数据

描述

此函数创建同位素空间(又名示踪空间或delta空间)图。它们在确定数据是否适合在SIMMR中运行时至关重要。

用法

## S3 method for class 'simmr_input'
plot(
  x,
  tracers = c(1, 2),
  title = "Tracers plot",
  xlab = colnames(x$mixtures)[tracers[1]],
  ylab = colnames(x$mixtures)[tracers[2]],
  sigmas = 1,
  group = 1:x$n_groups,
  mix_name = "Mixtures",
  ggargs = NULL,
  colour = TRUE,
  ...
)

输入参数

参数说明
x通过simmr_load函数创建的对象
tracers要绘制的示踪剂。如果有两个以上的示踪剂,建议绘制每一对示踪剂,以确定混合物是否位于由源定义的混合多边形
title图形标题
xlabx轴标签,默认为delta-13C,但是可以更改为富文本,见下面示例
ylaby轴标签,默认为delta-15N,但是可以更改为富文本,见下面示例
sigmas在源值上绘制的标准偏差数。默认为1。
group要绘制的组,可以单组也可以多组
mix_name一个可选的字符串,包含混合对象的名称,例如Geese。
ggargs额外输入项,用于ggplot绘图(例如,坐标轴限)
color如果TRUE(默认)则绘图,否则,清空绘图板
...未使用

详细

理想的情况是将绝大多数的混合物观测值置于由食物源确定的凸壳内。当有两个以上的示踪剂时(如下面的一个例子),建议绘制出所有不同的食物来源对。有关更丰富的绘图细节,请通过vignette('simmr')参阅帮助文档。

示例

  • 简单绘图示例结果见上文
# A simple example with 10 observations, 4 food sources and 2 tracers
data(geese_data_day1)
simmr_1 <- with(
  geese_data_day1,
  simmr_load(
    mixtures = mixtures,
    source_names = source_names,
    source_means = source_means,
    source_sds = source_sds,
    correction_means = correction_means,
    correction_sds = correction_sds,
    concentration_means = concentration_means
  )
)
# Plot
plot(simmr_1)
  • 略微复杂的一个示例
### A more complicated example with 30 obs, 3 tracers and 4 sources
data(simmr_data_2)
simmr_3 <- with(
  simmr_data_2,
  simmr_load(
    mixtures = mixtures,
    source_names = source_names,
    source_means = source_means,
    source_sds = source_sds,
    correction_means = correction_means,
    correction_sds = correction_sds,
    concentration_means = concentration_means
  )
)
# Plot 3 times - first default d13C vs d15N
plot(simmr_3)
# Now plot d15N vs d34S
plot(simmr_3, tracers = c(2, 3))
# and finally d13C vs d34S
plot(simmr_3, tracers = c(1, 3))
# See vignette('simmr') for fancier x-axis labels

在这里插入图片描述在这里插入图片描述
在这里插入图片描述

  • 多组数据绘图,并采用富文本渲染标签
# An example with multiple groups - the Geese data from Inger et al 2006
data(geese_data)
simmr_4 <- with(
  geese_data,
  simmr_load(
    mixtures = mixtures,
    source_names = source_names,
    source_means = source_means,
    source_sds = source_sds,
    correction_means = correction_means,
    correction_sds = correction_sds,
    concentration_means = concentration_means,
    group = groups
  )
)
# Print
simmr_4
# Plot
plot(simmr_4,
     xlab = expression(paste(delta^13, "C (\u2030)", sep = "")),
     ylab = expression(paste(delta^15, "N (\u2030)", sep = "")),
     title = "Isospace plot of Inger et al Geese data"
) #'

在这里插入图片描述

5、plot.simmr_output


函数说明
plot.simmr_output绘制从simmr_mcmc创建的对象的不同特性。

描述

这个函数允许从simmr_mcmc创建4种不同类型的simmr输出图。类型有:直方图、核密度图、矩阵图(最有用)和箱线图。有一些较小的自定义选项。

用法

## S3 method for class 'simmr_output'
plot(
  x,
  type = c("isospace", "histogram", "density", "matrix", "boxplot"),
  group = 1,
  binwidth = 0.05,
  alpha = 0.5,
  title = if (length(group) == 1) {  "simmr output plot" } else {
  paste("simmr output plot: group", group) },
  ggargs = NULL,
  ...
)

输入参数

参数说明
x通过simmr_mcmc创建的simmr_output类的对象
type要绘制图的类型。类型有:直方图、核密度图、矩阵图和箱线图。
group要绘制的组
binwidth直方图默认的分区宽度,默认为0.05
alpha绘图透明度。矩阵图除外。
title图形标题
ggargs额外输入项,用于ggplot绘图(例如,坐标轴限)
...未使用

详细

矩阵图应该是任何SIMM分析的必要部分,因为它允许用户判断模型可以识别哪些源。有关更丰富的绘图细节,请通过vignette('simmr')参阅帮助文档。

示例

  • 绘制结果同combine_sources函数介绍中所示,不再赘述。
# A simple example with 10 observations, 2 tracers and 4 sources
# The data
data(geese_data)
# Load into simmr
simmr_1 <- with(
  geese_data_day1,
  simmr_load(
    mixtures = mixtures,
    source_names = source_names,
    source_means = source_means,
    source_sds = source_sds,
    correction_means = correction_means,
    correction_sds = correction_sds,
    concentration_means = concentration_means
  )
)
# Plot
plot(simmr_1)
# MCMC run
simmr_1_out <- simmr_mcmc(simmr_1)
# Plot
plot(simmr_1_out) # Creates all 4 plots
plot(simmr_1_out, type = "boxplot")
plot(simmr_1_out, type = "histogram")
plot(simmr_1_out, type = "density")
plot(simmr_1_out, type = "matrix")
## End(Not run)

6、posterior_predictive


函数说明
posterior_predictive绘制simmr运行的后验预测分布

描述

该函数获取simmr_mcmc的输出,并绘制后验预测分布,以实现模型拟合的可视化。模拟的后验预测值作为对象的一部分返回,并可以保存以供外部使用。

用法

posterior_predictive(simmr_out, group = 1, prob = 0.5, plot_ppc = TRUE)

输入参数

参数说明
simmr_outsimmr_mcmc运行输出结果对象
group为哪个组运行该函数(目前只支持组的数字编号带入,不支持组名带入)
prob后验预测的概率间隔。默认值是0.5(即50%的间隔)
plot_ppc否绘制后验预测的贝叶斯图。

示例

data(geese_data_day1)
simmr_1 <- with(
  geese_data_day1,
  simmr_load(
    mixtures = mixtures,
    source_names = source_names,
    source_means = source_means,
    source_sds = source_sds,
    correction_means = correction_means,
    correction_sds = correction_sds,
    concentration_means = concentration_means
  )
)
# Plot
plot(simmr_1)
# Print
simmr_1
# MCMC run
simmr_1_out <- simmr_mcmc(simmr_1)
# Prior predictive
post_pred <- posterior_predictive(simmr_1_out)
  • 绘制所有组的后验预测贝叶斯图

在这里插入图片描述

7 、print.simmr_input


函数说明
print.simmr_input打印simmr_input对象

描述

打印simmr_input对象

用法

## S3 method for class 'simmr_input'
print(x, ...)

输入参数

参数说明
x一个simmr_input类对象
...其它输入(暂不支持)

输出值

一个简洁的simmr对象概要

8、print.simmr_output


函数说明
print.simmr_output打印simmr_output对象

描述

打印simmr_output对象

用法

## S3 method for class 'simmr_output'
print(x, ...)

输入参数

参数说明
x一个simmr_output类对象
...其它输入(暂不支持)

输出值

一个简洁的simmr对象概要

9、prior_viz


函数说明
prior_viz绘制simmr运行的先验分布

描述

该函数获取simmr_mcmc的输出,并绘制先验分布,以支持目视检查。它可以单独使用,也可以作为posterior_predictive的一部分,直观地评估先验对后验分布的影响。

用法

	prior_viz(
	simmr_out,
	group = 1,
	plot = TRUE,
	include_posterior = TRUE,
	n_sims = 10000,
	ggargs = NULL
)

输入参数

参数说明
simmr_outsimmr_mcmc的运行输出对象
group为哪组数据运行该函数(当前仅支持组编号数字带入,不支持组名带入)
plot是否创建先验的密度图。模拟的先验值作为对象的一部分返回
include_posterior是否包括先验之上的后验分布。默认值为TRUE
n_sims从先验分布模拟的数量
ggargs额外输入项,用于ggplot绘图(例如,坐标轴限)

示例

## Not run:
data(geese_data_day1)
simmr_1 <- with(
	geese_data_day1,
	simmr_load(
		mixtures = mixtures,
		source_names = source_names,
		source_means = source_means,
		source_sds = source_sds,
		correction_means = correction_means,
		correction_sds = correction_sds,
		concentration_means = concentration_means
	)
)
# Plot
plot(simmr_1)
# Print
simmr_1
# MCMC run
simmr_1_out <- simmr_mcmc(simmr_1)
# Prior predictive
prior <- prior_viz(simmr_1_out)
head(prior)
summary(prior)
## End(Not run)
  • 绘制先验及后验分布,以支持目视检查
    在这里插入图片描述

  • 先验输出的头几行信息

> head(prior)
        Zostera      Grass  U.lactuca Enteromorpha
[1,] 0.10507054 0.64885067 0.15733823   0.08874057
[2,] 0.50650097 0.08686476 0.37186878   0.03476549
[3,] 0.01744883 0.01912078 0.87865924   0.08477114
[4,] 0.14082734 0.73700084 0.07352376   0.04864805
[5,] 0.45185621 0.13327463 0.19547573   0.21939342
[6,] 0.26745860 0.02423665 0.26462609   0.44367865
  • 查看先验输出概要
> summary(prior)
    Zostera             Grass            U.lactuca      
 Min.   :0.003194   Min.   :0.002479   Min.   :0.00195  
 1st Qu.:0.100435   1st Qu.:0.101082   1st Qu.:0.10143  
 Median :0.201689   Median :0.198843   Median :0.20160  
 Mean   :0.249495   Mean   :0.249668   Mean   :0.25038  
 3rd Qu.:0.355536   3rd Qu.:0.355249   3rd Qu.:0.35498  
 Max.   :0.977925   Max.   :0.956716   Max.   :0.96505  
  Enteromorpha     
 Min.   :0.002751  
 1st Qu.:0.100769  
 Median :0.201069  
 Mean   :0.250460  
 3rd Qu.:0.359518  
 Max.   :0.958228 

10、simmr


函数说明
simmr一个通过在R的JAGS拟合稳定同位素混合模型的包

描述

这个包运行一个简单的稳定同位素混合模型(SIMM),可以作为对SIAR模型的一个长期替代。通过观察从生物体组织样本中获取的稳定同位素值,可以推断生物体的饮食比例。然而,SIMMs也可用于其他情况,例如在沉积物混合或脂肪酸组成中。主要函数是simmr_loadsimmr_mcmc。帮助文件包含使用这个包的示例。更多信息请通过vignette()查询。

详细

正确运行SIMMs的一个更长期的替代是MixSIAR,它允许更详细的随机效应且包含协变量。

示例

# A first example with 2 tracers (isotopes), 10 observations, and 4 food sources
data(geese_data_day1)
simmr_in <- with(
  geese_data_day1,
  simmr_load(
    mixtures = mixtures,
    source_names = source_names,
    source_means = source_means,
    source_sds = source_sds,
    correction_means = correction_means,
    correction_sds = correction_sds,
    concentration_means = concentration_means
  )
)
# Plot
plot(simmr_in)
# MCMC run
simmr_out <- simmr_mcmc(simmr_in)
# Check convergence - values should all be close to 1
summary(simmr_out, type = "diagnostics")
# Look at output
summary(simmr_out, type = "statistics")
# Look at influence of priors
prior_viz(simmr_out)
# Plot output
plot(simmr_out, type = "histogram")
## End(Not run)

11、simmr_data_1


函数说明
simmr_data_1一个简单的假稳定同位素混合数据集

描述

一个简单的假数据集,包括对2种同位素、4个来源、校正/营养富集因子(TEFs或TDFs)和浓度依赖均值的10个观测结果

用法

simmr_data_1

格式

参数说明
mixtures消费者样品的一个两列矩阵,分别包含13C和15N值
source_names食物源名称的字符向量
tracer_names示踪剂名称(d13C和d15N)的字符向量
source_means示踪剂的源均值矩阵,其顺序与上述mixtures相同
source_sds示踪剂的源标准差值矩阵,其顺序与上述mixtures相同
correction_means示踪剂的TEFs平均值矩阵,与上述mixtures的顺序相同
correction_sds示踪剂的TEFs标准差矩阵,与上述mixtures的顺序相同
concentration_means示踪剂的浓度依赖性均值矩阵,其顺序与上述mixtures相同

12、simmr_data_2


函数说明
simmr_data_2一个三同位素假稳定同位素混合数据集

描述

假数据集包含对3种同位素、4种来源、校正/营养富集因子(TEFs或TDFs)和浓度依赖均值的30次观测

用法

simmr_data_2

格式

参数说明
mixtures消费者样品的一个三列矩阵,分别包含d13C、d15N和d34S值
source_names食物源名称的字符向量
tracer_names示踪剂名称(d13C,d15N,d34S)的字符向量
source_means示踪剂的源均值矩阵,其顺序与上述mixtures相同
source_sds示踪剂的源标准差值矩阵,其顺序与上述mixtures相同
correction_means示踪剂的TEFs平均值矩阵,与上述mixtures的顺序相同
correction_sds示踪剂的TEFs标准差矩阵,与上述mixtures的顺序相同
concentration_means示踪剂的浓度依赖性均值矩阵,其顺序与上述mixtures相同

13、simmr_elicit


函数说明
simmr_elicit函数允许将信息先验分布包含在simmr中

描述

simmr_mcmc主要功能允许预先为膳食比例设置分布。先验分布是通过使用集中化对数比(CLR)来改变膳食比例来确定的。simmr_elicitsimmr_elicit函数允许用户指定每种膳食比例的先验平均值和标准差,然后找到适合输入simmr_mcmc的经CLR-转换的值。

用法

simmr_elicit(
	n_sources,
	proportion_means = rep(1/n_sources, n_sources),
	proportion_sds = rep(0.1, n_sources),
	n_sims = 1000
)

输入参数

参数说明
n_sources所需的源的数量
proportion_means所需的先验比例均值。这些和应该是1。应该是一个长度为n_sources的向量
proportion_sds所需的先验比例标准偏差。这些偏差对和没有限制,但应该是合理的比例估计
n_sims要运行优化例程的模拟次数

详细

该函数获取所需的比例均值和标准偏差,并依次对均值和标准偏差拟合优化的最小二乘,从而生成用于simmr_mcmc的经CLR-转换的估计。考虑到推理的局限性,在SIMMs中使用先验信息是非常可取的。先验信息可能来自先前的研究、其他实验或其他对动物行为的观察。由于膳食比例所能跨越的空间有限,以及这个函数使用数值优化的事实,这个过程将不能完全匹配目标膳食比例的平均值和标准偏差。如果这个问题很严重,请尝试增加n_sims值。

输出值

两个列表对象

参数说明
mean均值的最优估计,用于simmr_mcmc参数prior_control的赋值
sd标准差的最优估计,用于simmr_mcmc参数prior_control的赋值

示例

# Data set: 10 observations, 2 tracers, 4 sources
data(geese_data_day1)
simmr_1 <- with(
  geese_data_day1,
  simmr_load(
    mixtures = mixtures,
    source_names = source_names,
    source_means = source_means,
    source_sds = source_sds,
    correction_means = correction_means,
    correction_sds = correction_sds,
    concentration_means = concentration_means
  )
)
# MCMC run
simmr_1_out <- simmr_mcmc(simmr_1)
# Look at the prior influence
prior_viz(simmr_1_out)
# Summary
summary(simmr_1_out, "quantiles")
  • geese_data_day1数据集分析的结果概要,以分位数(quantiles)形式展示
Summary for 1 
               2.5%    25%    50%    75%  97.5%
deviance     51.252 52.668 54.141 56.254 62.608
Zostera       0.421  0.549  0.617  0.687  0.817
Grass         0.035  0.060  0.073  0.088  0.116
U.lactuca     0.019  0.072  0.124  0.189  0.322
Enteromorpha  0.022  0.082  0.151  0.239  0.427
sd[d13C_Pl]   0.059  0.487  0.865  1.282  2.414
sd[d15N_Pl]   0.014  0.162  0.366  0.632  1.457
  • 将背调的先验信息,比如排泄物、反刍物、人工饲养物等的食物比例,包含在模型中
prior <- simmr_elicit(4, c(0.5, 0.2, 0.2, 0.1), c(0.08, 0.02, 0.01, 0.02))
simmr_1a_out <- simmr_mcmc(simmr_1, prior_control = list(means = prior$mean, sd = prior$sd))
#' # Look at the prior influence now
prior_viz(simmr_1a_out)
summary(simmr_1a_out, "quantiles")
  • 结合背调信息生成的更精确的结果
Summary for 1 
               2.5%    25%    50%    75%  97.5%
deviance     56.046 59.860 62.323 64.817 70.388
Zostera       0.541  0.599  0.628  0.657  0.705
Grass         0.119  0.139  0.152  0.165  0.191
U.lactuca     0.120  0.139  0.150  0.162  0.186
Enteromorpha  0.042  0.057  0.067  0.079  0.109
sd[d13C_Pl]   0.716  1.571  2.093  2.728  4.489
sd[d15N_Pl]   0.015  0.152  0.341  0.583  1.243

14、simmr_load


函数说明
simmr_load加载simmr的数据,并检查数据错误

描述

该函数接受混合物数据、食物源均值和标准偏差,(可选)校正因子均值和标准偏差,以及浓度比例。它对数据执行一些(非详尽的)检查,以确保它将通过simmr运行。它输出simmr_input类的对象。

用法

simmr_load(
  mixtures,
  source_names,
  source_means,
  source_sds,
  correction_means = NULL,
  correction_sds = NULL,
  concentration_means = NULL,
  group = NULL
)

输入参数

参数说明
mixtures混合物数据以矩阵的形式给出,其中行数是观测数据的数量,列数是示踪剂的数量(通常是同位素)
source_names以字符串形式给出的源的名称
source_means源值的平均值,以矩阵的形式给出,其中行数是源的数量,列数是跟踪剂的数量
source_sds源值的标准差,以矩阵形式给出,其中行数为源的数量,列数为示踪剂的数量
correction_means校正值的平均值,以矩阵的形式给出,其中行数是源的数目,列数是示踪剂的数目。如果没有提供,则将这些设置为0。
correction_sds校正值的标准差,以矩阵形式给出,其中行数为源的数目,列数为示踪剂的数目。如果没有提供,则将这些设置为0。
concentration_means浓度依赖的平均值,以矩阵的形式给出,其中行数是源的数量,列数是示踪剂的数量。这些应该在0和1之间。如果没有提供,这些都设置为1。
group一个分组变量。这些可以是一个字符或因子变量

详细

对于标准稳定同位素混合物模型,混合物矩阵将包含的每行代表一个样本,每列代表一个同位素值。simmr可对在计算范围内的任何数量的同位素和任何观测次数进行分析。每种食物源的每种同位素都应提供源平均值/标准差。如果需要,校正方法(通常是营养富集因子)可以设为零,并且应与源值具有相同的形状。浓度依赖均值应为所述食物源中每种元素所占比例的估计数,并以0到1之间的比例形式给出。目前还没有包括浓度依赖标准差的方法。

输出值

simmr_input类的对象,包含以下元素:

参数说明
mixtures混合数据
source_means源均值
source_sds源标准差
correction_means源校正后均值
correction_sds源校正后标准差
concentration_means浓度依赖均值
n_obs观测次数
n_tracers示踪剂/同位素数量
n_sources源数量
n_groups组数量

示例

# A simple example with 10 observations, 2 tracers and 4 sources
data(geese_data_day1)
simmr_1 <- with(
  geese_data_day1,
  simmr_load(
    mixtures = mixtures,
    source_names = source_names,
    source_means = source_means,
    source_sds = source_sds,
    correction_means = correction_means,
    correction_sds = correction_sds,
    concentration_means = concentration_means
  )
)
print(simmr_1)

15、simmr_mcmc


函数说明
simmr_mcmc通过simmr主函数Markov chain Monte Carlo(MCMC)函数运行simmr_input对象

描述

这是simmr包的主函数。它接受一个通过simmr_load创建的simmr_input对象,运行MCMC来确定饮食比例,然后输出一个simmr_output对象,以便通过summary.simmr_outputplot.simmr_output进行进一步分析和绘图。

用法

simmr_mcmc(
  simmr_in,
  prior_control = list(means = rep(0, simmr_in$n_sources), sd = rep(1,simmr_in$n_sources)),
  mcmc_control = list(iter = 10000, burn = 1000, thin = 10, n.chain = 4)
)

输入参数

参数说明
simmr_in通过simmr_load函数创建的对象
prior_control包括“平均值”和“标准差”的参数,指集中式对数比空间的膳食比例的先验平均值和标准差。这些通常可以保持默认值,除非您希望包含先验的信息,在这种情况下,您应该使用simmr_elicit函数。
mcmc_control一个值列表,包括名为iter(迭代次数)、burn(老化的大小)、thin(细化的数量)和n.chain (MCMC链的数量)的参数。

详细

如果,执行simmr_mcmc后,summary.simmr_output中的收敛诊断不能令人满意,mcmc_control中的iterburnthin的值应该增加10倍。

输出值

simmr_output类的一个对象,包含两个结构体命名的对象:

参数说明
inputsimmr_mcmc函数的simmr_input对象
output来自coda包的mcmc.list类的一组MCMC链。可以通过summary.simmr_outputplot.simmr_output函数来分析。

示例

  • 10个观测值,2个同位素类型的数据集分析
## See the package vignette for a detailed run through of these 4 examples
# Data set 1: 10 obs on 2 isos, 4 sources, with tefs and concdep
data(geese_data_day1)
simmr_1 <- with(
  geese_data_day1,
  simmr_load(
    mixtures = mixtures,
    source_names = source_names,
    source_means = source_means,
    source_sds = source_sds,
    correction_means = correction_means,
    correction_sds = correction_sds,
    concentration_means = concentration_means
  )
)
# Plot
plot(simmr_1)
# Print
simmr_1
# MCMC run
simmr_1_out <- simmr_mcmc(simmr_1)
# Print it
print(simmr_1_out)
# Summary
summary(simmr_1_out, type = "diagnostics")
summary(simmr_1_out, type = "correlations")
summary(simmr_1_out, type = "statistics")
ans <- summary(simmr_1_out, type = c("quantiles", "statistics"))
# Plot
plot(simmr_1_out, type = "boxplot")
plot(simmr_1_out, type = "histogram")
plot(simmr_1_out, type = "density")
plot(simmr_1_out, type = "matrix")
# Compare two sources
compare_sources(simmr_1_out, source_names = c("Zostera", "Enteromorpha"))
# Compare multiple sources
compare_sources(simmr_1_out)
  • 单一观测值分析
#####################################################################################
# A version with just one observation
data(geese_data_day1)
simmr_2 <- with(
  geese_data_day1,
  simmr_load(
    mixtures = mixtures[1, , drop = FALSE],
    source_names = source_names,
    source_means = source_means,
    source_sds = source_sds,
    correction_means = correction_means,
    correction_sds = correction_sds,
    concentration_means = concentration_means
  )
)
# Plot
plot(simmr_2)
# MCMC run - automatically detects the single observation
simmr_2_out <- simmr_mcmc(simmr_2)
# Print it
print(simmr_2_out)
# Summary
summary(simmr_2_out)
summary(simmr_2_out, type = "diagnostics")
ans <- summary(simmr_2_out, type = c("quantiles"))
# Plot
plot(simmr_2_out)
plot(simmr_2_out, type = "boxplot")
plot(simmr_2_out, type = "histogram")
plot(simmr_2_out, type = "density")
plot(simmr_2_out, type = "matrix")
  • 30个观测值,3种同位素类型的数据集分析
#####################################################################################
# Data set 2: 3 isotopes (d13C, d15N and d34S), 30 observations, 4 sources
data(simmr_data_2)
simmr_3 <- with(
  simmr_data_2,
  simmr_load(
    mixtures = mixtures,
    source_names = source_names,
    source_means = source_means,
    source_sds = source_sds,
    correction_means = correction_means,
    correction_sds = correction_sds,
    concentration_means = concentration_means
  )
)
# Get summary
print(simmr_3)
# Plot 3 times
plot(simmr_3)
plot(simmr_3, tracers = c(2, 3))
plot(simmr_3, tracers = c(1, 3))
# See vignette('simmr') for fancier axis labels
# MCMC run
simmr_3_out <- simmr_mcmc(simmr_3)
# Print it
print(simmr_3_out)
# Summary
summary(simmr_3_out)
summary(simmr_3_out, type = "diagnostics")
summary(simmr_3_out, type = "quantiles")
summary(simmr_3_out, type = "correlations")
# Plot
plot(simmr_3_out)
plot(simmr_3_out, type = "boxplot")
plot(simmr_3_out, type = "histogram")
plot(simmr_3_out, type = "density")
plot(simmr_3_out, type = "matrix")
  • 一个SIMMs的失败应用案例
#####################################################################################
# Data set 4 - identified by Fry (2014) as a failing of SIMMs
# See the vignette for more interpreation of these data and the output
# The data
data(square_data)
simmr_4 <- with(
  square_data,
  simmr_load(
    mixtures = mixtures,
    source_names = source_names,
    source_means = source_means,
    source_sds = source_sds
  )
)
# Get summary
print(simmr_4)
# Plot
plot(simmr_4)
# MCMC run - needs slightly longer
simmr_4_out <- simmr_mcmc(simmr_4)
# Print it
print(simmr_4_out)
# Summary
summary(simmr_4_out)
summary(simmr_4_out, type = "diagnostics")
ans <- summary(simmr_4_out, type = c("quantiles", "statistics"))
# Plot
plot(simmr_4_out)
plot(simmr_4_out, type = "boxplot")
plot(simmr_4_out, type = "histogram")
plot(simmr_4_out, type = "density")
plot(simmr_4_out, type = "matrix") # Look at the massive correlations here
  • 多组鹅数据集
#####################################################################################
# Data set 5 - Multiple groups Geese data from Inger et al 2006
# Do this in raw data format - Note that there's quite a few mixtures!
data(geese_data)
simmr_5 <- with(
  geese_data,
  simmr_load(
    mixtures = mixtures,
    source_names = source_names,
    source_means = source_means,
    source_sds = source_sds,
    correction_means = correction_means,
    correction_sds = correction_sds,
    concentration_means = concentration_means,
    group = groups
  )
)
# Plot
plot(simmr_5,
     xlab = expression(paste(delta^13, "C (\\u2030)", sep = "")),
     ylab = expression(paste(delta^15, "N (\\u2030)", sep = "")),
     title = "Isospace plot of Inger et al Geese data"
)
# Run MCMC for each group
simmr_5_out <- simmr_mcmc(simmr_5)
# Summarise output
summary(simmr_5_out, type = "quantiles", group = 1)
summary(simmr_5_out, type = "quantiles", group = c(1, 3))
summary(simmr_5_out, type = c("quantiles", "statistics"), group = c(1, 3))
# Plot - only a single group allowed
plot(simmr_5_out, type = "boxplot", group = 2, title = "simmr output group 2")
plot(simmr_5_out, type = c("density", "matrix"), grp = 6, title = "simmr output group 6")
# Compare sources within a group
compare_sources(simmr_5_out, source_names = c("Zostera", "U.lactuca"), group = 2)
compare_sources(simmr_5_out, group = 2)
# Compare between groups
compare_groups(simmr_5_out, source = "Zostera", groups = 1:2)
compare_groups(simmr_5_out, source = "Zostera", groups = 1:3)
compare_groups(simmr_5_out, source = "U.lactuca", groups = c(4:5, 7, 2))
## End(Not run)

16、simmr_mcmc_tdf


函数说明
simmr_mcmc_tdf根据已知膳食比例的稳定同位素数据估计同位素富集因子

描述

该函数运行一个与simmr_mcmc主函数略有不同的版本,主要区别在于,对于一个给定的膳食比例,它估计了校正因子(有时称为营养富集或营养区分因子;TEFs/TDFs)。

用法

simmr_mcmc_tdf(
  simmr_in,
  p = matrix(rep(1/simmr_in$n_sources, simmr_in$n_sources), ncol = simmr_in$n_sources,
             nrow = simmr_in$n_obs, byrow = TRUE),
  prior_control = list(c_mean_est = rep(2, simmr_in$n_tracers), c_sd_est = rep(2,
                                                                               simmr_in$n_tracers)),
  mcmc_control = list(iter = 10000, burn = 1000, thin = 10, n.chain = 4)
)

输入参数

参数说明
simmr_insimmr_load创建的一个对象
p喂养研究中已知的膳食比例。每个样本的膳食比例都应该给出(即使它们完全相同)
prior_control一组值,包括名为均值和标准差的参数,代表修正因子的先验均值和标准差。这些通常可以保持默认值,除非您希望包含关于它们的先验信息。
mcmc_control一个值列表,包括名为iter(迭代次数)、burn(老化的大小)、thin(细化的数量)和n.chain (MCMC链的数量)的参数。

详细

  • 其想法是,该代码可用于喂养研究,即以已知比例的饮食喂养一种有机体,以便估计修正因子,后期当对该有机体进行野外测量时,在稳定同位素混合模型中使用。
  • 该函数的主要参数是simmr_load创建的对象,其中包含一些示踪剂和食物源均值和标准偏差的混合数据。该对象中包含的任何修正因素将被忽略。应该为每个个体提供已知的膳食比例(即应该是一个与mix相同的行数的矩阵)。建议在饲喂试验设计中采用多种不同膳食比例。
  • 函数的输出是每个食物源校正因子的后验分布。就像simmr_mcmc的输出一样,应该检查它是否收敛。下面包含了一些示例,以帮助进行检查和进一步绘图。
  • 如果,执行simmr_mcmc_tdf后,summary.simmr_output_tdf中的收敛诊断不令人满意,mcmc_controliterburnthin的值应该增加10倍。

输出值

simmr_output类的一个对象,包含两个结构体命名的对象:

参数说明
inputsimmr_mcmc函数的simmr_input对象
output来自coda包的mcmc.list类的一组MCMC链。可以通过summary.simmr_outputplot.simmr_output函数来分析。

示例

# Data set 1: 10 obs on 2 isos, 4 sources, with tefs and concdep
# Assume p = c(0.25, 0.25, 0.25, 0.25)
# The data
data(simmr_data_1)
# Load into simmr
simmr_tdf <- with(
  simmr_data_1,
  simmr_load(
    mixtures = mixtures,
    source_names = source_names,
    source_means = source_means,
    source_sds = source_sds,
    correction_means = correction_means,
    correction_sds = correction_sds,
    concentration_means = concentration_means
  )
)
# Plot
plot(simmr_tdf)
# MCMC run
simmr_tdf_out <- simmr_mcmc_tdf(simmr_tdf,
                                p = matrix(rep(
                                  1 / simmr_tdf$n_sources,
                                  simmr_tdf$n_sources
                                ),
                                ncol = simmr_tdf$n_sources,
                                nrow = simmr_tdf$n_obs,
                                byrow = TRUE
                                )
)
# Summary
summary(simmr_tdf_out, type = "diagnostics")
summary(simmr_tdf_out, type = "quantiles")
# Now put these corrections back into the model and check the
# iso-space plots and dietary output
simmr_tdf_2 <- with(
  simmr_data_1,
  simmr_load(
    mixtures = mixtures,
    source_names = source_names,
    source_means = source_means,
    source_sds = source_sds,
    correction_means = simmr_tdf_out$c_mean_est,
    correction_sds = simmr_tdf_out$c_sd_est,
    concentration_means = concentration_means
  )
)
# Plot with corrections now
plot(simmr_tdf_2)
simmr_tdf_2_out <- simmr_mcmc(simmr_tdf_2)
summary(simmr_tdf_2_out, type = "diagnostics")
plot(simmr_tdf_2_out, type = "boxplot")

17、square_data


函数说明
square_data用来表示先验效应的一种人工数据集

描述

作为SIMMs分析的失败案例,由Fry(2014)定义的假箱式数据集,请查看链接了解更多的对该数据和输出的解读。

用法

square_data

数据集格式

一个包含下列元素的列表

参数说明
mixtures两列矩阵,分别代表delta 13C和delta 15N的值
source_names以字符串形式给出的源的名称
tracer_names以字符串形式给出的示踪剂的名称(d13C,d15N)
source_means源值的平均值,以矩阵的形式给出,其中行数是源的数量,列数是跟踪剂的数量
source_sds源值的标准差,以矩阵形式给出,其中行数为源的数量,列数为示踪剂的数量
correction_means校正值的平均值,以矩阵的形式给出,其中行数是源的数目,列数是示踪剂的数目。如果没有提供,则将这些设置为0。
correction_sds校正值的标准差,以矩阵形式给出,其中行数为源的数目,列数为示踪剂的数目。如果没有提供,则将这些设置为0。
concentration_means浓度依赖的平均值,以矩阵的形式给出,其中行数是源的数量,列数是示踪剂的数量。这些应该在0和1之间。如果没有提供,这些都设置为1。

来源
https://www.int-res.com/abstracts/meps/v490/p285-289/

18、summary.simmr_output


函数说明
summary.simmr_output总结使用simmr_mcmc创建的输出

描述

为使用simmr_mcmc创建的对象生成文本摘要和收敛诊断。不同的选项是:“诊断”产生Brooks-Gelman-Rubin诊断来评估MCMC收敛性,“分位数”产生参数的置信区间,“统计”产生平均值和标准偏差,以及“相关性”产生参数之间的相关性。

用法

## S3 method for class 'simmr_output'
summary(
  object,
  type = c("diagnostics", "quantiles", "statistics", "correlations"),
  group = 1,
  ...
)

输入参数

参数说明
objectsimmr_mcmc函数生成的simmr_output类对象
type输出需要的类型。diagnosticsquantilesstatisticscorrelations中的至少一个
group需要输出的组
...未使用

详细

分位数输出可以方便地计算出95%可信区间的后验膳食比例。相关性、以及plot.simmr_output中的矩阵图,允许用户判断哪些源是不可识别的。Gelman诊断值应接近1,以保证满意的收敛。

输出值

包含以下组成的列表:

参数说明
gelman收敛诊断
quantiles后验分布中各参数的分位数
statistics各参数的均值和标准差
correlations各参数间的厚颜相关

注意,该对象是静默报告的,因此将被丢弃,除非使用如下例中的对象调用该函数。

示例

# A simple example with 10 observations, 2 tracers and 4 sources
# The data
data(geese_data_day1)
simmr_1 <- with(
  geese_data_day1,
  simmr_load(
    mixtures = mixtures,
    source_names = source_names,
    source_means = source_means,
    source_sds = source_sds,
    correction_means = correction_means,
    correction_sds = correction_sds,
    concentration_means = concentration_means
  )
)
# Plot
plot(simmr_1)
# MCMC run
simmr_1_out <- simmr_mcmc(simmr_1)
# Summarise
summary(simmr_1_out) # This outputs all the summaries
summary(simmr_1_out, type = "diagnostics") # Just the diagnostics
# Store the output in an
ans <- summary(simmr_1_out,
               type = c("quantiles", "statistics")
)

19、summary.simmr_output_tdf


函数说明
summary.simmr_output_tdf总结simmr_mcmc_tdf创建的输出

描述

为使用simmr_mcmc_tdf创建的对象生成文本摘要和收敛诊断。不同的选项是:“诊断”产生Brooks-Gelman-Rubin诊断来评估MCMC收敛性,“分位数”产生参数的可信区间,“统计”产生平均值和标准偏差,以及“相关性”产生参数之间的相关性。

用法

## S3 method for class 'simmr_output_tdf'
summary(
  object,
  type = c("diagnostics", "quantiles", "statistics", "correlations"),
  ...
)

输入参数

参数说明
objectsimmr_mcmc_tdf函数生成的simmr_output_tdf类对象
type输出需要的类型。diagnosticsquantilesstatisticscorrelations中的至少一个
...未使用

详细

分位数输出可以方便地计算出95%可信区间的后验膳食比例。Gelman诊断值应接近1,以保证满意的收敛。目前不支持多个组来估计TDFs。

输出值

包含以下组成的列表:

参数说明
gelman收敛诊断
quantiles后验分布中各参数的分位数
statistics各参数的均值和标准差
correlations各参数间的厚颜相关

注意,该对象是静默报告的,因此将被丢弃,除非使用如下例中的对象调用该函数。

### Simmr 和 MixSIAR 的对比 #### 1. 应用领域 Simmr 主要应用于生态学中的稳定同位素混合模型分析,旨在通过已知的食物源同位素组成来推断消费者饮食构成的比例。而 MixSIAR 同样专注于此领域,提供了一个更为灵活且功能丰富的框架来进行类似的分析[^6]。 #### 2. 软件实现方式 Simmr 是基于 R 语言开发的一个包,提供了简单易用的功能接口,适合初学者快速上手并完成基本的数据处理与建模工作。相比之下,MixSIAR 不仅支持 R 平台,在设计之初就考虑到了复杂场景下的应用需求,因此具备更强大的定制化能力以及高级特性支持,如贝叶斯统计方法的应用等[^7]。 #### 3. 功能特点 - **输入数据格式**:两者都接受多种类型的输入文件作为食物网结构描述的基础资料;不过 MixSIAR 对于不确定性和误差估计有着更加精细的支持。 - **输出结果解释**:虽然二者都能给出关于目标物种摄食习惯的信息,但是 MixSIAR 可以进一步生成详细的概率分布图以及其他辅助图表帮助研究人员更好地理解所得结论背后的意义所在。 - **扩展性方面**:由于其开源性质加上活跃社区贡献的缘故,MixSIAR 用户能够更容易找到额外插件或第三方工具集成方案从而满足特定项目的要求[^8]。 ```R # 使用 Simmr 进行简单的混合模型拟合 library(simmr) data <- read.csv("example_data.csv") # 假设这里有一个样本数据集 model_simmr <- simmr_model(data) # 利用 MixSIAR 构建自定义配置的混合模型实例 library(MixSIAR) source(system.file("extdata", "run_MixSIAR.R", package="MixSIAR")) mixsiar_input <- create_mixsiar_input(...) fit <- run_mcmc(mixsiar_input) summary(fit) ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Q_M_Y_Y

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值