Розуміння смуги довіри від поліноміальної регресії


14

Я намагаюся зрозуміти результат, який я бачу в своєму графіку нижче. Зазвичай я схильний використовувати Excel і отримую лінійно-регресійну лінію, але у випадку нижче я використовую R і отримую поліноміальну регресію з командою:

ggplot(visual1, aes(ISSUE_DATE,COUNTED)) + geom_point() + geom_smooth()

Тож мої запитання зводяться до цього:

  1. Яка сіра зона (стрілка №1) навколо синьої лінії регресії? Це стандартне відхилення поліноміальної регресії?

  2. Чи можу я сказати, що все, що знаходиться поза сірою зоною (стрілка №2), є «зовнішньою», і все, що потрапляє всередину сірої зони (стрілка №3), знаходиться в межах стандартного відхилення?

введіть тут опис зображення

Відповіді:


14

Сіра смуга - це довіра для регресійної лінії. Я недостатньо знайомий з ggplot2, щоб точно знати, чи це група довіри 1 SE або 95% довіри, але я вважаю, що це перша ( Редагувати: очевидно, це 95% ІС ). Діапазон довіри надає уявлення про невизначеність щодо вашої лінії регресії. У певному сенсі можна подумати, що справжня лінія регресії настільки ж висока, як верхня частина цієї смуги, така низька, як нижня, або по-різному хитається всередині смуги. (Зауважте, що це пояснення має бути інтуїтивно зрозумілим і технічно не правильним, але цілком правильне пояснення більшості людей важко дотримуватися.)

Ви повинні використовувати смугу довіри, щоб допомогти вам зрозуміти / подумати про лінію регресії. Не слід використовувати це для роздумів про необроблені точки даних. Пам'ятайте, що лінія регресії представляє середнє значення у кожній точці X (якщо вам потрібно це зрозуміти більш повно, це може допомогти вам прочитати мою відповідь тут: Яка інтуїція стоїть за умовними гауссовими розподілами? ). З іншого боку, ви, звичайно, не очікуєте, що кожна спостережувана точка даних буде дорівнює умовному середньому. Іншими словами, не слід використовувати смугу довіри для оцінки того, чи є точка даних стороннім. YX


( Редагувати: ця примітка є периферійним для основного питання, але прагне уточнити точку для ОП. )

Поліноміальна регресія не є нелінійною регресією, хоча те, що ви отримуєте, не схоже на пряму. Термін "лінійний" має дуже математичне значення в математичному контексті, зокрема, що параметри, які ви оцінюєте - бета - - це всі коефіцієнти. Поліноміальна регресія просто означає, що ваші коваріати - це , X 2 , X 3 тощо, тобто вони мають нелінійне відношення один до одного, але ваші бета все ще є коефіцієнтами, тому це все ще лінійна модель. Якби ваші бета-версії були, скажімо, експонентами, тоді ви мали б нелінійну модель. XX2X3

Підсумовуючи, те, чи виглядає лінія прямою чи ні, не має нічого спільного з тим, чи є модель лінійною чи ні. Коли ви підходите до поліноміальної моделі (скажімо, з і X 2 ), модель не «знає», що, наприклад, X 2 насправді є просто квадратом X 1 . Він думає, що це лише дві змінні (хоча, можливо, можна визнати, що існує певна мультиколінеарність). Таким чином, насправді це встановлення (прямої / плоскої) регресійної площини в тривимірному просторі, а не (вигнутої) лінії регресії в двовимірному просторі. Це нам не корисно думати, а насправді надзвичайно складно помітити з X 2XX2X2X1X2є ідеальною функцією . Як наслідок, ми не турбуємося про це таким чином, і наші сюжети - це дійсно двовимірні проекції на площину ( X , Y ) . Тим не менш, у відповідному просторі лінія в деякому сенсі насправді "пряма". X(X, Y)

З математичної точки зору модель лінійна, якщо параметри, які ви намагаєтеся оцінити, є коефіцієнтами. Для подальшого уточнення розглянемо порівняння між стандартною лінійною регресійною моделлю (OLS) та простою логістичною регресійною моделлю, представленою у двох різних формах:
ln ( π ( Y )

Y=β0+β1X+ε
π(Y)=exp(β0+β1X)
ln(π(Y)1π(Y))=β0+β1X
Верхня модель - регресія OLS, а дві нижні - це логістична регресія, хоча і представлена ​​по-різному. У всіх трьох випадках, коли ви підходите до моделі, ви оцінюєтеβs. Дві верхні моделі єлінійними, тому що всіβs - коефіцієнти, а нижня модель - нелінійна (у такому вигляді), тому щоβs - це показники. (Це може здатися досить дивним, але логістична регресія - це примірникузагальненоїлінійної моделі, оскільки її можна переписати як лінійну модель. Для отримання додаткової інформації про це, можливо, допоможе прочитати мою відповідь тут:
π(Y)=exp(β0+β1X)1+exp(β0+β1X)
βββРізниця між моделями logit і probit .)

+1 Приклади в документації припускають, що впевненість у нас досить висока, можливо, 95%.
whuber

@gung дякую за детальну відповідь (також ви отримали чек!). Я прочитав ваше перше твердження і трохи розгубився. Чи можете ви, будь ласка, детальніше розповісти про це. Якщо отримана лінія не є прямою (y = mx + b), то що робить її лінійною? Ще раз дякую за відповідь.
adhg

Документи на docs.ggplot2.org/0.9.3.1/stat_smooth.html стверджують, що це 95% довірна смуга кривої регресії.
whuber

2
Я думаю, що тут використовується тут більш легкий Лос, а не поліноміальна регресія?
xan

@adhg, я думав, що я покрив лінійну та нелінійну десь в іншому місці, але не зміг її знайти. Тому я додав сюди додатковий матеріал. HTH
gung - Відновити Моніку

11

Щоб додати до вже існуючих відповідей, смуга представляє довірчий інтервал середнього значення, але з вашого запитання ви чітко шукаєте інтервал прогнозування . Інтервали прогнозування - це діапазон, який, якби ви намалювали одну нову точку, ця точка теоретично містилася б у діапазоні X% часу (де ви можете встановити рівень X).

library(ggplot2)
set.seed(5)
x <- rnorm(100)
y <- 0.5*x + rt(100,1)
MyD <- data.frame(cbind(x,y))

Ми можемо генерувати той же тип сюжету, який ви показали у своєму початковому запитанні, з інтервалом довіри навколо середнього рівня згладженої лінії регресії льосу (за замовчуванням - довірчий інтервал 95%).

ConfiMean <- ggplot(data = MyD, aes(x,y)) + geom_point() + geom_smooth()
ConfiMean

введіть тут опис зображення

Для швидкого та брудного прикладу інтервалів прогнозування тут я генерую інтервал прогнозування, використовуючи лінійну регресію з вирівнюванням сплайнів (тому це не обов'язково пряма лінія). З даними вибірки це дуже добре, оскільки на 100 балів лише 4 знаходяться поза діапазоном (і я вказав 90% інтервал у функції прогнозування).

#Now getting prediction intervals from lm using smoothing splines
library(splines)
MyMod <- lm(y ~ ns(x,4), MyD)
MyPreds <- data.frame(predict(MyMod, interval="predict", level = 0.90))
PredInt <- ggplot(data = MyD, aes(x,y)) + geom_point() + 
           geom_ribbon(data=MyPreds, aes(x=fit,ymin=lwr, ymax=upr), alpha=0.5)
PredInt

введіть тут опис зображення

Тепер ще кілька записок. Я погоджуюся з Ладиславом, що ви повинні розглянути методи прогнозування часових рядів, оскільки у вас є звичайні серії з колись 2007 року, і з вашого сюжету видно, якщо ви виглядаєте важко, є сезонність (з'єднання пунктів зробить це набагато зрозумілішим). Для цього я хотів би запропонувати перевірити на forecast.stl функцію в прогнозному пакеті , де ви можете вибрати сезонне вікно і забезпечує надійне розкладання сезонності і тенденції , використовуючи лес. Я згадую надійні методи, оскільки ваші дані мають декілька помітних шипів.

Більш загально для даних, що не є часовими серіями, я б розглядав інші надійні методи, якщо у вас є дані з випадковими атрибутами. Я не знаю, як генерувати інтервали прогнозування безпосередньо за допомогою Лосса, але ви можете розглянути квантильну регресію (залежно від того, наскільки екстремальними повинні бути інтервали прогнозування). В іншому випадку, якщо ви просто хочете підходити до потенційно нелінійного, ви можете розглянути сплайни, щоб дозволити функції змінюватись на x.


4

Ну, синя лінія - це плавна локальна регресія . Ви можете контролювати хиткість лінії за spanпараметром (від 0 до 1). Але ваш приклад - це "часовий ряд", тому постарайтеся шукати якісь більш правильні методи аналізу, ніж підходити тільки до плавної кривої (яка повинна слугувати лише для виявлення можливої ​​тенденції).

Згідно з документацією ggplot2(і книгам в коментарях нижче): stat_smooth є довірчим інтервалом з гладких сірого кольору. Якщо ви хочете вимкнути довірчий інтервал, використовуйте se = FALSE.


1
(1) Я не бачу у вашому посиланні, де вона стверджує, що сіра зона є точковим довірчим інтервалом. З прикладів виглядає досить зрозуміло, що натомість сіра зона є довірчим інтервалом для кривої . (2) Ніхто не може обґрунтовано оголосити велику частку балів за сірою зоною як "залишків"; їх просто занадто багато.
whuber

(1) моя помилка, сюди я додаю книгу, яка посилається на "точковий інтервал довіри": Wickham H (2009) ggplot2 Елегантна графіка для аналізу даних. Медіа 212. (стор. 14). (2) Я згоден.
Ladislav Naďo

Чи вказує будь-яка з ваших посилань, на якому встановлено рівень довіри за замовчуванням?
whuber

Ні, я не можу знайти посилання на налаштування за замовчуванням.
Ladislav Naďo

Я знайшов за замовчуванням на першій сторінці вашої довідки: "(0.95 за замовчуванням)." Це означає , що або це рівніше мають серйозні помилки, інакше ваша інтерпретація посилання неправильно: бо така велика частина точок даних , як правило , знаходиться за межами сірої області і припускаючи , що код є правильним, сірої область має бути довірчій областю для прогнозування (встановлена ​​крива), а не область довіри для балів.
whuber
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.