为什么在 STAN 中使用 log-link 时指定 "exp()"?
Why specifiy "exp()" when using log-link in STAN?
我正在使用 STAN 来使用伽马泊松回归来解释作业中数据集中的过度分散。我看过如何在STAN中制作模型的解决方案,如下所示:
model{
vector[N] lambda;
scale ~ cauchy( 0 , 1 );
bf ~ normal( 0 , 1 );
a ~ normal( 0 , 10 );
for ( i in 1:N ) {
lambda[i] = a + bf * fmnnty[i];
lambda[i] = exp(lambda[i]);
}
deaths ~ neg_binomial_2( lambda , scale );
}
方案指定使用log-link函数限制参数lambda为正值。这是有道理的。但是,我不明白为什么 STAN 代码使用 exp() 作为 link 函数。为什么 exp() 适合指定 log-link 函数?
log-link 通过对 lambda 求幂来使用。 'log' 组件表示您正在对平均值 (mu
) 的对数建模:
log(mu) = lambda
您可以改写为:
mu = exp(lambda)
我正在使用 STAN 来使用伽马泊松回归来解释作业中数据集中的过度分散。我看过如何在STAN中制作模型的解决方案,如下所示:
model{
vector[N] lambda;
scale ~ cauchy( 0 , 1 );
bf ~ normal( 0 , 1 );
a ~ normal( 0 , 10 );
for ( i in 1:N ) {
lambda[i] = a + bf * fmnnty[i];
lambda[i] = exp(lambda[i]);
}
deaths ~ neg_binomial_2( lambda , scale );
}
方案指定使用log-link函数限制参数lambda为正值。这是有道理的。但是,我不明白为什么 STAN 代码使用 exp() 作为 link 函数。为什么 exp() 适合指定 log-link 函数?
log-link 通过对 lambda 求幂来使用。 'log' 组件表示您正在对平均值 (mu
) 的对数建模:
log(mu) = lambda
您可以改写为:
mu = exp(lambda)