【发布时间】:2016-05-04 16:42:19
【问题描述】:
我是 STAN 的新手。我正在研究时间 ETAS 模型,这是一种用于模拟地震的模型。地震发生时间 t[i] 的强度被建模为-
h(t[i]|p,c,mu)=mu+sum((p-1)*(c^(p-1))*(1/((t[i]-t[1:(i-1)]+c)^(p-1))));
其中 t 是时间,p,c,mu 是三个参数。我正在使用 Rstan。我为模型编写了以下 stan 代码:
stan_etas="
data{
int<lower=0> N;
real<lower=0> t;
}
parameters{
real<lower=0> mu;
real<lower=1.005> p;
real<lower=0> c;
}
我知道我没有将时间指定为向量。你能帮我在模型部分写下可能性吗?我面临写强度的问题。我认为我过去在 R 中写入时间 t[i] 的强度的方式不是在 STAN 中执行此操作的写入方式。
一小部分(仅包含20次)数据如下: DAT =列表(0.0000,310.1907,948.4677,1007.2617,1029.7996,1065.7343,1199.8650,1234.6809,1298.0234,1316.0350,1381.8400,1413.4311,1546.2059,1591.1326,1669.5084,1738.9363,1745.5503,1797.9980,1895.6705,1936.3146) P>
【问题讨论】:
-
如果要对参数使用统一先验,则必须声明其下限和上限。此时,您无需明确使用
uniform()PDF。因此,您的参数块看起来像real<lower=0> mu; real<lower=1.1,upper=5> p; real<lower=1,upper=3> c;