Когда можно удалить перехват в модели линейной регрессии?


118

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

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


1
@chi спасибо за редактирование моего вопроса. Есть ли вещи, которые я должен уточнить или переписать в будущих вопросах?
аналитикаPierce

3
Ваш вопрос хорошо сформулирован. @chl любезно улучшил форматирование, вот и все. Это включало TeXification "R ^ 2" (он был превращен в R ^ 2 $ , который отображается как R 2 ). $$р2
whuber

1
Что будет означать перехват в вашей модели? Из информации в вашем вопросе кажется, что это будет ожидаемое значение вашего ответа, когда sqft = 0 и lotsize = 0 и baths = 0. Это когда-нибудь случится в реальности?
Timbp

1
Могу ли я пропустить a вместо y = a + b1 x1 + b2 x2 + b3x3?
Трэвис

3
NB . Некоторые из этих комментариев и ответов касаются, по сути, одного и того же вопроса (в контексте регрессии цен на жилье), который был объединен с этим как дубликат.
whuber

Ответы:


87

Самый короткий ответ: никогда , если вы не уверены, что ваше линейное приближение процесса генерирования данных (модель линейной регрессии) по каким-либо теоретическим или иным причинам вынуждено пройти исходную точку . Если нет, то другие параметры регрессии будут смещены, даже если перехват статистически незначим (странно, но это так, обратитесь, например , к « Вводной эконометрике Брукса» ). Наконец, как я часто объясняю своим студентам, оставляя термин «перехват», вы гарантируете, что остаточный термин равен нулю.

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

Просмотрите данные, протестируйте модель с помощью теста RESET или любого другого теста линейной спецификации, это может помочь проверить, верна ли моя догадка. И построение моделей с самым высоким является одним из последних статистических свойств, которые меня действительно беспокоят, но это приятно представить людям, которые не очень хорошо знакомы с эконометрикой (есть много грязных трюков, чтобы сделать определение близко к 1 :)).р2


3
-1 для «никогда», см. Пример 1 ответа Джошуа
Любопытный

4
@ Любопытно, что «никогда» пишется с «если только» примеры, приведенные ниже, просто показывают исключения, когда законно удалять перехват. Если вы не знаете процесс или теорию генерирования данных или не вынуждены проходить источник по стандартизации или какой-либо другой специальной модели, сохраняйте ее. Сохранение перехвата похоже на использование мусорного ведра для сбора всех искажений, вызванных линейным приближением и другими упрощениями. PS практически ответ показывает, что вы читаете просто самое короткое :) Большое спасибо Джошуа (+1) за расширенные примеры.
Дмитрий Челов

3
Вы упустили из виду пример 1 Иисуса Навина и, похоже, до сих пор полностью его игнорируем. В моделях с категориальной ковариацией удаление точки пересечения приводит к одной и той же модели с просто другой параметризацией. Это законный случай, когда перехват может быть удален.
Любопытно,

2
@Curious, в примере 1 из Joshua вам нужно добавить новую фиктивную переменную для уровня категориальной переменной, которую вы ранее рассматривали как базовую, и эта новая фиктивная переменная примет значение перехвата, поэтому вы НЕ удаляете перехват, просто переименовываем его и репараметрируем остальные параметры категориального ковариата. Поэтому аргумент Дмитрия верен.
Руфо

59

Удаление перехвата - это другая модель, но есть множество примеров, где это законно. Ответы до сих пор подробно обсуждали пример, где истинный перехват равен 0. Я остановлюсь на нескольких примерах, где нас может заинтересовать нетипичная параметризация модели.

Пример 1: Модель в стиле ANOVA. Для категориальных переменных мы обычно создаем двоичные векторы, кодирующие членство в группах. Стандартная модель регрессии параметризована как фиктивные векторы intercept + 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: Извините, что я задаю вопрос по почти 2-летнему сообщению, но есть ли ссылки на ваш первый пример? Я думаю о том, чтобы запустить модель без перехвата в моих данных, где переменная предикторов является категориальной, и мне интересно знать, значительно ли каждый уровень отличается от 0. Спасибо!
Алекс

@Alex Любой хороший регрессионный текст должен подойти (глава 8 Прикладного множественного регрессионного / корреляционного анализа для поведенческих наук, 3-е изд., Охватывает это некоторые) - вам просто нужно поговорить о контрастах и ​​о том, как фиктивно кодировать категориальные переменные. Один из способов думать об этом состоит в том, что вы оцениваете отдельные перехваты для каждой группы, а не упускаете их.
Джошуа

@ Джошуа, твой первый пример вызвал некоторую путаницу в других местах на этом сайте . Насколько я понимаю, вы предлагаете удобный трюк, чтобы показать оценки параметров без необходимости возиться с добавлением значения для перехвата, и что вы не предлагаете использовать обычный метод с удалением перехвата для проведения ановы. В R, почти в каждом случае, можно использовать модель с перехватом для проведения традиционной ановы.
Sal Mangiafico


14

Вы не должны отбрасывать перехват, независимо от того, вероятно ли вы когда-либо видеть все объясняющие переменные, имеющие значения ноль.

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

Если вы удалите перехват, то все другие оценки будут смещены. Даже если истинное значение перехвата приблизительно равно нулю (это все, что вы можете сделать из ваших данных), вы будете возиться с уклонами, если заставите его быть точно равным нулю.

UNLESS - вы измеряете что-то с помощью очень четкой и очевидной физической модели, которая требует, чтобы пересечение было нулевым (например, у вас есть высота, ширина и длина прямоугольной призмы в качестве объясняющих переменных, а переменная отклика - это объем с некоторой ошибкой измерения). Если вашей переменной ответа является значение дома, вам определенно нужно оставить перехват в.


1
Не могли бы вы объяснить, почему нам нужен перехват для прогнозирования цен на жилье? почему все X будут равны нулю для любого дома?
Эльф

10

Хорошо, так что вы изменили вопрос много

Вы можете пропустить перехват, когда вы знаете, что это 0. Вот и все. И нет, вы не можете сделать это, потому что это не значительно отличается от 0, вы должны знать, что это 0, или ваши остатки смещены. И, в этом случае, это 0, так что это не будет иметь никакого значения, если вы пропустите это ... поэтому, никогда не пропускайте это.

р2


2
Как насчет того, когда мы хотим протестировать коинтеграцию, используя 2-шаговый Engle / Granger? ru.wikipedia.org/wiki/Cointegration
Jase

5

Большинство моделей множественной регрессии содержат постоянный член (т. Е. Перехват), поскольку это гарантирует, что модель будет беспристрастной, т. Е. Среднее значение остатков будет точно равно нулю. (Коэффициенты в регрессионной модели оцениваются методом наименьших квадратов, т. Е. Сводится к минимуму среднеквадратическая ошибка. Теперь среднеквадратичная ошибка равна дисперсии ошибок плюс квадрат их среднего значения: это математическая идентичность. Изменение значение константы в модели изменяет среднее значение ошибок, но не влияет на дисперсию, поэтому, если сумма квадратов ошибок должна быть минимизирована, константа должна быть выбрана так, чтобы среднее значение ошибок было равно нулю. )

В простой регрессионной модели константа представляет Y-точку пересечения линии регрессии в нестандартной форме. В модели множественной регрессии константа представляет значение, которое было бы предсказано для зависимой переменной, если бы все независимые переменные были одновременно равны нулю - ситуация, которая не может быть физически или экономически значимой. Если вас не особенно интересует, что произойдет, если все независимые переменные будут одновременно равны нулю, тогда вы обычно оставляете константу в модели независимо от ее статистической значимости. В дополнение к тому, что ошибки выборки несмещены, наличие константы позволяет линии регрессии «искать свой собственный уровень» и обеспечивать наилучшее соответствие данным, которые могут быть только локально линейными.

Однако в редких случаях вы можете исключить постоянную из модели. Это опция подбора модели в процедуре регрессии в любом программном пакете, и ее иногда называют регрессией через источник, или для краткости RTO. Обычно это будет сделано только в том случае, если:

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

Примером случая (1) может служить модель, в которой все переменные - зависимые и независимые - представляют первые различия других временных рядов. Если вы регрессируете первое различие Y на первое различие X, вы прямо прогнозируете изменения в Y как линейную функцию изменений в X без привязки к текущим уровням переменных. В этом случае может быть разумным (хотя и не обязательно) предполагать, что Y должен быть неизменным в среднем всякий раз, когда X не изменяется, то есть, что Y не должен иметь тенденцию к росту или понижению при отсутствии каких-либо изменений в уровень Х.

Примером случая (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 size).


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. Другими словами, вы искусственно создали модель, которая минимизирует дисперсию y, удалив точку пересечения или начальную точку заземления для вашей модели.

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


1

Yзнак равноα+βИкс+ε
αзнак равно0YИксзнак равно0

р2р2р2

Вывод: НЕ ОСТАВЛЯЙТЕ ПЕРЕКЛЮЧЕНИЕ ИЗ МОДЕЛИ (если только вы действительно не знаете, что делаете).

Иксsзнак равноvT

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.