Как я могу наложить измененные строки лесса на ggplot2 qplot?

Фон

Прямо сейчас я создаю несколько-предикторов линейная модель и генерирую диагностические графики оценить предположения регрессии. (Это для аналитического класса статистики множественной регрессии, который я люблю в данный момент :-)

Мой учебник (Cohen, Cohen, Запад и Aiken 2003) рекомендует вывести каждый предиктор на печать против невязок, чтобы удостовериться что:

  1. Невязки систематически не делают covary с предиктором
  2. Невязки гомоскедастичны относительно каждого предиктора в модели

На точке (2), говорит следующее мой учебник:

Некоторые статистические пакеты позволяют аналитику строить графики соответствия lowess в средних из невязок (с 0 строками), 1 стандартное отклонение выше среднего, и 1 стандартное отклонение ниже средних из невязок.... В данном случае {их пример}, эти две строки {средний + 1sd и средний - 1sd} остается примерно параллельным lowess {0} строка, согласовывающаяся с интерпретацией, которую различие невязок не изменяет как функция X. (p. 131)

Как я могу изменить строки лесса?

Я знаю, как генерировать scatterplot с "с 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

Но делает любой знает, как я могу использовать ggplot2 и qplot генерировать графики где с 0 строками, "средний + 1sd" И "средний - 1sd" строки были бы наложены? Это - странный/сложный вопрос спросить?

9
задан briandk 29 March 2010 в 03:14
поделиться

3 ответа

Извинения

Друзья, я хочу извиниться за свое невежество. Хэдли абсолютно прав, и ответ все время был прямо передо мной. Как я и подозревал, мой вопрос был порожден статистическим, а не программным незнанием.

Получаем 68% доверительный интервал бесплатно

geom_smooth () по умолчанию лесс сглаживание, и он накладывает линии + 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() 

Что я узнал

Хэдли реализовал действительно красивый и простой способ получить то, что я хотел с самого начала. Но поскольку я сосредоточился на линиях лесса , я упустил из виду тот факт, что 68% доверительный интервал был ограничен теми самыми линиями, которые мне были нужны. Приносим извинения за беспокойство.

4
ответ дан 4 December 2019 в 23:39
поделиться

Не могли бы вы рассчитать значения стандартного отклонения +/- на основе данных и добавить их подобранную кривую к графику?

1
ответ дан 4 December 2019 в 23:39
поделиться

Посмотрите на мой вопрос « изменить lm или функцию loess .. »

Я не уверен, что следил за вашим вопросом очень хорошо, но, возможно, будет работать:

+ stat_smooth(method=yourfunction)

при условии, что вы определите свою функцию как , описанную здесь .

1
ответ дан 4 December 2019 в 23:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: