1

在 MICE R mice.impute.polyreg.r(通过贝叶斯多变量回归模型对分类响应变量进行插补)中,提到该方法包括以下步骤:

  1. 将分类响应拟合为多项模型
  2. 计算预测类别
  3. 为预测添加适当的噪声。

在实施中:

mice.impute.polyreg <- function(y, ry, x, nnet.maxit = 100, 
                                nnet.trace = FALSE, nnet.maxNWts = 1500, ...) {

    x <- as.matrix(x)
    aug <- augment(y, ry, x, ...)
    x <- aug$x
    y <- aug$y
    ry <- aug$ry
    w <- aug$w

    fy <- as.factor(y)
    nc <- length(levels(fy))
    un <- rep(runif(sum(!ry)), each = nc)


    xy <- cbind.data.frame(y = y, x = x)  # fixed SvB 6/12/2010

    if (ncol(x) == 0L) 
        xy <- data.frame(xy, int = 1)
    fit <- multinom(formula(xy), data = xy[ry,,drop = FALSE ], 
                    weights = w[ry], maxit = nnet.maxit, trace = nnet.trace, 
                    maxNWts = nnet.maxNWts, ...)
    post <- predict(fit, xy[!ry, ], type = "probs")
    if (sum(!ry) == 1) 
        post <- matrix(post, nrow = 1, ncol = length(post))  

    if (is.vector(post)) 
        post <- matrix(c(1 - post, post), ncol = 2)
    draws <- un > apply(post, 1, cumsum)
    idx <- 1 + apply(draws, 2, sum)

    return(levels(fy)[idx])
}

链接到 github 代码

我能够弄清楚前两个步骤,但是我似乎无法找到在实现中将“噪声”添加到预测中的位置。似乎预测的类别是直接返回的。

我错过了什么吗?

4

0 回答 0