Що означає негативний R-квадрат?


17

Скажімо, у мене є деякі дані, а потім я підходжу дані до моделі (нелінійна регресія). Тоді я обчислюю R-квадрат ( R2 ).

Якщо R-квадрат негативний, що це означає? Це означає, що моя модель погана? Я знаю, що діапазон R2 може бути [-1,1]. Коли R2 дорівнює 0, що це також означає?


4
Це означає, що ви зробили щось не так, оскільки лежить в [ 0 , 1 ] за визначенням. R 2, скоригована з іншого боку, може бути негативною, що можна сміливо припускати, що ваша модель дуже погано підходить до даних. КолиR2[0,1]R2 точно дорівнює нулю, це означає, що ˉ y настільки ж хороший предиктор y, як і сама лінія регресії найменших квадратів. R2y¯y
dsaxton

1
Це можливо для регресії без перехоплення, див., Наприклад, stats.stackexchange.com/questions/164586/…



@gung Я збирався припустити, що це, можливо, дублікат цього питання ... ти вважаєш, вони досить чіткі? (Якщо що-небудь, це питання здається більш приємним, ніж інше, тому що немає відволікаючого синтаксису SPSS, але відповіді в іншому потоці дуже хороші і, здається, охоплюють і це питання.)
Silverfish

Відповіді:


37

може бути негативним, це просто означає, що:R2

  1. Модель дуже погано відповідає вашим даним
  2. Ви не встановили перехоплення

Люди, які говорять, що знаходиться між 0 і 1, це не так. Хоча негативне значення для чогось із словом "квадрат" у ньому може звучати так, як воно порушує правила математики, воно може траплятися в моделі R 2 без перехоплення. Щоб зрозуміти чому, нам потрібно подивитися, як обчислюється R 2 .R2R2R2

Це трохи довго - Якщо ви хочете відповіді, не розуміючи її, тоді пропустіть до кінця. Інакше я намагався написати це простими словами.

Спочатку визначимо 3 змінні: , T S S і Е S S .RSSTSSESS

Розрахунок RSS :

Для кожної незалежної змінної маємо залежну змінну y . Побудуємо лінійну лінію, що найкраще підходить, яка прогнозує значення y для кожного значення x . Назвемо значення y, які передбачає рядокxyyxy . Помилка між тим, що прогнозує ваш рядок, і фактичнимзначеннямy, може бути обчислена як віднімання. Всі ці відмінності зводятьсяквадрат і підсумовуються, що дає Залишкова сума квадратівRSS.y^yRSS

Поклавши це в рівняння, RSS=(yy^)2

Розрахунок TSS :

Ми можемо обчислити середнє значення , яке називається ˉ y . Якщо ми побудуємо графік ˉ y , це просто горизонтальна лінія через дані, оскільки вона є постійною. Що ми можемо з цим зробити, це відняти ˉ y (середнє значенняyy¯y¯y¯ ) від кожного фактичного значення y . Результатквадрат і підсумовуються, що дає загальну суму квадратів Т S S .yyTSS

Поклавши це в рівняння TSS=(yy¯)2

Розрахунок ESS :

Відмінності між у (значення у передбачені лінії) , а також середнє значення ˉ у зводяться в квадрат і підсумовуються. Це Роз'яснення сума квадратів, яка дорівнює Е ( уy^yy¯(y^y¯)2

Пам'ятайте, що , але ми можемо додати + у - у в неї, тому що вона скасовує поза. Таким чином, Т S S = Σ ( У - у +TSS=(yy¯)2+y^y^. Розширення цих дужок, ми отримуємоTSS=Е(TSS=(yy^+y^y¯)2TSS=(yy^)2+2(yy^)(y^y¯)+(y^y¯)2

Коли, і тільки тоді , коли лінія викреслюється з перехопленням, наступний завжди вірно: . Таким чином, Т S S = Σ ( у - у ) 2 + Σ ( у - ˉ у )2(yy^)(y^y¯)=0 , який можна помітити тільки означаєщо Т S S = R S S +TSS=(yy^)2+(y^y¯)2 . Якщо ділити всі доданки на T S S і переставити, отримаємо 1 - R S STSS=RSS+ESSTSS .1RSSTSS=ESSTSS

Ось важлива частина :

визначається як кількість дисперсії пояснюється вашою моделлю (наскільки хороша ваша модель). У формі рівняння це R 2 = 1 - R S SR2 . Вигляд знайомий? Коли лінія побудована з перехопленням, ми можемо підставити це якR2=ESSR2=1RSSTSS . Оскільки чисельник і демонстратор є сумами квадратів,R2має бути додатним.R2=ESSTSSR2

АЛЕ

Коли ми не вказуємо перехоплення, не обов'язково дорівнює 0 . Це означає , що Т S S = R S S + Е S S + 2 * Σ ( у - у ) ( у - ˉ у ) .2(у-у^)(у^-у¯)0ТSS=RSS+ЕSS+2(у-у^)(у^-у¯)

Розділивши всі доданки на , отримаємо 1 - R S STSS1RSSTSS=ESS+2(yy^)(y^y¯)TSS

R2=ESS+2(yy^)(y^y¯)TSSR22(yy^)(y^y¯)yy^y^y¯ is positive, or vice versa. This occurs when the horizontal line of y¯ actually explains the data better than the line of best fit.

Here's an exaggerated example of when R2 is negative (Source: University of Houston Clear Lake)

An exaggerated example of when R^2 is negative (Source: University of Houston Clear Lake)

Put simply:

  • When R2<0, a horizontal line explains the data better than your model.

You also asked about R2=0.

  • When R2=0, a horizontal line explains the data equally as well as your model.

I commend you for making it through that. If you found this helpful, you should also upvote fcop's answer here which I had to refer to, because it's been a while.


5
Seriously fantastic answer! The only thing missing for me is the intuition behind why 2(yy^)(y^y¯)=0 when, and only when, there is an intercept set?
Owen

6

Neither answer so far is entirely correct, so I will try to give my understanding of R-Squared. I have given a more detailed explanation of this on my blog post here "What is R-Squared"

Sum Squared Error

The objective of ordinary least squared regression is to get a line which minimized the sum squared error. The default line with minimum sum squared error is a horizontal line through the mean. Basically, if you can't do better, you can just predict the mean value and that will give you the minimum sum squared error

horizontal line through the mean

R-Squared is a way of measuring how much better than the mean line you have done based on summed squared error. The equation for R-Squared is

equation for r-squared

Now SS Regression and SS Total are both sums of squared terms. Both of those are always positive. This means we are taking 1, and subtracting a positive value. So the maximum R-Squared value is positive 1, but the minimum is negative infinity. Yes, that is correct, the range of R-squared is between -infinity and 1, not -1 and 1 and not 0 and 1

What Is Sum Squared Error

Sum squared error is taking the error at every point, squaring it, and adding all the squares. For total error, it uses the horizontal line through the mean, because that gives the lowest sum squared error if you don't have any other information, i.e. can't do a regression.

enter image description here

As an equation it is this

sum squared total error equation

Now with regression, our objective is to do better than the mean. For instance this regression line will give a lower sum squared error than using the horizontal line.

enter image description here

The equation for regression sum squared error is this

enter image description here

Ideally, you would have zero regression error, i.e. your regression line would perfectly match the data. In that case you would get an R-Squared value of 1

r squared value of 1

Negative R Squared

All the information above is pretty standard. Now what about negative R-Squared ?

Well it turns out that there is not reason that your regression equation must give lower sum squared error than the mean value. It is generally thought that if you can't make a better prediction than the mean value, you would just use the mean value, but there is nothing forcing that to be the cause. You could for instance predict the median for everything.

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

Коли ви це зробите, то лінія регресії проходить через цю точку, і намагається отримати помилку мінімальної суми в квадраті, продовжуючи проходити через цю точку.

fixed point

За замовчуванням рівняння регресії використовують середнє х і середнє y як точку, через яку проходить лінія регресії. Але якщо ви примусите його через точку, яка знаходиться далеко від місця, де зазвичай знаходиться лінія регресії, ви можете отримати помилку в квадраті, що перевищує використання горизонтальної лінії

На зображенні нижче, обидві лінії регресії були змушені мати перехоплення 0. Це спричинило негативний R-квадрат для даних, далеких від походження.

negative r squared

Для верхнього набору точок - червоного, регресійної лінії - це найкраща лінія регресії, яка також проходить через початок. Просто буває, що ця регресія є гіршою, ніж використання горизонтальної лінії, і, отже, дає негативний R-квадрат.

Не визначений R-квадрат

Існує один особливий випадок, про який ніхто не згадував, де ви можете отримати невизначений R-Squared. Тобто, якщо ваші дані повністю горизонтальні, то ваша загальна помилка у квадраті дорівнює нулю. У результаті у вас буде нуль, поділений на нуль у рівнянні R-квадрата, яке не визначено.

enter image description here

enter image description here


дуже яскрава відповідь, хотіли б побачити набагато більше відповідей такого типу!
Бен

0

Як зазначає попередній коментатор, r ^ 2 знаходиться між [0,1], а не [-1, + 1], тому бути негативним неможливо. Ви не можете розмістити значення і отримати від’ємне число. Можливо, ви дивитесь на r, кореляцію? Це може бути між [-1, + 1], де нуль означає, що між змінними немає зв’язку, -1 означає, що існує ідеальне від'ємне відношення (як одна змінна збільшується, інша зменшується), а +1 - ідеальний позитивний співвідношення (обидві змінні йдуть вгору або вниз відповідно).

Якщо ви дійсно дивитесь на r ^ 2, то, як описано в попередньому коментаторі, ви, мабуть, бачите скоригований r ^ 2, а не власне r ^ 2. Поміркуйте, що означає статистика: я викладаю статистику науки про поведінку, і найпростіший спосіб, який я навчився навчати своїх студентів про значення r ^ 2, - це "% розбіжність пояснюється". Отже, якщо у вас r ^ 2 = 0,5, модель пояснює 50% варіації залежної (результат) змінної. Якщо у вас від'ємний r ^ 2, це означатиме, що модель пояснює негативний% змінної результату, що не є інтуїтивно розумною пропозицією. Однак скоригований r ^ 2 враховує розмір вибірки (n) та кількість предикторів (p). Формула для його обчислення тут. Якщо у вас дуже низький r ^ 2, то отримати негативні значення досить легко. Зрозуміло, що негативно скорегований r ^ 2 не має інтуїтивнішого значення, ніж звичайний r ^ 2, але, як каже попередній коментатор, це просто означає, що ваша модель дуже бідна, якщо не просто звичайна.


3
Щодо поясненого відсотка дисперсії, можливо, якщо модель настільки бідна, що збільшує дисперсію (ESS> TSS), можна отримати негативнийR2, де R2визначається як% роз’ясненої дисперсії, а не квадратичної кореляції між фактичним та встановленим значеннями. Це може не статися в регресії з перехопленням, оціненим OLS, але може статися в регресії без перехоплення або, можливо, інших випадках.
Річард Харді

4
R2 бути неможливо <0 у вибірці, але може бути негативною, якщо обчислити вибірка , тобто на зразок тримання після фіксації всіх коефіцієнтів регресії. Як було пояснено вище, це є гіршим, ніж випадкові прогнози.
Френк Харрелл

@FrankHarrell, ви впевнені, що це потрібно для зразка? Зрозуміло, вам доведеться ігнорувати дані досить сильно, щоб створити модель, яка гірша за середню, але я не бачу, чому ви не можете зробити це лише з даними вибірки.
Метт Крауз

Я припускаю, що у вибірці означає вибірку, на яку оцінювали коефіцієнти. Тоді не можна бути негативним.
Френк Харрелл

1
@FrankHarrell, Припустимо, модель справді жорстока - вам підходить якась функція, яка не перехоплює, якгріх(ωх+ϕ)до діагональної лінії. Чи не повиненR2 be negative here too, even for the in-sample data? Matlab does give me a reasonably large negative number when I do that...
Matt Krause
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.