ggplotは回帰の信頼区間をどのように計算しますか?


15

Rプロットパッケージggplot2には、関連する信頼帯を使用して回帰直線(または曲線)をプロットするためのstat_smoothという素晴らしい関数があります。

ただし、回帰線(または「メソッド」)のたびに、この信頼帯がどのように生成されるかを正確に把握するのは困難です。どうすればこの情報を見つけることができますか?


2
リンクの「詳細」というタイトルのセクションを参照してください。
ステファンローラン

1
@StéphaneLaurent:私はそのセクションを読みましたが、まだドットの接続に問題があります。「rlm」メソッドを使用して線を近似しますが、信頼区間はどのように計算されますか(数学的には、どの方程式/アルゴリズムですか?)。どうすればその情報を見つけることができますか?
-static_rtti

1
したがって、より正確な質問をする必要があると思います。
ステファンローラン

1
あなたの質問はかなり正確だと思います... ggplot2 googleグループでより良い運があります:groups.google.com/forum/
fromgroups#!forum

回答:


22

Detailsヘルプのセクションから

計算は(現在文書化されていない)predictdf汎用関数とそのメソッドによって実行されます。ほとんどの方法では、信頼限界は予測方法を使用して計算されます-例外はtベースの近似を使用するレスであり、glmでは通常の信頼区間がリンクスケールで構築され、応答スケールに逆変換されます。

したがって、predictdfは一般にを呼び出しstats::predict、次にpredictsmoothingメソッドの正しいメソッドを呼び出します。stat_smooth を含む他の関数も検討するのに役立ちます。

ほとんどのモデル近似関数には、モデルのpredictメソッドが関連付けられていclassます。これらは通常、標準エラーが適合されるかどうかを示すnewdataオブジェクトと引数se.fitを取ります。(詳細はをご覧ください?predict)。

se
滑らかな周囲の信頼区間を表示しますか?(デフォルトでTRUE、制御するレベルを参照

これは、適切な標準エラーを返すために、predictメソッドに直接渡されます(メソッドに依存)

fullrange
フィットはプロットの全範囲に及ぶか、データのみになります

これは、予測が評価されるnewdata値を定義しますx

level 使用する信頼区間のレベル(デフォルトでは0.95)

信頼区間は(例えば、適切な臨界値を定義することができるようにする方法を予測に直接渡さpredict.lm用途qt((1 - level)/2, df)によって乗算される標準誤差のために

n より滑らかに評価するポイントの数

と組み合わせて使用​​して、オブジェクトの値fullrangeを定義xnewdataます。

呼び出しの中でstat_smoothあなたを定義することができse、部分的に一致している何であるse.fit(またはse)、と定義するinterval必要があれば引数を。level信頼区間のレベルを指定します(デフォルトは0.95)。

newdataオブジェクトは、あなたの設定に応じて、処理内で定義されたfullrange長さの配列に対してnプロットまたはデータの完全な範囲内です。

あなたの場合、を使用してrlm、これはを使用しますpredict.rlm

predict.rlm <- function (object, newdata = NULL, scale = NULL, ...)
{
    ## problems with using predict.lm are the scale and
    ## the QR decomp which has been done on down-weighted values.
    object$qr <- qr(sqrt(object$weights) * object$x)
        predict.lm(object, newdata = newdata, scale = object$s, ...)
}

したがってpredict.lmqr分解とscale引数の適切なスケーリングで内部的に呼び出しています。


...そしてpredict.rlmはMASS内に隠されています...そしてpredictdfの呼び出しはmodel、xseq、se、およびlevel引数をpredict.rlm ...に渡しますが、それらの値はどこから来たのでしょうか?まあ、私はターンの呼び出し...で、次にどの...引数がstat_smoothからStatSmooth $ newに渡されたときに何が起こるかに依存推測
russellpierce

1
私のポイントは、あなたの答えは正しい方向への一歩ですが、OPの質問に完全に答えることは最初に見えるほど簡単ではありません(ただし、コードが十分に動作することを期待します...完全にトレースしない限りわかりません)
russellpierce

2
predictメソッドが標準的な方法で設定されている場合、コードが適切に動作することを期待します。最初のコメントで提起された問題に対処するために、回答を編集しました。
mnel

@mnel:この非常に詳細で有用な回答に感謝します!
static_rtti
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.