Коли нормально зняти перехоплення в лінійній регресійній моделі?


118

Я запускаю лінійні регресійні моделі і цікавлюсь, які умови для зняття терміна перехоплення.

Порівнюючи результати двох різних регресій, де одна має перехоплення, а інша ні, я помічаю, що функції без перехоплення набагато вище. Чи є певні умови чи припущення, яких я повинен дотримуватися, щоб переконатися, що вилучення терміну перехоплення є дійсним?R2


1
@chi дякую за редагування мого питання. Чи є речі, які мені слід уточнювати або переробити в будь-яких майбутніх питаннях?
analyticsPierce

3
Ваше питання добре заявлене. @chl люб’язно покращив деякі формати, ось і все. Він передбачав тексифікацію "R ^ 2" (вона була перетворена в R ^ 2 , яка відображається як ). $ R 2$$R2
whuber

1
Що означатиме перехоплення у вашій моделі? З інформації у вашому запитанні, схоже, було б очікуваним значенням вашої відповіді, коли sqft = 0 і lotize = 0 і baths = 0. Чи справді це відбудеться насправді?
timbp

1
Замість y = a + b1 x1 + b2 x2 + b3x3, чи можу я опустити a?
Тревіс

3
NB : Деякі з цих коментарів та відповідей стосуються, по суті, того самого питання (оформленого в контексті регресу цін на житло), яке було об'єднано з цим як дублікат.
whuber

Відповіді:


87

Найкоротший відповідь: ніколи , якщо ви не впевнені , що ваше лінійне наближення породжують даних процесу (лінійна модель регресії) або за деякими теоретичним чи інших причин змушений проходити через початок координат . Якщо ні інші параметри регресії будуть упередженими, навіть якщо перехоплення є статистично незначним (дивним, але це так, див. Наприклад , Brooks Introductory Econometrics ). Нарешті, як я часто пояснюю своїм студентам, залишаючи термін перехоплення, ви гарантуєте, що залишковий термін дорівнює нулю.

Для ваших двох моделей нам потрібен більше контексту. Може статися, що лінійна модель тут не підходить. Наприклад, спочатку потрібно увійти до перетворення, якщо модель мультипликативна. Проводячи експоненціально зростаючі процеси, інколи може траплятися, що для моделі без перехоплення «набагато» вище.R2

Екранувати дані, протестувати модель за допомогою тесту RESET або будь-якого іншого тесту лінійної специфікації, це може допомогти зрозуміти, чи правда моя здогадка. І, побудова найвищих моделей - це одне з останніх статистичних властивостей, про які я дійсно хвилююся, але приємно представити людям, які не так добре знайомі з економетрією (є багато брудних хитрощів, щоб визначити близькість до 1 :)).R2


3
-1 для "ніколи", див. Приклад 1 відповіді Джошуа
цікаво

4
@Curious, "ніколи" не пишеться з "за винятком випадків", наведені нижче приклади просто показують винятки, коли законно видаляти перехоплення. Якщо ви не знаєте процесу або теорії генерування даних або не змушені пройти походження за допомогою стандартизації або будь-якої іншої спеціальної моделі, зберігайте їх. Зберігати перехоплення - це як використовувати смітник для збору всіх спотворень, викликаних лінійним наближенням та іншими спрощеннями. PS практично відповідь показує, що ви читаєте найкоротше :) Дякую Джошуа (+1) за розширені приклади.
Дмитро Челов

3
Ви пропустили пункт Джошуа Приклад 1 і, здається, все ще повністю його ігноруєте. У моделях з категоричною коваріацією видалення перехоплення призводить до тієї ж моделі з просто різною параметризацією. Це правомірний випадок, коли перехоплення можна зняти.
Цікаво

2
@Curious, в прикладі 1 Джошуа вам потрібно додати нову фіктивну змінну для рівня категоріальної змінної, яку ви раніше вважали базовою лінією, і ця нова змінна манекена прийме значення перехоплення, тому ви НЕ знімаєте перехоплення, просто перейменувавши його і перемалювавши решту параметрів категоричного коваріату. Тому аргумент Дмитра справедливий.
Руфо

59

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

Приклад 1: Модель у стилі ANOVA Для категоричних змінних ми зазвичай створюємо бінарні вектори, що кодують членство в групі. Стандартна модель регресії параметризована як перехоплення + k - 1 фіктивних векторів. Перехоплення кодує очікуване значення для "еталонної" групи або опущеного вектора, а решта векторів перевіряють різницю між кожною групою та еталонною. Але в деяких випадках може бути корисним очікуване значення кожної групи.

dat <- mtcars
dat$vs <- factor(dat$vs)

## intercept model: vs coefficient becomes difference
lm(mpg ~ vs + hp, data = dat)

Coefficients:
(Intercept)          vs1           hp  
   26.96300      2.57622     -0.05453  

## no intercept: two vs coefficients, conditional expectations for both groups
lm(mpg ~ 0 + vs + hp, data = dat)

Coefficients:
     vs0       vs1        hp  
26.96300  29.53922  -0.05453  

Приклад 2: Випадок стандартизованих даних. У деяких випадках можна працювати зі стандартизованими даними. У цьому випадку перехоплення дорівнює 0 за задумом. Я думаю, що класичним прикладом цього були моделі структурного рівняння старого стилю або коефіцієнт, які діяли саме на матрицях коваріації даних. У нижченаведеному випадку, напевно, добре б оцінити перехоплення в будь-якому разі, якби тільки упустити додатковий ступінь свободи (яку ви справді повинні були втратити, оскільки середня оцінка була оцінена), але є кілька ситуацій, коли конструкція, засоби можуть бути 0 (наприклад, певні експерименти, коли учасники присвоюють рейтинги, але обмежені для надання рівних позитивів і негативів).

dat <- as.data.frame(scale(mtcars))

## intercept is 0 by design
lm(mpg ~ hp + wt, data = dat)

Coefficients:
(Intercept)           hp           wt  
  3.813e-17   -3.615e-01   -6.296e-01  

## leaving the intercept out    
lm(mpg ~ 0 + hp + wt, data = dat)

Coefficients:
     hp       wt  
-0.3615  -0.6296  

Приклад 3: Багатовимірні моделі та приховані перехоплення. Цей приклад багато в чому схожий на перший. У цьому випадку дані складені таким чином, що дві різні змінні зараз знаходяться в одному довгому векторі. Друга змінна кодує інформацію про те , вектор відгуку, yналежить mpgабо disp. У цьому випадку, щоб отримати окремі перехоплення для кожного результату, ви пригнічуєте загальний перехоплення і включаєте обидва манекени вектора для вимірювання. Це свого роду багатоваріантний аналіз. Зазвичай це не робиться за допомогоюlm()тому що ви повторили заходи і, ймовірно, повинні враховувати невідповідність. Однак є деякі цікаві випадки, коли це необхідно. Наприклад, при спробі зробити посередницький аналіз із випадковими ефектами, щоб отримати матрицю повної коріантності дисперсії, потрібні обидві моделі, що оцінюються одночасно, що може бути зроблено шляхом складання даних і певного розумного використання макетних векторів.

## stack data for multivariate analysis
dat <- reshape(mtcars, varying = c(1, 3), v.names = "y",
  timevar = "measure", times = c("mpg", "disp"), direction = "long")
dat$measure <- factor(dat$measure)

## two regressions with intercepts only
lm(cbind(mpg, disp) ~ 1, data = mtcars)

Coefficients:
             mpg     disp  
(Intercept)   20.09  230.72

## using the stacked data, measure is difference between outcome means
lm(y ~ measure, data = dat)

Coefficients:
(Intercept)   measurempg  
      230.7       -210.6  

## separate 'intercept' for each outcome
lm(y ~ 0 + measure, data = dat)

Coefficients:
measuredisp   measurempg  
     230.72        20.09  

Я не стверджую, що перехоплення, як правило, слід видаляти, але добре бути гнучкими.


7
+1. Я не сприймав людей, щоб жорстко казати "ніколи", але завжди приємно мати іншу точку зору, і це дуже чітка та продумана відповідь. Ласкаво просимо в CV, буде здорово, щоб ви були частиною спільноти.
gung

3
@gung спасибі, ти маєш рацію. Я редагував цю мову з моєї відповіді, оскільки вважаю, що це було запальним та непотрібним.
Джошуа

1
@Joshua: Вибачте, що я задаю питання майже до дворічної публікації, але чи є посилання на ваш перший приклад? Я думаю про запуск моделі без перехоплення за моїми даними, де змінна предиктора є категоричною, і мені цікаво знати, чи суттєво відрізняється кожен рівень від 0. Дякую!
Олексій

@ Алекс Будь-який хороший регресійний текст повинен зробити (глава 8 Прикладної множинної регресії / кореляційного аналізу для наук про поведінку, 3-е видання, висвітлює цю проблему) --- вам просто знадобиться, щоб поговорити про контрасти та про те, як підробляти категоричні змінні коду. Один із способів задуматися над тим, що ви оцінюєте окремі перехоплення для кожної групи, а не залишаєте перехоплення поза.
Джошуа

@Joshua, ваш перший приклад викликав деяку плутанину в інших місцях на цьому веб-сайті . Моє розуміння тут полягає в тому, що ви пропонуєте зручний трюк, щоб показати оцінки параметрів, не потребуючи возитися з додаванням значення для перехоплення, і що ви не припускаєте, що звичайним курсом є використання моделі з вилученим перехопленням для проведення anova. У R, майже у кожному випадку, можна використовувати модель з перехопленням, щоб провести традиційну анову.
Sal Mangiafico


14

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

Там хороший відповідь на дуже схоже запитання тут .

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

БЕЗПЕЧНО - ви вимірюєте щось з дуже чіткою і очевидною фізичною моделлю, яка вимагає перехоплення дорівнювати нулю (наприклад, у вас є висота, ширина і довжина прямокутної призми як пояснювальні змінні, а змінна відповіді - об'єм з деякою помилкою вимірювання). Якщо ваша змінна відповідь - це значення будинку, вам обов'язково потрібно залишити перехоплення в.


1
Чи можете ви поясніть, чому нам потрібен перехоплення для прогнозування цін на житло? чому б для всіх будинків X було нульовим?
Ельф

10

Гаразд, значить, ви змінили питання МНОГО

Ви можете залишати перехоплення, коли знаєте, що це 0. Це все. І ні, ви не можете цього зробити, тому що це суттєво не відрізняється від 0, ви повинні знати, що це 0 або ваші залишки є упередженими. І, у такому випадку це 0, тому це не матиме ніякої різниці, якщо ви його не будете ... отже, ніколи не залишайте цього.

R2


2
Що робити, коли ми хочемо протестувати на коінтеграцію за допомогою 2-х ступінь Engle / Granger? en.wikipedia.org/wiki/Cointegration
Jase

5

Більшість моделей регресії включають постійний термін (тобто перехоплення), оскільки це гарантує, що модель буде неупереджена - тобто середнє значення залишків буде рівно нульовим. (Коефіцієнти в регресійній моделі оцінюються найменшими квадратами - тобто, мінімізуючи середню помилку квадрата. Тепер середня помилка квадрата дорівнює дисперсії помилок плюс квадрат їх середнього значення: це математична тотожність. Зміна значення константи в моделі змінює середнє значення помилок, але не впливає на дисперсію. Отже, якщо суму помилок у квадраті потрібно мінімізувати, константа повинна вибиратися такою, щоб середнє значення помилок дорівнювало нулю. )

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

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

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

Прикладом випадку (1) може бути модель, в якій всі змінні - залежні та незалежні - представляли перші відмінності інших часових рядів. Якщо ви регресуєте першу різницю Y на першій різниці X, ви прямо передбачуєте зміни Y як лінійну функцію змін X, не маючи посилання на поточні рівні змінних. У цьому випадку може бути розумним (хоча і не вимагається) вважати, що Y має бути незмінним у середньому, коли X є незмінним - тобто, щоб Y не повинен мати тенденцію до зростання чи зменшення за відсутності будь-яких змін у рівень X.

Прикладом випадку (2) може бути ситуація, в якій ви бажаєте використовувати повний набір змінних сезонних показників - наприклад, ви використовуєте щоквартальні дані і хочете включити змінні Q1, Q2, Q3 та Q4, що представляють добавку сезонні наслідки. Таким чином, Q1 може виглядати як 1 0 0 0 1 0 0 0 ..., Q2 виглядатиме як 0 1 0 0 0 1 0 0 ... тощо. Ви не можете використовувати всі чотири з них та константи в одній і тій же моделі, оскільки Q1 + Q2 + Q3 + Q4 = 1 1 1 1 1 1 1 1. . . . , що те саме, що і постійний термін. Тобто п'ять змінних Q1, Q2, Q3, Q4 і CONSTANT не є лінійно незалежними: будь-яка з них може бути виражена як лінійна комбінація інших чотирьох. Технічною умовою для встановлення лінійної регресійної моделі є те, що незалежні змінні повинні бути лінійно незалежними; інакше коефіцієнти найменших квадратів не можуть бути визначені однозначно,

Слово попередження: R-квадрат і F-статистика не мають такого ж значення в моделі RTO, як у звичайній регресійній моделі, і вони не обчислюються однаково всім програмним забезпеченням. Дивіться цю статтю щодо деяких застережень. Не слід намагатися порівнювати R-квадрат між моделями, які роблять і не включають постійний термін, хоча нормально порівнювати стандартну помилку регресії.

Зауважимо, що термін "незалежний" застосовується (принаймні) трьома різними способами в регресійному жаргоні: будь-яка одна змінна може бути названа незалежною змінною, якщо вона використовується як предиктор, а не як прогнозований. Група змінних лінійно незалежна, якщо жодна з них не може бути виражена точно як лінійна комбінація інших. Кажуть, що пара змінних є статистично незалежними, якщо вони не тільки лінійно незалежні, але й абсолютно неінформативні відносно один одного. У моделі регресії ви хочете, щоб ваша залежна змінна була статистично залежною від незалежних змінних, які повинні бути лінійно (але не обов'язково статистично) незалежними між собою.


2
На яку статтю ви посилаєтесь?
gung

2

Повний перегляд моїх думок. Дійсно, падіння перехоплення спричинить заперечення.

Ви розглядали можливість центрування своїх даних, щоб перехоплення мало певне значення і уникало пояснення, яким чином деякі (необгрунтовані) значення можуть давати негативні значення? Якщо ви коригуєте всі три пояснювальні змінні, віднімаючи середнє sqrft, середнє розмір і середню ванну, то перехоплення тепер буде вказувати значення (будинок?) Із середнім sdrft, lotize та baths.

Це центрування не змінить відносного відношення незалежних змінних. Таким чином, розміщення моделі на централізованих даних все одно вважатиме ванни незначними. Доопрацюйте модель без включення ванни. Ви все ще можете отримати велике p-значення для перехоплення, але воно повинно бути включене, і у вас буде модель форми y = a + b (sqrft) + c (lotize).


1

Я просто провів деякий час, відповідаючи на подібне запитання, яке розмістив хтось інший, але воно було закрите. Тут є кілька чудових відповідей, але відповідь, яку я надаю, трохи простіша. Це може бути більше підходить людям, які слабо розуміють регресію.

Q1: Як я інтерпретую перехоплення у своїй моделі?

У регресійних моделях мета - мінімізувати кількість незрозумілої дисперсії у змінній результату:

y = b0 + b1⋅x + ϵ

де y - передбачуване значення вашої міри результатів (наприклад, log_blood_hg), b0 - перехоплення, b1 - нахил, x - змінна предиктора, ϵ - залишкова помилка.

Перехоплення (b0) - передбачуване середнє значення y, коли всі x = 0. Іншими словами, це базове значення y, перш ніж ви використовуєте будь-які змінні (наприклад, види) для подальшого мінімізації або пояснення дисперсії в log_blood_hg .

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

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

Для таких простих моделей ніколи не доречно скидати перехоплення.

Моделі дають різні результати, коли ви скидаєте перехоплення, тому що замість того, щоб заземлити нахил в базовій величині Y, він змушений пройти через початок y, що дорівнює 0. Тому схил стає крутішим (тобто більш потужним і значним ) тому що ви примусили лінію через початок, а не тому, що це робить кращу роботу з мінімізації дисперсії у. Іншими словами, ви штучно створили модель, яка мінімізує відхилення у y, видаляючи перехоплення або початкову точку заземлення для вашої моделі.

Бувають випадки, коли усунення перехоплення доцільно - наприклад, при описі явища з 0-перехопленням. Ви можете прочитати про це тут , а також більше причин, чому знімати перехоплення - не дуже гарна ідея.


1

y=α+βx+ϵ
α=0yx=0

R2R2R2

Висновок: НЕ ЗАВИВАЙТЕ ІНТЕРПЕКТ З МОДЕЛІ (якщо ви насправді не знаєте, що ви робите)

Xs=vt

Існують також спеціальні моделі, які не виключають перехоплення. Один із прикладів - парні дані, дослідження побратимів .

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.