We collected data from 15 volunteers (my students and myself) and below we summarize the data information graphically and entertain two competing simple linear regression models: i) Gaussian errors, ii) Student’s \(t\) errors.

hedi = 115
n    = 15
data = matrix(c(178,70,175,80,184,82,200,89,183,80,173,65,185,70,
162,70,190,85,174,80,180,87,165,74,176,72,174,63,196,hedi),n,2,byrow=TRUE)

x = data[,1]
y = data[,2]

loglike.t = function(alpha,beta,sig,nu){
    tau = sqrt((nu-2)*sig^2/nu)
  sum(dt((y-alpha-beta*x)/tau,df=nu,log=TRUE))-n*log(tau)
}

prior.nu = function(nu){
  sqrt((nu+1)/(nu+3)*nu/(nu+3)*(
    trigamma(nu/2)-trigamma((nu+1)/2)-2*(nu+3)/(nu*(nu+1)^2)))
}

nus = 3:30
priornu = prior.nu(nus)
priornu = priornu/sum(priornu)

M       = 1000000
alpha.d = runif(M,-250,150)
beta.d  = runif(M,-0.5,2)
sig.d   = runif(M,1,30)
nu      = sample(nus,size=M,replace=TRUE,prob=priornu)
w       = rep(0,M)
for (i in 1:M)
  w[i] = loglike.t(alpha.d[i],beta.d[i],sig.d[i],nu[i])
w   = exp(w-max(w))
w   = w/sum(w)
ind = sample(1:M,size=M,replace=TRUE,prob=w)
pars = cbind(alpha.d[ind],beta.d[ind],sig.d[ind],nu[ind])


tab = t(apply(pars,2,quantile,c(0.05,0.25,0.5,0.75,0.95)))
row.names(tab) = c("alpha","beta","sigma","nu")
tab
##                 5%         25%         50%         75%       95%
## alpha -129.8864379 -73.8993458 -39.2038016 -11.9204183 29.222764
## beta     0.2703433   0.5018516   0.6514483   0.8431003  1.158998
## sigma    7.4547320   9.3565316  11.0873509  13.4132851 18.255269
## nu       3.0000000   3.0000000   5.0000000   9.0000000 21.000000
par(mfrow=c(2,2))
hist(pars[,1],prob=TRUE,main=expression(alpha),xlab="")
hist(pars[,2],prob=TRUE,main=expression(beta),xlab="")
hist(pars[,3],prob=TRUE,main=expression(sigma),xlab="")
#hist(pars[,4],prob=TRUE,main=expression(nu))
plot(table(pars[,4])/M,main=expression(nu),ylab="Probability")
lines(nus+0.25,priornu,type="h",col=2,lwd=2)
legend("topright",legend=c("Prior","Posterior"),col=2:1,lty=1,lwd=2,bty="n")

LS0tCnRpdGxlOiAiTGluZWFyIHJlZ3Jlc3Npb24gd2l0aCBTdHVkZW50J3MgdCBlcnJvcnMiCmF1dGhvcjogIkxlYXJuaW5nIHRoZSBkZWdyZWUgb2YgZnJlZWRvbSIKZGF0ZTogIjA1LzA2LzIwMjUiCm91dHB1dDoKICBodG1sX2RvY3VtZW50OgogICAgdG9jOiB0cnVlCiAgICB0b2NfZGVwdGg6IDMKICAgIHRvY19jb2xsYXBzZWQ6IHRydWUKICAgIGNvZGVfZG93bmxvYWQ6IHllcwogICAgbnVtYmVyX3NlY3Rpb25zOiB0cnVlCi0tLQoKV2UgY29sbGVjdGVkIGRhdGEgZnJvbSAxNSB2b2x1bnRlZXJzIChteSBzdHVkZW50cyBhbmQgbXlzZWxmKSBhbmQgYmVsb3cgd2Ugc3VtbWFyaXplIHRoZSBkYXRhIGluZm9ybWF0aW9uIGdyYXBoaWNhbGx5IGFuZCBlbnRlcnRhaW4gdHdvIGNvbXBldGluZyBzaW1wbGUgbGluZWFyIHJlZ3Jlc3Npb24gbW9kZWxzOiAgaSkgR2F1c3NpYW4gZXJyb3JzLCBpaSkgU3R1ZGVudCdzICR0JCBlcnJvcnMuCgpgYGB7ciBmaWcud2lkdGg9MTAsIGZpZy5oZWlnaHQ9NiwgZmlnLmFsaWduPSdjZW50ZXInfQpoZWRpID0gMTE1Cm4gICAgPSAxNQpkYXRhID0gbWF0cml4KGMoMTc4LDcwLDE3NSw4MCwxODQsODIsMjAwLDg5LDE4Myw4MCwxNzMsNjUsMTg1LDcwLAoxNjIsNzAsMTkwLDg1LDE3NCw4MCwxODAsODcsMTY1LDc0LDE3Niw3MiwxNzQsNjMsMTk2LGhlZGkpLG4sMixieXJvdz1UUlVFKQoKeCA9IGRhdGFbLDFdCnkgPSBkYXRhWywyXQoKbG9nbGlrZS50ID0gZnVuY3Rpb24oYWxwaGEsYmV0YSxzaWcsbnUpewoJdGF1ID0gc3FydCgobnUtMikqc2lnXjIvbnUpCiAgc3VtKGR0KCh5LWFscGhhLWJldGEqeCkvdGF1LGRmPW51LGxvZz1UUlVFKSktbipsb2codGF1KQp9Cgpwcmlvci5udSA9IGZ1bmN0aW9uKG51KXsKICBzcXJ0KChudSsxKS8obnUrMykqbnUvKG51KzMpKigKICAgIHRyaWdhbW1hKG51LzIpLXRyaWdhbW1hKChudSsxKS8yKS0yKihudSszKS8obnUqKG51KzEpXjIpKSkKfQoKbnVzID0gMzozMApwcmlvcm51ID0gcHJpb3IubnUobnVzKQpwcmlvcm51ID0gcHJpb3JudS9zdW0ocHJpb3JudSkKCk0gICAgICAgPSAxMDAwMDAwCmFscGhhLmQgPSBydW5pZihNLC0yNTAsMTUwKQpiZXRhLmQgID0gcnVuaWYoTSwtMC41LDIpCnNpZy5kICAgPSBydW5pZihNLDEsMzApCm51ICAgICAgPSBzYW1wbGUobnVzLHNpemU9TSxyZXBsYWNlPVRSVUUscHJvYj1wcmlvcm51KQp3ICAgICAgID0gcmVwKDAsTSkKZm9yIChpIGluIDE6TSkKICB3W2ldID0gbG9nbGlrZS50KGFscGhhLmRbaV0sYmV0YS5kW2ldLHNpZy5kW2ldLG51W2ldKQp3ICAgPSBleHAody1tYXgodykpCncgICA9IHcvc3VtKHcpCmluZCA9IHNhbXBsZSgxOk0sc2l6ZT1NLHJlcGxhY2U9VFJVRSxwcm9iPXcpCnBhcnMgPSBjYmluZChhbHBoYS5kW2luZF0sYmV0YS5kW2luZF0sc2lnLmRbaW5kXSxudVtpbmRdKQoKCnRhYiA9IHQoYXBwbHkocGFycywyLHF1YW50aWxlLGMoMC4wNSwwLjI1LDAuNSwwLjc1LDAuOTUpKSkKcm93Lm5hbWVzKHRhYikgPSBjKCJhbHBoYSIsImJldGEiLCJzaWdtYSIsIm51IikKdGFiCgpwYXIobWZyb3c9YygyLDIpKQpoaXN0KHBhcnNbLDFdLHByb2I9VFJVRSxtYWluPWV4cHJlc3Npb24oYWxwaGEpLHhsYWI9IiIpCmhpc3QocGFyc1ssMl0scHJvYj1UUlVFLG1haW49ZXhwcmVzc2lvbihiZXRhKSx4bGFiPSIiKQpoaXN0KHBhcnNbLDNdLHByb2I9VFJVRSxtYWluPWV4cHJlc3Npb24oc2lnbWEpLHhsYWI9IiIpCiNoaXN0KHBhcnNbLDRdLHByb2I9VFJVRSxtYWluPWV4cHJlc3Npb24obnUpKQpwbG90KHRhYmxlKHBhcnNbLDRdKS9NLG1haW49ZXhwcmVzc2lvbihudSkseWxhYj0iUHJvYmFiaWxpdHkiKQpsaW5lcyhudXMrMC4yNSxwcmlvcm51LHR5cGU9ImgiLGNvbD0yLGx3ZD0yKQpsZWdlbmQoInRvcHJpZ2h0IixsZWdlbmQ9YygiUHJpb3IiLCJQb3N0ZXJpb3IiKSxjb2w9MjoxLGx0eT0xLGx3ZD0yLGJ0eT0ibiIpCmBgYAoK