Student’s \(t\) data
Let us assume that \(\mbox{data}=\{y_1,\ldots,y_n\}\) are iid
\(t_\nu(\mu,\sigma^2)\), where \((\nu,\sigma^2)\) are know. Therefore, our
inferential problem is to learn about \(\mu\) conditionally on the data. The prior
for \(\mu\) is \(N(\mu_0,\tau_0^2\))$, for known
hyperparameters \((\mu_0,\tau_0^2)\).
Intractable
posterior
It is easy to see that \[
p(\mu|data) \propto \exp\{-0.5(\mu^2+2\mu \mu_0)/\tau_0^2\}
\prod_{i=1}^n p_t(y_i|\mu,\sigma^2,\nu),
\] is not of known form. Therefore, posterior moments and other
summaries will need to be computaed approximately.
Augmenting the problem
(Gibbs full conditionals)
A standard result in probability is that \(y \sim t_\nu(\mu,\sigma^2)\) can be
obtained as a marginal distribution of the following joint distribution
\[
p(y,\lambda|\mu,\sigma^2,\nu) = p(y|\lambda,\mu,\sigma^2)p(\lambda|\nu),
\] where \(y|\lambda,\mu,\sigma^2 \sim
N(\mu,\lambda \sigma^2)\) and \(\lambda
| \nu \sim IG(\nu/2,\nu/2)\). In other words, the intractable
likelihood becomes tractable once it is augmented by parameters \(\lambda_1,\ldots,\lambda_n\). Therefore, we
can sample \(\{(\mu,\lambda_1,\ldots,\lambda_n)^{(j)}\}_{j=1}^M\)
iteratively as follows.
Assume that \(\mu^{(0)}={\bar
y}_n\), the sample mean. Then, cycle through the full
conditionals (Gibbs sampler), for \(j=1,\ldots,M\) iterations:
- For \(i=1,\ldots,n\), sample \[
\lambda^{(j)}|y_i,\mu,\sigma^2,\nu \sim
\left(\frac{\nu+1}{2},\frac{\nu+(y_i-\mu)^2/\sigma^2}{2} \right)
\]
- Sample \(\mu\) from \[
\mu | \mbox{data},\lambda_1,\ldots,\lambda_n,\sigma^2,\nu \sim
N(\mu_1,\tau_1^2),
\] where \[
\tau_1^{-2} = \tau_0^{-2} + \sigma^{-2}\sum_{i=1}^n \lambda_i^{-1} \ \ \
\mbox{and} \ \ \
\mu_1 = \tau_1^2\left(\tau_0^{-2}\mu_0+\sigma^{-2} \sum_{i=1}^n
\lambda_i^{-1}y_i\right).
\]
The draws \(\{(\mu,\lambda_1,\ldots,\lambda_n)^{(j)}\}_{j=1}^M\)
are draws from \(p(\mu,\lambda_1,\ldots,\lambda_n|\mbox{data})\),
while \(\{\mu^{(j)}\}_{j=1}^M\) are
draws from \(p(\mu|\mbox{data})\).
Illustration
set.seed(31416)
mu.true = 0
sigma = 1
sigma2 = sigma^2
nu = 4
n = 30
y = mu.true+sigma*rt(n,df=nu)
ybar = mean(y)
mu0 = 0
tau02 = 2
mu = ybar
M = 10000
mu.d = rep(0,M)
for (iter in 1:M){
lambda = 1/rgamma(n,(nu+1)/2,(nu+(y-mu)^2/sigma2)/2)
tau12 = 1/(1/tau02+sum(1/lambda)/sigma2)
mu1 = tau12*(mu0/tau02+sum(y/lambda)/sigma2)
mu = rnorm(1,mu1,sqrt(tau12))
mu.d[iter] = mu
}
par(mfrow=c(2,2))
plot(y,xlab="Observation",main="")
abline(h=ybar)
ts.plot(mu.d,xlab="iterations",main=expression(mu),ylab="")
acf(mu.d,main="")
hist(mu.d,prob=TRUE,main="",ylab="Posterior density",xlab=expression(mu))

LS0tCnRpdGxlOiAiRGF0YSBhdWdtZW50YXRpb24iCnN1YnRpdGxlOiAiU3R1ZGVudCdzIHQgZGF0YSIKYXV0aG9yOiAiSGVkaWJlcnQgRnJlaXRhcyBMb3BlcyIKZGF0ZTogIjI5LzEwLzIwMjUiCm91dHB1dDoKICBodG1sX2RvY3VtZW50OgogICAgdG9jOiB0cnVlCiAgICB0b2NfZGVwdGg6IDMKICAgIHRvY19jb2xsYXBzZWQ6IHRydWUKICAgIGNvZGVfZG93bmxvYWQ6IHRydWUKICAgIG51bWJlcl9zZWN0aW9uczogdHJ1ZQogIHBkZl9kb2N1bWVudDoKICAgIHRvYzogdHJ1ZQogICAgdG9jX2RlcHRoOiAnMycKLS0tCgpgYGB7ciBzZXR1cCwgaW5jbHVkZT1GQUxTRX0Ka25pdHI6Om9wdHNfY2h1bmskc2V0KGVjaG8gPSBUUlVFKQpgYGAKCgojIFN0dWRlbnQncyAkdCQgZGF0YQoKTGV0IHVzIGFzc3VtZSB0aGF0ICRcbWJveHtkYXRhfT1ce3lfMSxcbGRvdHMseV9uXH0kIGFyZSBpaWQgJHRfXG51KFxtdSxcc2lnbWFeMikkLCB3aGVyZSAkKFxudSxcc2lnbWFeMikkIGFyZSBrbm93LiAgVGhlcmVmb3JlLCBvdXIgaW5mZXJlbnRpYWwgcHJvYmxlbSBpcyB0byBsZWFybiBhYm91dCAkXG11JCBjb25kaXRpb25hbGx5IG9uIHRoZSBkYXRhLiAgVGhlIHByaW9yIGZvciAkXG11JCBpcyAkTihcbXVfMCxcdGF1XzBeMiQpJCwgZm9yIGtub3duIGh5cGVycGFyYW1ldGVycyAkKFxtdV8wLFx0YXVfMF4yKSQuCgojIEludHJhY3RhYmxlIHBvc3RlcmlvcgpJdCBpcyBlYXN5IHRvIHNlZSB0aGF0CiQkCnAoXG11fGRhdGEpIFxwcm9wdG8gXGV4cFx7LTAuNShcbXVeMisyXG11IFxtdV8wKS9cdGF1XzBeMlx9IFxwcm9kX3tpPTF9Xm4gcF90KHlfaXxcbXUsXHNpZ21hXjIsXG51KSwKJCQKaXMgbm90IG9mIGtub3duIGZvcm0uICBUaGVyZWZvcmUsIHBvc3RlcmlvciBtb21lbnRzIGFuZCBvdGhlciBzdW1tYXJpZXMgd2lsbCBuZWVkIHRvIGJlIGNvbXB1dGFlZCBhcHByb3hpbWF0ZWx5LgoKIyBBdWdtZW50aW5nIHRoZSBwcm9ibGVtIChHaWJicyBmdWxsIGNvbmRpdGlvbmFscykKCkEgc3RhbmRhcmQgcmVzdWx0IGluIHByb2JhYmlsaXR5IGlzIHRoYXQgJHkgXHNpbSB0X1xudShcbXUsXHNpZ21hXjIpJCBjYW4gYmUgb2J0YWluZWQgYXMgYSBtYXJnaW5hbCBkaXN0cmlidXRpb24gb2YgdGhlIGZvbGxvd2luZyBqb2ludCBkaXN0cmlidXRpb24KJCQKcCh5LFxsYW1iZGF8XG11LFxzaWdtYV4yLFxudSkgPSBwKHl8XGxhbWJkYSxcbXUsXHNpZ21hXjIpcChcbGFtYmRhfFxudSksCiQkCndoZXJlICR5fFxsYW1iZGEsXG11LFxzaWdtYV4yIFxzaW0gTihcbXUsXGxhbWJkYSBcc2lnbWFeMikkIGFuZCAkXGxhbWJkYSB8IFxudSBcc2ltIElHKFxudS8yLFxudS8yKSQuICBJbiBvdGhlciB3b3JkcywgdGhlIGludHJhY3RhYmxlIGxpa2VsaWhvb2QgYmVjb21lcyB0cmFjdGFibGUgb25jZSBpdCBpcyBhdWdtZW50ZWQgYnkgcGFyYW1ldGVycyAkXGxhbWJkYV8xLFxsZG90cyxcbGFtYmRhX24kLiAgVGhlcmVmb3JlLCB3ZSBjYW4gc2FtcGxlICRceyhcbXUsXGxhbWJkYV8xLFxsZG90cyxcbGFtYmRhX24pXnsoail9XH1fe2o9MX1eTSQgaXRlcmF0aXZlbHkgYXMgZm9sbG93cy4KCkFzc3VtZSB0aGF0ICRcbXVeeygwKX09e1xiYXIgeX1fbiQsIHRoZSBzYW1wbGUgbWVhbi4gIFRoZW4sIGN5Y2xlIHRocm91Z2ggdGhlIGZ1bGwgY29uZGl0aW9uYWxzIChHaWJicyBzYW1wbGVyKSwgZm9yICRqPTEsXGxkb3RzLE0kIGl0ZXJhdGlvbnM6CgoxKSBGb3IgJGk9MSxcbGRvdHMsbiQsIHNhbXBsZSAKJCQKXGxhbWJkYV57KGopfXx5X2ksXG11LFxzaWdtYV4yLFxudSBcc2ltIFxsZWZ0KFxmcmFje1xudSsxfXsyfSxcZnJhY3tcbnUrKHlfaS1cbXUpXjIvXHNpZ21hXjJ9ezJ9IFxyaWdodCkKJCQKMikgU2FtcGxlICRcbXUkIGZyb20KJCQKXG11IHwgXG1ib3h7ZGF0YX0sXGxhbWJkYV8xLFxsZG90cyxcbGFtYmRhX24sXHNpZ21hXjIsXG51IFxzaW0gTihcbXVfMSxcdGF1XzFeMiksCiQkCndoZXJlIAokJApcdGF1XzFeey0yfSA9IFx0YXVfMF57LTJ9ICsgXHNpZ21hXnstMn1cc3VtX3tpPTF9Xm4gXGxhbWJkYV9pXnstMX0gXCBcIFwgXG1ib3h7YW5kfSBcIFwgXCAKXG11XzEgPSBcdGF1XzFeMlxsZWZ0KFx0YXVfMF57LTJ9XG11XzArXHNpZ21hXnstMn0gXHN1bV97aT0xfV5uIFxsYW1iZGFfaV57LTF9eV9pXHJpZ2h0KS4KJCQKClRoZSBkcmF3cyAkXHsoXG11LFxsYW1iZGFfMSxcbGRvdHMsXGxhbWJkYV9uKV57KGopfVx9X3tqPTF9Xk0kIGFyZSBkcmF3cyBmcm9tICRwKFxtdSxcbGFtYmRhXzEsXGxkb3RzLFxsYW1iZGFfbnxcbWJveHtkYXRhfSkkLCB3aGlsZSAkXHtcbXVeeyhqKX1cfV97aj0xfV5NJCBhcmUgZHJhd3MgZnJvbSAkcChcbXV8XG1ib3h7ZGF0YX0pJC4KCgojIElsbHVzdHJhdGlvbgoKYGBge3IgZmlnLmFsaWduPSdjZW50ZXInLCBmaWcud2lkdGg9MTAsIGZpZy5oZWlnaHQ9OH0Kc2V0LnNlZWQoMzE0MTYpCm11LnRydWUgPSAwCnNpZ21hID0gMQpzaWdtYTIgPSBzaWdtYV4yCm51ID0gNApuID0gMzAKeSA9IG11LnRydWUrc2lnbWEqcnQobixkZj1udSkKeWJhciA9IG1lYW4oeSkKCm11MCA9IDAKdGF1MDIgPSAyCm11ID0geWJhcgoKTSA9IDEwMDAwCm11LmQgPSByZXAoMCxNKQpmb3IgKGl0ZXIgaW4gMTpNKXsKICBsYW1iZGEgPSAxL3JnYW1tYShuLChudSsxKS8yLChudSsoeS1tdSleMi9zaWdtYTIpLzIpCiAgdGF1MTIgPSAxLygxL3RhdTAyK3N1bSgxL2xhbWJkYSkvc2lnbWEyKQogIG11MSA9IHRhdTEyKihtdTAvdGF1MDIrc3VtKHkvbGFtYmRhKS9zaWdtYTIpCiAgbXUgPSBybm9ybSgxLG11MSxzcXJ0KHRhdTEyKSkKICBtdS5kW2l0ZXJdID0gbXUKfQoKcGFyKG1mcm93PWMoMiwyKSkKcGxvdCh5LHhsYWI9Ik9ic2VydmF0aW9uIixtYWluPSIiKQphYmxpbmUoaD15YmFyKQp0cy5wbG90KG11LmQseGxhYj0iaXRlcmF0aW9ucyIsbWFpbj1leHByZXNzaW9uKG11KSx5bGFiPSIiKQphY2YobXUuZCxtYWluPSIiKQpoaXN0KG11LmQscHJvYj1UUlVFLG1haW49IiIseWxhYj0iUG9zdGVyaW9yIGRlbnNpdHkiLHhsYWI9ZXhwcmVzc2lvbihtdSkpCmBgYA==