SIMMR
- 关于SIMMR
- R 主题列表
- 1、combine_sources
- 2、compare_groups
- 3、compare_sources
- 4、plot.simmr_input
- 5、plot.simmr_output
- 6、posterior_predictive
- 7 、print.simmr_input
- 8、print.simmr_output
- 9、prior_viz
- 10、simmr
- 11、simmr_data_1
- 12、simmr_data_2
- 13、simmr_elicit
- 14、simmr_load
- 15、simmr_mcmc
- 16、simmr_mcmc_tdf
- 17、square_data
- 18、summary.simmr_output
- 19、summary.simmr_output_tdf
一个稳定同位素混合模型
版本 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_out | simmr_mcmc 创建的类对象 |
to_combine | 两个源的名字,该名称应与simmr_load 中的名称精确匹配 |
new_source_name | 给新组合源的名称 |
详细
通常两个源要么 (1) 在同位素空间图上位于相似位置,要么 (2) 在系统发育方面非常相似。在 (1) 中,来源之间的后验相关性通常很高(负)。将它们结合起来可以减少这种相关性并提高估计的精度。在 (2) 中,我们可能希望确定这两种食物合并后的共同食用量。因此,该函数在运行simmr_mcmc
(称为后验组合)之后组合了两个源。然后可以使用plot.simmr_input
或plot.simmr_output
调用此新对象,生成组合后输出的同位素空间图概要。
输出值
为一个新的simmr_output
对象
示例
- 运行前加载依赖包
library(rjags)
library(R2jags)
library(ggplot2)
library(simmr)
- 查看
simmr
包内自带的数据集
print(data(package='simmr'))
Data sets in package simmr:
数据集 描述 geese_data Geese stable isotope mixing data set geese_data_day1 A smaller version of the Geese stable isotope mixing data set simmr_data_1 A simple fake stable isotope mixing data set simmr_data_2 A 3-isotope fake stable isotope mixing data set square_data An artificial data set used to indicate effect of priors
- 可在终端中输入help命令查看详细的数据集说明
help(geese_data_day1)
geese_data_day1
是一个真实的布兰特鹅数据集,包括对2种同位素(d13C
、d15N
)、4种来源(Zostera
、Grass
、U.lactuca
、Enteromorpha
)、校正/营养富集因子(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_out | simmr_mcmc 创建的类对象 |
source_name | 源的名称,应与simmr_load 中给定的源名称精确匹配 |
groups | 要比较的组号的整数值。必须至少指定两个组。 |
plot | 一个逻辑值,指定是否应该生成图。 |
详细
当指定了两组时,函数会直接计算其中一组比另一组大的概率。当给出两个以上的组时,该函数为每个组的组合生成一组最有可能的概率排序。该函数在默认情况下生成箱线图,如果需要,还允许存储输出以供进一步分析。
输出值
如果有两组,输出值为一个包含该源在两组间膳食比例差异的向量。如果有多个组,输出值为一个包含以下字段的列表
参数 | 说明 |
---|---|
Ordering | 这个食物来源在组间的膳食比例的可能的不同排列 |
out_all | 这个食物来源在组间的膳食比例列在矩阵中 |
示例
- 载入
simmr
数据集中的geese_data
到simmr_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_out | simmr_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 | 图形标题 |
xlab | x轴标签,默认为delta-13C,但是可以更改为富文本,见下面示例 |
ylab | y轴标签,默认为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_out | simmr_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_out | simmr_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_load
和simmr_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_elicit
和simmr_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_output
和plot.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
中的iter
、burn
和thin
的值应该增加10倍。
输出值
simmr_output
类的一个对象,包含两个结构体命名的对象:
参数 | 说明 |
---|---|
input | 给simmr_mcmc 函数的simmr_input 对象 |
output | 来自coda 包的mcmc.list 类的一组MCMC链。可以通过summary.simmr_output 和plot.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_in | 由simmr_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_control
中iter
、burn
和thin
的值应该增加10倍。
输出值
simmr_output
类的一个对象,包含两个结构体命名的对象:
参数 | 说明 |
---|---|
input | 给simmr_mcmc 函数的simmr_input 对象 |
output | 来自coda 包的mcmc.list 类的一组MCMC链。可以通过summary.simmr_output 和plot.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,
...
)
输入参数
参数 | 说明 |
---|---|
object | simmr_mcmc 函数生成的simmr_output 类对象 |
type | 输出需要的类型。diagnostics 、quantiles 、statistics 或correlations 中的至少一个 |
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"),
...
)
输入参数
参数 | 说明 |
---|---|
object | simmr_mcmc_tdf 函数生成的simmr_output_tdf 类对象 |
type | 输出需要的类型。diagnostics 、quantiles 、statistics 或correlations 中的至少一个 |
... | 未使用 |
详细
分位数输出可以方便地计算出95%可信区间的后验膳食比例。Gelman诊断值应接近1,以保证满意的收敛。目前不支持多个组来估计TDFs。
输出值
包含以下组成的列表:
参数 | 说明 |
---|---|
gelman | 收敛诊断 |
quantiles | 后验分布中各参数的分位数 |
statistics | 各参数的均值和标准差 |
correlations | 各参数间的厚颜相关 |
注意,该对象是静默报告的,因此将被丢弃,除非使用如下例中的对象调用该函数。