部分确定系数的R实现

机器算法验证 r 回归 方差分析
2022-03-03 08:04:24

有没有人有可以计算部分确定系数的建议或软件包?

部分确定系数可以定义为在简化模型中无法解释的变异百分比,但可以通过完整(er)模型中指定的预测变量来解释。该系数用于深入了解一个或多个附加预测变量在更完整指定的回归模型中是否有用。

在估计您的两个模型并为它们生成方差分析表之后,部分 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)

    }

任何关于更强大的功能来完成此任务和/或更有效地实现上述代码的建议或技巧将不胜感激。

3个回答

你也可以这样做:

partialR2 <- function(model.full, model.reduced){
    s <- deviance(model.reduced)
    (s - deviance(model.full)) / s
}

好吧,r^2 实际上只是方差乘积的协方差平方,因此您可能可以执行类似 cov(Yfull, Ytrue)/var(Ytrue)var(Yfull) - cov(YReduced, Ytrue)/var(Ytrue) 之类的操作)var(YRed) 与模型类型无关;检查以验证是否在 lm 案例中给出了相同的答案。

http://www.stator-afm.com/image-files/r-squared.gif

heplots包中还有etasq函数。优点是您不必设置 2 个模型