以前に R で作成したいくつかの glm モデルに対して 10 倍のクロス検証を実行しようとしています。多くのヘルプ ファイルを読みましたが、パッケージのcv.glm()
関数について少し混乱しています。boot
次の式を提供すると:
library(boot)
cv.glm(data, glmfit, K=10)
ここでの「データ」引数は、データセット全体を参照していますか、それともテスト セットのみを参照していますか?
これまで見てきた例では、テスト セットとして "data" 引数を提供していますが、実際には意味がありませんでした。たとえば、なぜ同じテスト セットで 10 倍になるのでしょうか? それらはすべてまったく同じ結果をもたらすでしょう(私は推測します!)。
残念ながら?cv.glm
、あいまいな方法でそれを説明しています。
data: データを含む行列またはデータ フレーム。行はケースで、列は変数に対応し、そのうちの 1 つは応答です。
私の他の質問は、$delta[1]
結果についてです。これは 10 回の試行の平均予測誤差ですか? 折りたたみごとにエラーを取得したい場合はどうすればよいですか?
私のスクリプトは次のようになります。
##data partitioning
sub <- sample(nrow(data), floor(nrow(x) * 0.9))
training <- data[sub, ]
testing <- data[-sub, ]
##model building
model <- glm(formula = groupcol ~ var1 + var2 + var3,
family = "binomial", data = training)
##cross-validation
cv.glm(testing, model, K=10)