部分決定係数のR実装


9

誰かが部分決定係数を計算する提案やパッケージを持っていますか?

部分決定係数は、縮小モデルでは説明できない変動のパーセントとして定義できますが、完全モデルでは指定された予測子で説明できます。この係数は、1つ以上の追加の予測子が、より完全に指定された回帰モデルで役立つかどうかについての洞察を提供するために使用されます。

2つのモデルを推定し、それらのANOVAテーブルを生成すると、部分的なr ^ 2の計算は比較的簡単になります。部分的なr ^ 2の計算は次のとおりです。

(SSEreduced-SSEfull)/ SSEreduced

多重線形回帰モデルに対してこれを計算する、この比較的単純な関数を作成しました。私はこの関数が同様に機能しない可能性があるRの他のモデル構造に不慣れです:

partialR2 <- function(model.full, model.reduced){
    anova.full <- anova(model.full)
    anova.reduced <- anova(model.reduced)

    sse.full <- tail(anova.full$"Sum Sq", 1)
    sse.reduced <- tail(anova.reduced$"Sum Sq", 1)

    pR2 <- (sse.reduced - sse.full) / sse.reduced
    return(pR2)

    }

このタスクを実行するためのより堅牢な機能および/または上記のコードのより効率的な実装に関する提案やヒントをいただければ幸いです。


2
他のモデルを試して、コードが機能するかどうかを確認することをお勧めします。Rは通常いいので、anovaは異なるモデルに対して同様のものを返す必要があります。問題は、最初の式にあります。他のモデルにも当てはまりますか?そうでない場合、コードを機能させる意味がありません。さらに、コードは、式が成立しないモデルに使用されているという警告を発行する必要があります。
mpiktas 2011年

質問は本当にわかりません。部分R2を計算する関数が必要ですが、すでにR2を持っています。パッケージの機密性を知っていますか(部分的なR2はありませんが、特定のケースであるpccが実装されています)?
ロビンギラード

@robin-質問が明確でなかった場合はお詫びします。この計算を含むパッケージ(おそらく他の便利な関数が多く含まれているため)や、上で書いた関数を改善する方法の提案に興味があります。明らかにエラーチェックが欠如しており、すべてのモデルタイプに適用できるとは限りません。
追跡

この質問はSEに移行することをお勧めします。質問の中心にあるのは実装上の問題であり、統計的な問題ではないようです。
カラカル、

@カラカル-あなたが合うと思うものは何でも。Rに関連する質問について、SOとCVの間のどこに砂の線を引くかについてかなりの議論があったことを知っています。どちらにしても強い好みはありません。私の仕事は、この特定の問題から少しの間私を遠ざけましたが、今後数週間で再びそれを再訪するので、私はより良い解決策を自分で考え出すことができます。私はまた、質問がエーテルに消えていくのを元気にしています...
チェイス

回答:


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