我正在尝试用
brms
拟合非线性模型。我的型号是:
y = intercept + b1 * (x1 * mean(x2^b2))
地点:
x1
是测量的连续变量,x2
也是嵌套在x1
中的连续变量。为了了解更多背景信息,x1
是人口规模,x2
是该人口中个体子集的质量。intercept
、b1
和b2
是要估计的参数我的一位同事用
rjags
这样编码:
y1[i] <- x1[i]*(mean(x2_matrix[1:no_per_site[i],i]^b2))
y2[i] <- intercept + y1[i]*b1
其中
i
是位点索引,x2_matrix
每个单独质量 (x2
) 值一行,每个位点一列,其中 no_per_site
是在每个位点测量的 x2
数量。
有没有办法让这个模型适合
brms
?如何管理 x2
矩阵?
这是数据的结构:
'data.frame': 31 obs. of 3 variables:
$ population: chr "p1" "p2" "p3" "p4" ...`
$ y2 : num 592 551 1720 5135 3710 ...
$ x1 : int 145 145 72 3173 3173 1262 1262 504 504 777 ...
$ no_per_site: num 104 55 187 102 ...
和 x2 矩阵:
num [1:187, 1:31] 530 600 460 510 325 420 490 430 450 350 ...
谢谢!
我喜欢的解决方案是对随机变量函数的一阶矩使用泰勒展开式。详细信息可以在这里找到:vignette_taylor_series