ggplot 如何计算回归的置信区间?

机器算法验证 r 回归 置信区间 ggplot2
2022-02-03 03:05:35

R 绘图包 ggplot2 有一个很棒的函数,称为stat_smooth,用于绘制带有相关置信带的回归线(或曲线)。

但是,对于每次回归线(或“方法”),我很难弄清楚这个置信带是如何产生的。我怎样才能找到这些信息?

1个回答

Details帮助部分

计算由(当前未记录的)predictdf 泛型函数及其方法执行。对于大多数方法,置信区间是使用预测方法计算的——例外是使用基于 t 的近似值的 loess,而对于 glm,正常置信区间是在链接尺度上构建的,然后再转换为响应尺度。

因此predictdf通常会调用stats::predict,而后者又会调用predict平滑方法的正确方法。其他涉及stat_smooth 的函数也值得考虑。

大多数模型拟合函数将具有与模型predict相关联的方法class这些通常会采用一个newdata对象和一个参数se.fit来表示是否适合标准错误。(请参阅?predict)了解更多详情。

se
显示置信区间是否平滑?(默认为 TRUE,请参见要控制的级别

这直接传递给 predict 方法以返回适当的标准错误(取决于方法)

fullrange
拟合应该跨越绘图的整个范围,还是只是数据

这定义了将评估预测的newdatax

level 要使用的置信区间水平(默认为 0.95)

直接传递给 predict 方法,以便置信区间可以定义适当的临界值(例如,predict.lm用于qt((1 - level)/2, df)将标准误差乘以

n 评估更平滑的点数

与 结合使用fullrange来定义对象x中的值newdata

在对您的调用中,stat_smooth您可以定义与(或)se部分匹配的内容,并在必要时定义参数。将给出置信区间的水平(默认为 0.95)。se.fitseintervallevel

对象是在处理过程中定义的newdata,具体取决于您设置的整个绘图或数据范围内的fullrange长度序列。n

在您的情况下, using rlm,这将使用predict.rlm,其定义为

predict.rlm <- function (object, newdata = NULL, scale = NULL, ...)
{
    ## problems with using predict.lm are the scale and
    ## the QR decomp which has been done on down-weighted values.
    object$qr <- qr(sqrt(object$weights) * object$x)
        predict.lm(object, newdata = newdata, scale = object$s, ...)
}

所以它在内部调用分解和参数predict.lm的适当比例。qrscale