當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


R cv.glm 廣義線性模型的交叉驗證

R語言 cv.glm 位於 boot 包(package)。

說明

此函數計算廣義線性模型的估計 K-fold 交叉驗證預測誤差。

用法

cv.glm(data, glmfit, cost, K)

參數

data

包含數據的矩陣或 DataFrame 。行應該是案例,列對應於變量,其中之一是響應。

glmfit

"glm" 的對象,包含擬合到 data 的廣義線性模型的結果。

cost

兩個向量參數的函數,指定交叉驗證的成本函數。 cost 的第一個參數應對應於觀察到的響應,第二個參數應對應於廣義線性模型的預測或擬合響應。 cost 必須返回非負標量值。默認值是平均平方誤差函數。

K

為了估計交叉驗證預測誤差而應將數據分成的組數。 K 的值必須使所有組的大小大致相等。如果K 的提供值不滿足此標準,則它將被設置為最接近的整數,並生成警告,指定所使用的K 的值。默認設置是將 K 設置為等於 data 中的觀測值數量,這會提供通常的留一交叉驗證。

細節

數據被隨機分為K組。對於每個組,廣義線性模型適合 data 忽略該組,然後函數 cost 應用於從擬合中忽略的組中觀察到的響應以及擬合模型對這些觀察值所做的預測。

K 是觀察數時,使用留一交叉驗證,並使用數據的所有可能的分割。當 K 小於觀測值數量時,通過將數據隨機劃分為大小大致相等的 K 組來找到要使用的 K 分割。在後一種情況下,會引入一定程度的偏差。這可以通過使用簡單的調整來減少(參見 Davison 和 Hinkley,1997 年的方程 6.48)。 delta 中返回的第二個值是通過此方法調整的估計值。

返回的值是包含以下組件的列表。

call

cv.glm 的原始調用。

K

用於 K-fold 交叉驗證的 K 的值。

delta

長度為二的向量。第一個組成部分是預測誤差的原始交叉驗證估計。第二個組成部分是調整後的交叉驗證估計。該調整旨在補償因不使用留一法交叉驗證而引入的偏差。

seed

調用cv.glm.Random.seed 的值。

副作用

.Random.seed 的值已更新。

例子

# leave-one-out and 6-fold cross-validation prediction error for 
# the mammals data set.
data(mammals, package="MASS")
mammals.glm <- glm(log(brain) ~ log(body), data = mammals)
(cv.err <- cv.glm(mammals, mammals.glm)$delta)
(cv.err.6 <- cv.glm(mammals, mammals.glm, K = 6)$delta)

# As this is a linear model we could calculate the leave-one-out 
# cross-validation estimate without any extra model-fitting.
muhat <- fitted(mammals.glm)
mammals.diag <- glm.diag(mammals.glm)
(cv.err <- mean((mammals.glm$y - muhat)^2/(1 - mammals.diag$h)^2))


# leave-one-out and 11-fold cross-validation prediction error for 
# the nodal data set.  Since the response is a binary variable an
# appropriate cost function is
cost <- function(r, pi = 0) mean(abs(r-pi) > 0.5)

nodal.glm <- glm(r ~ stage+xray+acid, binomial, data = nodal)
(cv.err <- cv.glm(nodal, nodal.glm, cost, K = nrow(nodal))$delta)
(cv.11.err <- cv.glm(nodal, nodal.glm, cost, K = 11)$delta)

參考

Breiman, L., Friedman, J.H., Olshen, R.A. and Stone, C.J. (1984) Classification and Regression Trees. Wadsworth.

Burman, P. (1989) A comparative study of ordinary cross-validation, v-fold cross-validation and repeated learning-testing methods. Biometrika, 76, 503-514

Davison, A.C. and Hinkley, D.V. (1997) Bootstrap Methods and Their Application. Cambridge University Press.

Efron, B. (1986) How biased is the apparent error rate of a prediction rule? Journal of the American Statistical Association, 81, 461-470.

Stone, M. (1974) Cross-validation choice and assessment of statistical predictions (with Discussion). Journal of the Royal Statistical Society, B, 36, 111-147.

也可以看看

glm , glm.diag , predict

相關用法


注:本文由純淨天空篩選整理自R-devel大神的英文原創作品 Cross-validation for Generalized Linear Models。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。