回答:
通常の方法で:
p <- predict(mod, newdata, type = "link", se.fit = TRUE)
次に、の観測値の予測の標準誤差を持つp
コンポーネントが含まれていることに注意してください。次に、必要なレベルに適切な値をSEに乗算してCIを形成できます。たとえば、およそ95%の信頼区間は次のように形成されます。$se.fit
newdata
upr <- p$fit + (2 * p$se.fit)
lwr <- p$fit - (2 * p$se.fit)
必要な間隔をまたはガウス分布から適切な値に置き換えます。
type = "link"
GAMを持っているか、AMだけを持っているかは言わないで使用します。GAMでは、線形予測子のスケールで信頼区間を形成し、リンク関数の逆関数を適用して応答のスケールに変換する必要があります。
upr <- mod$family$linkinv(upr)
lwr <- mod$family$linkinv(lwr)
ここで、これらは非常に近似した間隔であることに注意してください。さらに、これらの間隔は、ポイントごとの予測値であると彼らは考慮に滑らかさの選択が行われたという事実を取ることはありません。
同時信頼区間は、パラメーターの事後分布からシミュレーションを介して計算できます。私のブログにはその例があります。
平滑化パラメーターを条件としない信頼区間(つまり、平滑化パラメーターの値がわからないが、代わりに推定することを考慮した信頼区間)が必要な場合はunconditional = TRUE
、predict()
呼び出しに追加します。
また、これを自分で行いたくない場合は、mgcvの新しいバージョンにplot.gam()
は、平滑化のプロットとその信頼区間を作成するために使用されるすべてのデータを含むオブジェクトを返す関数があることに注意してください。plot.gam()
obj から出力を保存するだけです
obj <- plot(model, ....)
次に、inspectを使用しますobj
。これは、スムーズごとに1つのコンポーネントを含むリストです。呼び出しに追加seWithMean = TRUE
して、plot()
平滑化パラメーターを条件としない信頼区間を取得します。
パッケージmgcv
(gamよりも新しい)は、信頼できる間隔を容易にプロットします。このベイジアン手法は信頼区間とは異なりますが、数値シミュレーションが示しているように、結果はほぼ同じです(mgcvでリンクされたMarra and Woodの論文を参照)。