当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。