R绘图包ggplot2具有一个名为stat_smooth的强大功能,用于绘制带有相关置信带的回归线(或曲线)。
但是,对于每次回归线(或“方法”),我都很难弄清楚如何生成此置信带。我如何找到此信息?
R绘图包ggplot2具有一个名为stat_smooth的强大功能,用于绘制带有相关置信带的回归线(或曲线)。
但是,对于每次回归线(或“方法”),我都很难弄清楚如何生成此置信带。我如何找到此信息?
Answers:
从Details帮助部分
计算是通过(当前未记录的)predictionf泛型函数及其方法执行的。对于大多数方法,使用预测方法来计算置信范围-例外是黄土,它使用基于t的近似值;对于glm,将正常的置信区间构建在链接标度上,然后反变换为响应标度。
因此,predictedf通常会调用stats::predict,而后者又会predict为平滑方法调用正确的方法。其他涉及stat_smooth的功能 也可以考虑使用。
大多数模型拟合函数将具有predict与class模型关联的方法。这些通常将带有一个newdata对象和一个参数se.fit,这些参数和参数将指示是否将符合标准错误。(请参阅参考资料?predict)以获取更多详细信息。
se
显示置信区间是否平滑?(默认为TRUE,请参见要控制的级别
这直接传递给预测方法以返回适当的标准误差(取决于方法)
fullrange
拟合应该跨越图的整个范围,还是仅包含数据
这定义了newdata将x在其上评估预测的值
level要使用的置信区间级别(默认为0.95)
直接传递给预测方法,使得置信区间可以定义相应的临界值(例如predict.lm使用qt((1 - level)/2, df)用于向由相乘标准误差
n评估时更平滑的点数
与一起使用fullrange以定义对象中的x值newdata。
在调用中,stat_smooth您可以定义se与se.fit(或se)部分匹配的对象,并interval在必要时定义参数。level将给出置信区间的级别(默认值为0.95)。
的newdata对象的处理中定义的,这取决于你的设置fullrange到一个长度的序列n的全部范围的曲线图或数据的范围内。
在您的情况下,使用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时对qr分解和scale参数进行了适当的缩放。
predict已经以一种标准方式设置了该方法,则确实希望代码能够表现出合理的行为。我已经对答案进行了修改,以解决您在第一条评论中提出的问题。