Kiedy można usunąć punkt przecięcia w modelu regresji liniowej?


118

Korzystam z modeli regresji liniowej i zastanawiam się, jakie są warunki do usunięcia terminu przechwycenia.

Porównując wyniki z dwóch różnych regresji, w których jedna ma przecięcie, a druga nie, zauważam, że funkcji bez przecięcia jest znacznie wyższa. Czy są pewne warunki lub założenia, których powinienem przestrzegać, aby upewnić się, że usunięcie terminu przechwytywania jest prawidłowe?R2


1
@chi dziękuję za edycję mojego pytania. czy są jakieś kwestie, które powinienem wyjaśnić lub przeredagować w przyszłych pytaniach?
analyticsPierce

3
Twoje pytanie jest dobrze określone. @chl uprzejmie poprawił formatowanie, to wszystko. Obejmował TeXifying „R ^ 2” (został przekształcony w R ^ 2 , co renderuje się jako ). $ R 2$$R2
whuber

1
Co oznaczałoby to przechwycenie w twoim modelu? Z informacji zawartych w pytaniu wynika, że ​​byłaby to oczekiwana wartość twojej odpowiedzi, gdy sqft = 0 i lotize = 0 i baths = 0. Czy to się kiedykolwiek wydarzy w rzeczywistości?
timbp

1
Zamiast y = a + b1 x1 + b2 x2 + b3x3, czy mogę pominąć?
Travis

3
Uwaga : Niektóre z tych komentarzy i odpowiedzi dotyczą zasadniczo tego samego pytania (sformułowanego w kontekście regresji cen mieszkań), które zostało połączone z tym pytaniem jako duplikat.
whuber

Odpowiedzi:


87

Najkrótsza odpowiedź: nigdy , chyba że jesteś pewien , że liniowe przybliżenie procesu generowania danych (model regresji liniowej) albo przez jakiś teoretyczny lub jakichkolwiek innych powodów jest zmuszony przejść przez początek układu współrzędnych . Jeśli nie, inne parametry regresji będą tendencyjne, nawet jeśli przechwytywanie jest statystycznie nieistotne (dziwne, ale tak jest, skonsultuj na przykład Brooks Introductory Econometrics ). Wreszcie, jak często tłumaczę moim uczniom, pozostawiając termin przechwytujący, masz pewność, że rezydualny termin jest zerowy.

W przypadku dwóch modeli potrzebujemy więcej kontekstu. Może się zdarzyć, że model liniowy nie jest tutaj odpowiedni. Na przykład najpierw musisz zalogować transformację, jeśli model jest multiplikatywny. Mając wykładniczo rosnące procesy, czasami może się zdarzyć, że dla modelu bez przecięcia jest „znacznie” wyższy.R2

Wyświetl dane, przetestuj model za pomocą testu RESET lub innego testu specyfikacji liniowej, może to pomóc sprawdzić, czy moje przypuszczenie jest prawdziwe. I budowanie modeli o najwyższym jest jedną z ostatnich właściwości statystycznych, o które naprawdę się martwię, ale miło jest przedstawić ludziom, którzy nie są tak dobrze zaznajomieni z ekonometrią (istnieje wiele brudnych sztuczek, aby ustalić determinację w pobliżu 1 :)).R2


3
-1 dla „nigdy”, patrz przykład 1 odpowiedzi Joshuasa
Curious

4
@Curious, „nigdy” nie jest napisane za pomocą „chyba że” poniżej przykłady pokazują tylko wyjątki, gdy usunięcie przechwycenia jest legalne. Jeśli nie znasz procesu generowania danych lub teorii lub nie jesteś zmuszony przejść przez źródło przez standaryzację lub inny specjalny model, zachowaj go. Przechwytywanie jest jak używanie kosza na śmieci do zbierania wszystkich zniekształceń spowodowanych przybliżeniem liniowym i innymi uproszczeniami. PS praktycznie odpowiedź pokazuje, że czytałeś najkrócej :) Bardzo dziękuję Joshua (+1) za rozszerzone przykłady.
Dmitrij Celov

3
Przegapiłeś punkt z przykładu 1 Jozuego i wydaje się, że nadal go całkowicie ignorujesz. W modelach z kowariantą jakościową usunięcie punktu przecięcia skutkuje tym samym modelem z tylko inną parametryzacją. Jest to uzasadniony przypadek, w którym można usunąć przechwycenie.
Ciekawy

2
@Curious, w przykładzie Jozuego 1, musisz dodać nową zmienną fikcyjną dla poziomu zmiennej kategorialnej, którą wcześniej uważałeś za linię bazową, a ta nowa zmienna fikcyjna przyjmie wartość przecięcia, więc NIE usuniesz przecięcia, wystarczy zmienić jego nazwę i ponownie sparametryzować pozostałe parametry zmiennej jakościowej. Dlatego też argument Dmitrija.
Rufo

59

Usunięcie przechwytywania jest innym modelem, ale istnieje wiele przykładów uzasadnionych. Dotychczasowe odpowiedzi szczegółowo omawiały przykład, w którym prawdziwym punktem przecięcia jest 0. Skoncentruję się na kilku przykładach, w których możemy być zainteresowani nietypową parametryzacją modelu.

Przykład 1: Model w stylu ANOVA. Dla zmiennych jakościowych zwykle tworzymy wektory binarne kodujące członkostwo w grupie. Standardowy model regresji jest sparametryzowany jako przechwycenie + wektory-atrapa k - 1. Punkt przecięcia koduje oczekiwaną wartość dla grupy „odniesienia” lub wektora pominiętego, a pozostałe wektory testują różnicę między każdą grupą a odniesieniem. Ale w niektórych przypadkach przydatne może być posiadanie oczekiwanej wartości każdej grupy.

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  

Przykład 2: Przypadek znormalizowanych danych. W niektórych przypadkach można pracować ze znormalizowanymi danymi. W tym przypadku punkt przecięcia ma z założenia wartość 0. Myślę, że klasycznym przykładem tego były modele lub czynniki równań strukturalnych w starym stylu, które działały tylko na macierzach kowariancji danych. W poniższym przypadku prawdopodobnie dobrym pomysłem jest i tak oszacowanie przechwytywania, aby po prostu zrezygnować z dodatkowego stopnia swobody (który tak naprawdę powinieneś był stracić, ponieważ oszacowano średnią), ale istnieje kilka sytuacji, w których konstrukcja oznacza, że ​​średnia może wynosić 0 (np. niektóre eksperymenty, w których uczestnicy przypisują oceny, ale są zmuszeni do wydawania równych pozytywów i negatywów).

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  

Przykład 3: Modele wielowymiarowe i ukryte przechwyty. Ten przykład jest podobny do pierwszego na wiele sposobów. W takim przypadku dane zostały ułożone w stos, dzięki czemu dwie różne zmienne znajdują się teraz w jednym długim wektorze. Druga zmienna koduje informacje o tym, czy wektor odpowiedzi y, należy do mpgczy disp. W takim przypadku, aby uzyskać osobne przechwytywanie dla każdego wyniku, pomijasz ogólny przechwytywanie i dołączasz oba atrapy do pomiaru. Jest to rodzaj analizy wielowymiarowej. Zwykle nie jest to wykonywane przy użyciulm()ponieważ powtórzyliście kroki i prawdopodobnie powinniście pozwolić na nonindepence. Istnieją jednak interesujące przypadki, w których jest to konieczne. Na przykład, gdy próbujesz przeprowadzić analizę mediacji z efektami losowymi, aby uzyskać pełną macierz kowariancji wariancji, potrzebujesz obu modeli oszacowanych jednocześnie, co można zrobić, łącząc dane i sprytnie wykorzystując wektory pozorne.

## 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  

Nie twierdzę, że przechwytywanie powinno być ogólnie usuwane, ale dobrze jest być elastycznym.


7
+1. Nie uważałem, że ludzie sztywno mówią „nigdy”, ale zawsze miło jest mieć inną perspektywę i jest to bardzo jasna i przemyślana odpowiedź. Witamy w CV, wspaniale będzie mieć Cię w społeczności.
gung

3
@ Gung dziękuję, masz rację. Zedytowałem ten język z mojej odpowiedzi, ponieważ uważam, że był zapalny i niepotrzebny.
Joshua

1
@Joshua: Przepraszam, że zadaję pytanie na prawie 2-letni post, ale czy są jakieś odniesienia do twojego pierwszego przykładu? Zastanawiam się nad uruchomieniem modelu bez przechwytywania na moich danych, w którym zmienna predykcyjna jest kategoryczna, i jestem zainteresowany tym, czy każdy poziom różni się znacząco od 0. Dzięki!
Alex

@Alex Każdy dobry tekst regresji powinien zrobić (rozdział 8 Applied Multiple Regression / Correlation Analysis for the Behavioural Sciences wydanie 3. zawiera to trochę) --- wystarczy, że porozmawiasz o kontrastach i jak objaśnić zmienne kategorialne w kodzie. Jednym ze sposobów myślenia o tym jest to, że szacujesz osobne przechwytywanie dla każdej grupy, a nie pomijanie przechwytywania.
Joshua

@Joshua, twój pierwszy przykład spowodował pewne zamieszanie gdzie indziej na tej stronie . Rozumiem tutaj, że sugerujesz przydatną sztuczkę, aby wyświetlić oszacowania parametrów bez potrzeby bałaganu przy dodawaniu wartości dla przechwytywania i że nie sugerujesz, że zwykłym kursem jest użycie modelu z usuniętym przechwyceniem w celu przeprowadzenia anova. W R prawie w każdym przypadku można użyć modelu z przechwyceniem, aby przeprowadzić tradycyjną anovę.
Sal Mangiafico

29

Tutaj są dobre odpowiedzi. Dwie małe rzeczy:

  1. Jeśli chodzi o wyższe po upuszczeniu przechwytywania, powinieneś przeczytać doskonałą odpowiedź przez @cardinal. (Krótko mówiąc, oprogramowanie statystyczne czasami stosuje inną definicję dla gdy punkt przecięcia jest wymuszony na 0. Tak więc raportowane dla modeli z i bez punktu przecięcia może po prostu nie być porównywalne.) R 2 R 2R2R2R2
  2. Kilka osób twierdzi, że powinieneś być pewien, że przechwycenie musi wynosić 0 (z powodów teoretycznych) przed upuszczeniem, i nie tylko, że nie jest to „znaczące”. Myślę, że to prawda, ale to nie jest cała historia. Musisz także wiedzieć, że prawdziwa funkcja generowania danych jest idealnie liniowa w całym zakresie , z którym pracujesz, aż do zera. Pamiętaj, że zawsze jest możliwe, że funkcja jest w przybliżeniu liniowa w twoich danych, ale w rzeczywistości lekko zakrzywiony. Rozsądnie jest traktować tę funkcję tak, jakby była liniowa w zakresie twoich obserwacji, nawet jeśli nie jest to do końca idealnie, ale jeśli nie jestXnawet jeśli prawdziwy punkt przecięcia wynosi 0 .

2
@AdamO odnosi się tutaj do punktu 2: dodatni współczynnik regresji liniowej , ale rozwija ideę znacznie pełniej.
gung

14

Nie powinieneś upuszczać przecięcia, bez względu na to, czy prawdopodobnie zobaczysz wszystkie zmienne objaśniające o wartości zero.

Jest to dobra odpowiedź na bardzo podobnym pytanie tutaj .

Jeśli usuniesz punkt przecięcia, wszystkie inne oszacowania staną się stronnicze. Nawet jeśli prawdziwa wartość przechwytywania wynosi w przybliżeniu zero (to wszystko, co można wyciągnąć z danych), to masz problemy z nachyleniami, jeśli wymusisz, aby było dokładnie zero.

UNLESS - mierzysz coś z bardzo wyraźnym i oczywistym modelem fizycznym, który wymaga, aby punkt przecięcia wynosił zero (np. Masz wysokość, szerokość i długość prostokątnego pryzmatu jako zmienne objaśniające, a zmienną odpowiedzi jest objętość z pewnym błędem pomiaru). Jeśli twoja zmienna odpowiedzi jest wartością domu, zdecydowanie musisz zostawić przecięcie w.


1
Czy możesz wyjaśnić, dlaczego potrzebujemy przechwytywania prognozy ceny domu? dlaczego wszystkie X miałyby zero dla każdego domu?
Elf

10

OK, więc DUŻO zmieniłeś pytanie

Możesz pominąć przechwytywanie, gdy wiesz, że to 0. To wszystko. I nie, nie możesz tego zrobić, ponieważ nie różni się znacząco od 0, musisz wiedzieć, że to 0 lub twoje reszty są stronnicze. I w tym przypadku jest to 0, więc nie zrobi to żadnej różnicy, jeśli pominiesz ... dlatego nigdy nie pomijaj.

Odkrycie, które masz przy sugeruje, że dane nie są liniowe. A biorąc pod uwagę, że miałeś obszar jako predyktor, ten konkretny prawdopodobnie nie jest liniowy. Możesz zmienić predyktor, aby to naprawić.R2


2
Co powiesz na to, kiedy chcemy przetestować kointegrację przy użyciu Engle / Granger 2-step? en.wikipedia.org/wiki/Cointegration
Jase

5

Większość modeli regresji wielokrotnej zawiera stały składnik (tj. Punkt przecięcia), ponieważ zapewnia to, że model będzie bezstronny - tj. Średnia reszt będzie dokładnie równa zero. (Współczynniki w modelu regresji są szacowane przez najmniej kwadratów - tj. Minimalizując średni błąd kwadratu. Teraz średni błąd kwadratu jest równy wariancji błędów powiększonej o kwadrat ich średniej: jest to tożsamość matematyczna. Zmiana wartość stałej w modelu zmienia średnią błędów, ale nie wpływa na wariancję, dlatego też, aby suma błędów podniesionych do kwadratu miała zostać zminimalizowana, stała musi być tak dobrana, aby średnia błędów wynosiła zero. )

W prostym modelu regresji stała reprezentuje punkt przecięcia Y linii regresji w niestandaryzowanej formie. W modelu regresji wielokrotnej stała reprezentuje wartość, która byłaby przewidywana dla zmiennej zależnej, gdyby wszystkie zmienne niezależne były jednocześnie równe zeru - sytuacja, która może nie mieć znaczenia fizycznego ani ekonomicznego. Jeśli nie jesteś szczególnie zainteresowany tym, co by się stało, gdyby wszystkie zmienne niezależne były jednocześnie równe zeru, zwykle pozostawiasz stałą w modelu niezależnie od jej istotności statystycznej. Oprócz zapewnienia, że ​​błędy w próbie są obiektywne, obecność stałej pozwala linii regresji „szukać własnego poziomu” i zapewniać najlepsze dopasowanie do danych, które mogą być tylko lokalnie liniowe.

Jednak w rzadkich przypadkach możesz chcieć wykluczyć stałą z modelu. Jest to opcja dopasowywania modelu w procedurze regresji w dowolnym pakiecie oprogramowania, i czasami jest nazywana regresją poprzez źródło lub w skrócie RTO. Zwykle dzieje się tak tylko wtedy, gdy:

  1. można sobie wyobrazić zmienne niezależne, które jednocześnie przyjmują wartość zero, i czujesz, że w tym przypadku logicznie powinno być tak, że zmienna zależna również będzie równa zero; albo
  2. stała jest zbędna z zestawem zmiennych niezależnych, których chcesz użyć.

Przykładem przypadku (1) byłby model, w którym wszystkie zmienne - zależne i niezależne - reprezentowały pierwsze różnice innych szeregów czasowych. Jeśli regresujesz pierwszą różnicę Y względem pierwszej różnicy X, bezpośrednio prognozujesz zmiany w Y jako liniową funkcję zmian w X, bez odniesienia do bieżących poziomów zmiennych. W takim przypadku uzasadnione może być (choć nie jest to wymagane) założenie, że Y powinien pozostać niezmieniony średnio za każdym razem, gdy X pozostaje niezmieniony - tj. Że Y nie powinien wykazywać tendencji wzrostowej lub spadkowej przy braku jakiejkolwiek zmiany poziom X.

Przykładem przypadku (2) może być sytuacja, w której chcesz użyć pełnego zestawu zmiennych wskaźnika sezonowego - np. Używasz danych kwartalnych i chcesz uwzględnić zmienne Q1, Q2, Q3 i Q4 reprezentujące dodatek efekty sezonowe. Zatem Q1 może wyglądać jak 1 0 0 0 1 0 0 0 ..., Q2 może wyglądać jak 0 1 0 0 0 1 0 0 ... i tak dalej. Nie można użyć wszystkich czterech i stałej w tym samym modelu, ponieważ Q1 + Q2 + Q3 + Q4 = 1 1 1 1 1 1 1 1. . . . , co jest tym samym co termin stały. Tzn. Pięć zmiennych Q1, Q2, Q3, Q4 i CONSTANT nie jest liniowo niezależnych: dowolną z nich można wyrazić jako kombinację liniową pozostałych czterech. Technicznym warunkiem wstępnym dopasowania modelu regresji liniowej jest to, że zmienne niezależne muszą być liniowo niezależne; w przeciwnym razie nie można jednoznacznie ustalić współczynników najmniejszych kwadratów,

Słowo ostrzeżenia: R-kwadrat i statystyki F nie mają tego samego znaczenia w modelu RTO jak w zwykłym modelu regresji i nie są obliczane w ten sam sposób przez wszystkie programy. Zobacz ten artykuł, aby zapoznać się z pewnymi zastrzeżeniami. Nie powinieneś próbować porównywać R-kwadrat między modelami, które zawierają i nie zawierają stałego terminu, chociaż porównanie błędu standardowego regresji jest w porządku.

Zauważ, że termin „niezależny” jest używany (co najmniej) na trzy różne sposoby w żargonie regresji: dowolną pojedynczą zmienną można nazwać zmienną niezależną, jeśli jest używana jako predyktor, a nie jako predyktor. Grupa zmiennych jest liniowo niezależna, jeśli żadnej z nich nie można wyrazić dokładnie jako liniowej kombinacji pozostałych. Mówi się, że para zmiennych jest statystycznie niezależna, jeśli są one nie tylko liniowo niezależne, ale również całkowicie nieinformacyjne względem siebie. W modelu regresji chcesz, aby zmienna zależna była statystycznie zależna od zmiennych niezależnych, które muszą być między sobą liniowo (ale niekoniecznie statystycznie) niezależne.


2
Do jakiego artykułu się odnosisz?
gung

2

Pełna rewizja moich myśli. Rzeczywiście porzucenie przechwytywania spowoduje problem z uprzedzeniem.

Czy zastanawiałeś się nad wyśrodkowaniem danych, aby przechwytywanie miało jakieś znaczenie i unikało wyjaśniania, w jaki sposób niektóre (nieuzasadnione) wartości mogą dawać wartości ujemne? Jeśli skorygujesz wszystkie trzy zmienne objaśniające, odejmując średnią sqrft, średnią wielkość i średnią wannę, wówczas punkt przecięcia będzie teraz wskazywał wartość (domu?) Ze średnią wartością sdrft, wielkości i kąpieli.

To centrowanie nie zmieni względnego związku zmiennych niezależnych. Zatem dopasowanie modelu do wyśrodkowanych danych nadal będzie uznawać kąpiele za nieistotne. Zamontuj model bez dołączonej wanny. Nadal możesz uzyskać dużą wartość p dla przechwytywania, ale należy ją uwzględnić i będziesz mieć model w postaci y = a + b (sqrft) + c (lotize).


1

Spędziłem trochę czasu, odpowiadając na podobne pytanie zadane przez kogoś innego, ale zostało zamknięte. Jest tu kilka świetnych odpowiedzi, ale odpowiedź, którą udzielam, jest nieco prostsza. Może być bardziej odpowiedni dla osób słabo rozumiejących regresję.

P1: Jak interpretować przechwytywanie w moim modelu?

W modelach regresji celem jest zminimalizowanie ilości niewyjaśnionej wariancji w zmiennej wynikowej:

y = b0 + b1⋅x + ϵ

gdzie y jest przewidywaną wartością miary wyniku (np. log_blood_hg), b0 jest przecięciem, b1 jest nachyleniem, x jest zmienną predykcyjną, a ϵ jest błędem resztkowym.

Przecięcie (b0) to przewidywana średnia wartość y, gdy wszystkie x = 0. Innymi słowy, jest to wartość wyjściowa y, zanim użyjesz zmiennych (np. Gatunków) w celu dalszego zminimalizowania lub wyjaśnienia wariancji w log_blood_hg .

Dodając nachylenie (które szacuje, jak zmienia się wzrost / spadek o jeden log_blood_hg o jeden wzrost o x, np. Gatunki), dodajemy do tego, co już wiemy o zmiennej wynikowej, która jest jej wartością bazową (tj. przechwytywanie), na podstawie zmiany innej zmiennej.

P2: Kiedy właściwe jest włączenie lub nie uwzględnienie przechwytywania, szczególnie w odniesieniu do faktu, że modele dają bardzo różne wyniki?

W przypadku prostych modeli takich jak ten naprawdę nigdy nie jest właściwe upuszczanie przechwytywania.

Modele dają różne wyniki po upuszczeniu przecięcia, ponieważ zamiast uziemiać nachylenie w wartości wyjściowej Y, jest zmuszony przejść przez początek y, który wynosi 0. Dlatego nachylenie staje się bardziej strome (tj. Mocniejsze i znaczące ), ponieważ wymusiłeś linię przez początek, a nie dlatego, że lepiej jest zminimalizować wariancję y. Innymi słowy, sztucznie stworzyłeś model, który minimalizuje wariancję y poprzez usunięcie przecięcia lub początkowego punktu uziemienia dla twojego modelu.

Są przypadki, w których właściwe jest usunięcie przecięcia - na przykład przy opisywaniu zjawiska z przecięciem 0. Możesz przeczytać o tym tutaj , a także o innych powodach, dla których usunięcie przechwycenia nie jest dobrym pomysłem.


1

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

R2R2R2

Wniosek: NIE POZOSTAWIAJ PRZESZŁOŚCI POZA MODELEM (chyba że naprawdę naprawdę wiesz, co robisz).

Xs=vt

Istnieją również specjalne modele, które pomijają przechwytywanie. Jednym z przykładów są sparowane dane, bliźniacze badania .

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.