Regression Example in JAGS

Summary

様々な確率分布を仮定した単回帰モデルのJAGSスクリプトの例。基本的には、リンク先のスクリプトのLiklihoodの箇所を変更し、各種パラメーターの事前分布を指定してやればよい。

Gaussian

Yのとりうる値の範囲:実数
\[
y_i \sim Normal(\mu_i, \sigma^2)\\
\mu_i = \beta_1 + \beta_2x_i
\]

Y[i] ~ dnorm(mu[i], tau) # tau is precision
mu[i] <- b[1] + b[2]*X[i]

Poisson

Yのとりうる値の範囲:0以上の整数
\[
y_i \sim Poisson(\lambda_i)\\
ln\lambda_i = \beta_1 + \beta_2x_i
\]

Y[i] ~ dpois(lambda[i])
log(lambda[i]) <- b[1] + b[2]*X[i]

Binomial

Yのとりうる値の範囲:0以上N以下の整数
\[
y_i \sim Binomial(N_i, p_i)\\
ln(\frac{p_i}{1-p_i}) = \beta_1 + \beta_2x_i
\]

# N[i] is the number of trials for each sample
Y[i] ~ dbin(p[i], N[i])
logit(p[i]) <- b[1] + b[2]*X[i]

Negative Binomial

Yのとりうる値の範囲:0以上の整数
\[
y_i \sim NB(r, p_i)\\
p_i = \frac{r}{r + \lambda_i}\\
ln(\lambda_i) = \beta_1 + \beta_2x_i
\]

Y[i] ~ dnegbin(p[i], r)
p[i] <- r/(r + lambda[i])
log(lambda[i]) <- b[1] + b[2]*X[i]

Beta

Yのとりうる値の範囲:0より大きくかつ1未満の実数
\[
y_i \sim Beta(\alpha_i, \beta_i)\\
\alpha_i = \phi\mu_i\\
\beta_i = \phi(1-\mu_i)\\
ln(\frac{\mu_i}{1-\mu_i}) = \gamma_1 + \gamma_2x_i
\]

Y[i] ~ dbeta(alpha[i], beta[i])
alpha[i] <- phi*mu[i]
beta[i] <- phi*(1 - mu[i])
logit(mu[i]) <- b[1] + b[2]*X[i]
Sponsored link

Leave a Reply

Your email address will not be published. Required fields are marked *