我正在使用rethinking包来构建高斯模型。但是我对dnorm()
dnorm()
翻译中的参数顺序感到有点困惑。
如您所知,(x, mean = 0, sd = 1)
有三个参数:dnorm(0, 10)
。但在重新思考的教科书和文档页面中,所有示例都遵循以下结构:dnorm(x = 0, mean = 10, sd = 1)
。
通常R会将其解释为m.X <- map(
alist(
x ~ dnorm(mu, sigma),
mu <- a,
a ~ dnorm(0, 10),
sigma ~ dnorm(0, 10)
),
data = d
)
。但在这个示例模型中:
a
sigma
(和mean = 0
)优先事项旨在反映sd = 10
和map
。
我只想确保dnorm()
的{{1}}翻译有效a ~ dnorm(a, mean = 0, sd = 10)
而不是a ~ dnorm(x = 0, mean = 10, sd = 1)
。
提前感谢您的澄清!
答案 0 :(得分:0)
我实际上通过电子邮件发送了重新思考包(和教科书)的作者,我刚收到回复!
嗨,[emehex]。对,'a'进入函数内的第一个位置。
a ~ dnorm(0, 10)
函数内的map()
被翻译为:
dnorm(a, mean = 0, sd = 10)
使用以下代码行可以显示先验:
curve(dnorm(x, mean = 0, sd = 10), from = -100, to = 100)