Пакет построения графиков R ggplot2 имеет потрясающую функцию stat_smooth для построения линии регрессии (или кривой) с соответствующей доверительной полосой.
Однако мне трудно понять, как именно генерируется этот доверительный интервал для каждого времени линии регрессии (или «метода»). Как я могу найти эту информацию?
r
regression
confidence-interval
ggplot2
static_rtti
источник
источник
Ответы:
Из
Details
раздела помощиТак что в общем случае будет вызываться Предсказание
stats::predict
, которое в свою очередь вызовет правильныйpredict
метод для метода сглаживания. Другие функции, включающие stat_smooth , также полезны для рассмотрения.Большинство функций подбора модели будут иметь
predict
метод, связанный сclass
моделью. Они обычно принимаютnewdata
объект и аргумент,se.fit
который будет обозначать, будут ли установлены стандартные ошибки. (см.?predict
) для получения дополнительной информации.Это передается непосредственно в метод предиката для возврата соответствующих стандартных ошибок (зависит от метода)
Это определяет
newdata
значения, дляx
которых будут оцениваться прогнозыПередается непосредственно в метод прогнозирования, чтобы доверительный интервал мог определить соответствующее критическое значение (например,
predict.lm
используетсяqt((1 - level)/2, df)
для стандартных ошибок, которые нужно умножить наИспользуется в сочетании с
fullrange
для определенияx
значений вnewdata
объекте.В рамках вызова
stat_smooth
вы можете определить,se
что является тем, что частично соответствуетse.fit
(илиse
), и определитinterval
аргумент при необходимости.level
даст уровень доверительного интервала (по умолчанию 0,95).newdata
Объект определяется в обработке, в зависимости от настройкиfullrange
к последовательности длины вn
пределах полного диапазона участка или данных.В вашем случае, используя
rlm
, это будет использоватьpredict.rlm
, который определяется какТак что это внутренний вызов
predict.lm
с соответствующим масштабированиемqr
декомпозиции иscale
аргумента.источник
predict
метод был настроен стандартным образом. Я отредактировал свой ответ для решения проблем, поднятых в вашем первом комментарии.