9

背景

现在,我正在创建一个多预测线性模型并生成诊断图来评估回归假设。(这是我目前喜欢的多元回归分析统计类:-)

我的教科书(Cohen、Cohen、West 和 Aiken 2003)建议针对残差绘制每个预测变量,以确保:

  1. 残差不会与预测变量系统地共变
  2. 残差对于模型中的每个预测变量都是同方差的

关于第 (2) 点,我的教科书是这样说的:

一些统计软件包允许分析师在残差的平均值(0 线)、高于平均值的 1 个标准差和低于残差平均值的 1 个标准差处绘制低拟合线......在目前的情况下{他们的例如},两条线 {mean + 1sd 和 mean - 1sd} 保持大致平行于 lowess {0} 线,这与残差方差不随 X 变化的解释一致。(第 131 页)

如何修改黄土线?

我知道如何使用“0 线”生成散点图:

    # First, I'll make a simple linear model and get its diagnostic stats
    library(ggplot2)
    data(cars)
    mod <- fortify(lm(speed ~ dist, data = cars))
    attach(mod)
    str(mod)

    # Now I want to make sure the residuals are homoscedastic
    qplot (x = dist, y = .resid, data = mod) + 
    geom_smooth(se = FALSE) # "se = FALSE" Removes the standard error bands

但是有谁知道我如何使用ggplot2qplot生成将叠加 0 线、“mean + 1sd”和“mean - 1sd”线的图?这是一个奇怪/复杂的问题吗?

4

3 回答 3

4

道歉

各位,我想为我的无知道歉。哈德利是绝对正确的,答案一直就在我面前。正如我所怀疑的那样,我的问题源于统计,而不是程序上的无知。

我们免费获得 68% 的置信区间

geom_smooth()默认为loess平滑,并将+1sd 和 -1sd 线叠加为交易的一部分。这就是哈德利所说的“这不只是一个 68% 的置信区间吗?”的意思。我完全忘记了 68% 的区间什么,并一直在寻找我已经知道该怎么做的东西。我实际上通过指定在我的代码中关闭geom_smooth(se = FALSE)了置信区间并没有帮助。

我的示例代码应该是什么样子

# First, I'll make a simple linear model and get its diagnostic stats.
library(ggplot2)
data(cars)
mod <- fortify(lm(speed ~ dist, data = cars))
attach(mod)
str(mod)

# Now I want to make sure the residuals are homoscedastic.
# By default, geom_smooth is loess and includes the 68% standard error bands.
qplot (x = dist, y = .resid, data = mod) + 
geom_abline(slope = 0, intercept = 0) +
geom_smooth() 

我学到了什么

Hadley 实现了一种非常漂亮且简单的方法来获得我一直想要的东西。但是因为我专注于黄土线,所以我忽略了 68% 的置信区间是由我需要的线所限定的。给大家添麻烦了,对不起。

于 2010-03-30T03:19:12.393 回答
1

你能从数据中计算出 +/- 标准偏差值并将它们的拟合曲线添加到图中吗?

于 2010-03-28T01:33:44.170 回答
1

看看我的问题“修改 lm 或 loess 函数..

我不确定我是否很好地遵循了您的问题,但也许是:

+ stat_smooth(method=yourfunction)

将起作用,前提是您按照此处所述定义您的功能。

于 2010-03-29T12:26:10.470 回答