ベイジアン線形回帰で事後予測分布を評価する


10

ベイジアン線形回帰の事後予測分布を、3ページのここで説明した基本的なケースを超えて評価し、以下にコピーする方法に混乱しています。

p(y~y)=p(y~β,σ2)p(β,σ2y)

基本的なケースは次の線形回帰モデルです。

y=Xβ+ϵ,yN(Xβ,σ2)

で均一な事前分布、でscale-Inv事前分布、または正規逆ガンマ事前分布(ここを参照)を使用する場合、事後予測分布は分析的であり、学生tです。 χ 2 σ 2βχ2σ2

このモデルについてはどうですか?

y=Xβ+ϵ,yN(Xβ,Σ)

場合、しかし知られている、事後予測分布は多変量ガウス分布です。通常、ませんが、推定する必要があります。たぶん、あなたはその対角線を言い、何らかの方法で対角線を共変量の関数にします。これについては、ゲルマンのベイズデータ分析の線形回帰の章で説明しています。Σ ΣyN(Xβ,Σ)ΣΣ

この場合、事後予測分布の分析フォームはありますか?私の推定値を多変量の学生tにプラグインできますか? 複数の分散を推定する場合、分布は依然として多変量スチューデントtですか?

私はいくつかのすでに手元にあると言っているので、私は尋ねています。線形回帰A、線形回帰Bなどによって予測された可能性が高いかどうかを知りたい y~


1
事後分布から事後サンプルがある場合は、モンテカルロ近似を使用して予測分布を評価できます
niandra82

ええと、私はいつでもそれを行うことができました。この場合、分析式はありませんか?
bill_e 2015

ちなみに、リンクは壊れています。あなたが別の方法で参照を組み込むとしたら素晴らしいでしょう。
Maxim.K 2018

回答:


6

あなたが上に均一な前に想定した場合、その後の事後である 予測分布を見つけるには、さらに情報が必要です。もしとの条件付きで独立している所与、次に しかし、通常、これらのタイプのモデルでは、とは条件付きで独立ではなく、通常、 ββ

β|yN(β^,Vβ).
β^=[XΣ1X]XyandVβ=[XΣ1X]1.
y~N(X~β,Σ~)yβ
y~|yN(X~β^,Σ~+Vβ).
yy~Y| YNXβ+Σ21Σ-1Y-XのβΣ-Σ21Σ-1Σ12ΣΣ12Σ
(yy~)N([XβX~β],[ΣΣ12Σ21Σ~]).
この場合、 これは、およびがすべて既知であることを前提としています。ご指摘のとおり、通常は不明であり、推定する必要があります。この構造を持つ一般的なモデル(時系列モデルや空間モデルなど)の場合、通常、予測分布の閉じた形式はありません。
y~|yN(X~β^+Σ21Σ1(yXβ^),Σ~Σ21Σ1Σ12).
Σ,Σ12,Σ~

2

非情報または多変量正規ウィシャート事前分布では、古典的な多変量多重回帰の多変量スチューデント分布としての分析形式があります。このドキュメントの展開はあなたの質問に関連していると思います(付録A :-)が好きかもしれません)。私は通常、結果をWinBUGSおよび分析形式を使用して取得した事後予測分布と比較しました。これらはまったく同じです。問題は、特に不均衡な設計で、混合効果モデルに追加の変量効果がある場合にのみ困難になります。

一般に、古典的な回帰では、yとỹは条件付きで独立しています(残差はiidです)。もちろん、そうでない場合、ここで提案された解決策は正しくありません。

Rでは(ここでは一様事前分布の解)、モデルの応答の1つのlmモデル(「モデル」という名前)を作成し、それを「モデル」とすると、多変量予測分布を取得する方法は次のとおりです。

library(mvtnorm)
Y = as.matrix(datas[,c("resp1","resp2","resp3")])
X =  model.matrix(delete.response(terms(model)), 
           data, model$contrasts)
XprimeX  = t(X) %*% X
XprimeXinv = solve(xprimex)
hatB =  xprimexinv %*% t(X) %*% Y
A = t(Y - X%*%hatB)%*% (Y-X%*%hatB)
F = ncol(X)
M = ncol(Y)
N = nrow(Y)
nu= N-(M+F)+1 #nu must be positive
C_1 =  c(1  + x0 %*% xprimexinv %*% t(x0)) #for a prediction of the factor setting x0 (a vector of size F=ncol(X))
varY = A/(nu) 
postmean = x0 %*% hatB
nsim = 2000
ysim = rmvt(n=nsim,delta=postmux0,C_1*varY,df=nu) 

これで、ysimの分位数は予測分布からのベータ期待許容区間です。もちろん、サンプリングされた分布を直接使用して、好きなことを行うことができます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.