【发布时间】:2014-04-03 22:20:16
【问题描述】:
对于提出一个简单的问题,我深表歉意,但我第一次尝试学习如何在 R 中使用 for 循环,并且没有太多运气来概括任何指南向我展示的具体问题(或一般而言!)我需要根据专家意见制作很多(~18)不同的分布,并且可以通过将三角形分布相加来做到这一点。但是,代码不是很好,我认为可以使用 for 循环对其进行改进,但我不确定如何 - 特别是因为所有最小/最大/模式估计值都不同。我该如何改进呢? (以下代码仅适用于 18 个发行版之一):
library(mc2d)
x <- seq(from=0.5, to=6, by=0.001)
june.cool <- dtriang(x, min=1, max=2, mode=1) +
dtriang(x, min=1, max=4, mode=2) +
dtriang(x, min=0.5, max=1, mode=1) +
dtriang(x, min=2, max=4, mode=3) +
dtriang(x, min=0.25,max=1, mode=1) +
dtriang(x, min=1, max=3, mode=2) +
dtriang(x, min=0.5, max=2, mode=1) +
dtriang(x, min=1, max=5, mode=2.5) +
dtriang(x, min=1, max=6, mode=4)
【问题讨论】:
-
@Hugh - 我猜这个包有一个函数:inside-r.org/packages/cran/mc2d/docs/qpert
-
您应该添加所有包依赖项。
-
嗨 Hugh - thelatemail 是对的,它是用于建模专家意见的三角形分布的替代方案。我刚刚编辑了问题,因为三角形分布更熟悉。
-
分布之间的最大/分钟/模式如何变化?这里到底发生了什么变化? x 是否保持不变?
-
是的——所以对于每个整体分布(在这种情况下,我只展示了一个,“june.cool”),x 应该保持不变。它只是一个从最小值到最大值的任意向量来运行密度函数。每个单独的 dtriang 都有不同的最小/最大/模式,因为这是一位专家对参数的意见。因此,在这种情况下,对于 min=1、max=2 和 mode=1,这是一个人对 6 月份产品冷却所需时间的估计。