Pytanie:
Przy wymuszaniu przecięcia z 0 w regresji liniowej jest dopuszczalne / wskazane
Zack Newsham
2014-06-10 00:12:36 UTC
view on stackexchange narkive permalink

Mam model regresji do oszacowania czasu zakończenia procesu w oparciu o różne czynniki. Mam 200 prób tych procesów, w których 9 mierzonych czynników różni się znacznie. Kiedy wykonuję regresję liniową 9 czynników (i wszystkich interakcji 2 i 3 czynnikowych), bez wyraźnego przecięcia, otrzymuję skorygowaną wartość R $ {^ 2} $ 0,915, jeśli wymuszę przecięcie na 0, otrzymam skorygowaną R $ {^ 2} $ 0,953.

Moim zamiarem wymuszenia na 0 punkcie przechwycenia było zapewnienie, że próby, które zakończyły się w bardzo krótkim czasie (< 1 sekunda) nie dały prognozy < 0. Ustawienie punktu przecięcia na 0 nie pomogło z tym.

Więc moje pytanie jest potrójne. 1) Kiedy jest dopuszczalne / wskazane wymuszenie punktu przecięcia z osią? 2) Czy poprawiony R $ {^ 2} $ faktycznie oznacza, że ​​model jest lepiej dopasowany (wykres dopasowania i pomiaru wyglądał lepiej)? 3) Czy istnieje sposób upewnienia się, że wszystkie dopasowane wartości są> 0?

Będziesz także chciał przeczytać: [Usunięcie statystycznie istotnego wzmocnienia terminu przecięcia z punktem przecięcia z osią R ^ 2 $ w modelu liniowym] (http://stats.stackexchange.com/q/26176/).
Istnieje kilka głosów na zamknięcie tego wątku jako duplikatu jednego z wymienionych w poprzednich komentarzach. Te głosy są ważne na podstawie (1), a nawet (2), ale (3) wygląda na nowe. Dlatego chciałbym zasugerować, aby respondenci skupili się na trzecim pytaniu.
Przepraszam za skrzyżowanie z innymi pytaniami, jednak stwierdziłem, że pytania, których szukałem, w tym jedno powiązane, nie dotyczyły szczegółów, takich jak gdzie oczekujesz zawsze pozytywnej wartości, cieszę się, że skupiłem się na punkt trzeci, bo to jest najważniejsze.
Osiem odpowiedzi:
Glen_b
2014-06-10 04:06:55 UTC
view on stackexchange narkive permalink

To niezwykłe, że nie pasuje do przechwycenia i generalnie niewskazane - należy to zrobić tylko wtedy, gdy wiesz, że jest to 0, ale myślę, że (i fakt, że nie możesz porównać $ R ^ 2 $ dla dopasowania z i bez punkt przecięcia z osią) jest już dobrze i naprawdę pokryty (jeśli być może trochę zawyżony w przypadku przecięcia z osią zerową); Chcę skupić się na Twoim głównym problemie, którym jest to, że potrzebujesz funkcji dopasowanej, aby była pozytywna, chociaż w części mojej odpowiedzi wracam do problemu z punktem zerowym.

Najlepszy sposób, aby uzyskać zawsze dopasowanie pozytywne to dopasowanie czegoś, co zawsze będzie pozytywne; po części zależy to od funkcji, które należy dopasować.

Jeśli model liniowy był w dużej mierze wygodnym modelem (a nie pochodził ze znanej zależności funkcjonalnej, która mogłaby wynikać np. z modelu fizycznego), zamiast tego może pracować z czasem logowania; wtedy dopasowany model ma wartość dodatnią w $ t $. Alternatywnie możesz pracować z szybkością, a nie z czasem - ale wtedy przy dopasowaniach liniowych może pojawić się problem z małymi prędkościami (długimi czasami).

Jeśli wiesz, że Twoja odpowiedź jest liniowa w predyktorach, możesz spróbować dopasować regresję ograniczoną, ale w przypadku regresji wielokrotnej dokładna forma, której potrzebujesz, będzie zależeć od konkretnych x (nie ma jednego liniowego ograniczenia, które zadziała dla wszystkich $ x $), więc jest to bit ad-hoc.

Możesz również spojrzeć na GLM, które można wykorzystać do dopasowania modeli, które mają nieujemne dopasowane wartości i mogą (jeśli jest to wymagane) nawet mieć $ E (Y) = X \ beta $ .

Na przykład, można dopasować gamma GLM z łączem tożsamości. Nie powinieneś skończyć z ujemną dopasowaną wartością dla któregokolwiek z twoich x (ale w niektórych przypadkach możesz mieć problemy ze zbieżnością, jeśli wymusisz łącze tożsamości tam, gdzie naprawdę nie będzie pasować).

Oto przykład przykład: zbiór danych cars w R, który rejestruje prędkość i drogę hamowania (odpowiedź).

enter image description here

Można by powiedzieć "och, ale odległość dla prędkości 0 jest gwarantowana, więc powinniśmy pominąć punkt przecięcia", ale problem z tym rozumowaniem polega na tym, że model jest błędnie określony na kilka sposobów, a argument ten działa tylko dobrze wystarczy, gdy model nie jest błędnie określony - model liniowy z punktem przecięcia zerowym nie pasuje w tym przypadku w ogóle, podczas gdy model z punktem przecięcia jest w rzeczywistości w połowie przyzwoitym przybliżeniem, mimo że nie jest w rzeczywistości „poprawny”.

Problem polega na tym, że jeśli dopasujesz zwykłą regresję liniową, dopasowany punkt przecięcia z osią jest w dużym stopniu ujemny, co powoduje, że dopasowane wartości są ujemne.

Niebieska linia to dopasowanie OLS; dopasowane wartości dla najmniejszych wartości x w zestawie danych są ujemne. Czerwona linia to gamma GLM z łączem identyfikacyjnym - mając ujemny punkt przecięcia, ma tylko dodatnie dopasowane wartości. Ten model ma wariancję proporcjonalną do średniej, więc jeśli okaże się, że dane są bardziej rozłożone w miarę wydłużania się oczekiwanego czasu, może być szczególnie odpowiedni.

Jest to więc jedno z możliwych alternatywnych rozwiązań, które warto wypróbować. To prawie tak proste, jak dopasowanie regresji w R.

Jeśli nie potrzebujesz łącza tożsamości, możesz rozważyć inne funkcje łączenia, takie jak łącze dziennika i łącze odwrotne, które odnoszą się do transformacji już omówione, ale bez potrzeby rzeczywistej transformacji.


Ponieważ ludzie zwykle o to proszą, oto kod mojej działki:

  plot (dist ~ speed, data = cars, xlim = c (0, 30), ylim = c (-5,120)) abline (h = 0, v = 0, col = 8) abline (glm (dist ~ speed, data = cars, family = Gamma (link = identity)), col = 2 , lty = 2) abline (lm (dist ~ speed, data = cars), col = 4, lty = 2)  

(Elipsa została później dodana ręcznie, chociaż jest to dość łatwe do zrobienia również w R)

Dzięki za odpowiedź, jestem trochę zdezorientowany co do celu funkcji Gamma i abline, kiedy próbuję uruchomić to samo polecenie na moich danych: „używając tylko pierwszych dwóch ze 130 współczynników regresji”. Nie powinienem, że mój model jest bardziej skomplikowany niż "odległość ~ prędkość", jest 9 czynników i obecnie używam wszystkich interakcji 3-czynnikowych. Kiedy próbuję wykreślić funkcję abline, po prostu otrzymuję pionową linię na 0. Próbowałem uprościć model (i używając łącza dziennika) i otrzymałem również prawie poziomą linię, jak zinterpretować te dane za pomocą powyższej metody?
`abline` rysuje linię, gdy określisz nachylenie (a) i punkt przecięcia (b). Jeśli podasz dopasowany prosty model liniowy, wyciągnie je z tego. Kiedy masz wiele predyktorów *, nie możesz narysować linii * (jak by to działało? Nie dopasowałeś linii). Zilustrowałem moją sugestię użycia GLM, abyś mógł zobaczyć, co robi, bez podawania przepisu do naśladowania. Nie wiem, w jaki sposób uporządkowane są Twoje dane, więc trudno jest doradzić, co poszło nie tak z dopasowaniem. Dopasowanie GLM będzie prawie tak proste, jak dopasowanie regresji w prawie każdym pakiecie statystyk, jeśli jesteś przyzwyczajony do czegoś innego, użyj go.
kjetil b halvorsen
2014-06-10 00:30:50 UTC
view on stackexchange narkive permalink

Krótka odpowiedź na pytanie w tytule: (prawie) NIGDY. W modelu regresji liniowej $$ y = \ alpha + \ beta x + \ epsilon $$ , jeśli ustawisz $ \ alpha = 0 $ , to mówisz, że WIESZ, że oczekiwana wartość $ y $ , biorąc pod uwagę $ x = 0 $ wynosi zero. Prawie nigdy tego nie wiesz.

$ R ^ 2 $ staje się wyższy bez punktu przecięcia, nie dlatego, że model jest lepszy, ale dlatego, że definicja $ R ^ 2 $ używany jest kolejnym! $ R ^ 2 $ jest wyrażeniem porównania oszacowanego modelu z pewnym modelem standardowym, wyrażonym jako zmniejszenie sumy kwadratów w porównaniu do sumy kwadratów z modelem standardowym . W modelu z punktem przecięcia z osią porównawczą suma kwadratów znajduje się wokół średniej. Bez przecięcia jest to około zera! Ta ostatnia jest zwykle dużo wyższa, więc łatwiej jest uzyskać dużą redukcję sumy kwadratów.

Wniosek: NIE ZOSTAWIAJ PRZECHWYTANIA Z MODELU (chyba że naprawdę, naprawdę wiesz, co robisz ).

EDYCJA (z komentarzy poniżej): Jeden wyjątek jest wspomniany w innym miejscu w komentarzach (ale to tylko pozornie wyjątek, stały wektor 1 znajduje się w przestrzeni kolumn macierzy projektu $ X $ . W przeciwnym razie, na przykład relacje fizyczne $ s = vt $ , gdzie nie ma stałej. Ale nawet wtedy, jeśli model jest tylko przybliżony (prędkość nie jest tak naprawdę stała), lepiej pozostawić stałą, nawet jeśli nie można jej zinterpretować. W przypadku modeli nieliniowych staje się to większym problemem.

Ale z pewnością posiadanie danych stwierdzających, że gdy 9 czynników jest takich, rzeczywisty czas wynosi 0 (lub jest mu bliski) oznacza, że ​​jestem dość pewien, że gdy X = 0, Y = 0?
W twoim przypadku wiesz, że czasy ukończenia nie mogą być ujemne, tak. Więc model liniowy może nie jest odpowiedni? Wypróbuj inny model, może analizę przeżycia lub jakiś GLM z rozkładem na dodatniej linii rzeczywistej (rozkład Gamma, rozkład Weibulla ...)
Jeden wyjątek jest wymieniony w innym miejscu w komentarzach (ale to tylko pozornie wyjątek, wektor constamt 1 znajduje się w przestrzeni kolumnowej macierzy regresora $ X $. W przeciwnym razie, na przykład relacje fizyczne $ s = vt $, gdzie nie ma stałej Ale nawet wtedy, jeśli model jest tylko przybliżony (prędkość nie jest tak naprawdę stała), lepiej pozostawić stałą, nawet jeśli nie można jej zinterpretować. W przypadku modeli nieliniowych staje się to większym problemem.
Obliczając R ^ 2, model porównawczy zawsze znajduje się w pobliżu średniej, nigdy wokół zera, niezależnie od tego, czy model zawiera punkt przecięcia, czy nie.Dlatego twój argument o łatwiejszej redukcji błędów jest fałszywy.
AdamO
2014-06-10 00:27:24 UTC
view on stackexchange narkive permalink

1) Tłumienie punktu przecięcia z osią nigdy nie jest dopuszczalne, z wyjątkiem bardzo rzadkich typów modeli DiD, w których wynik i predyktory są faktycznie obliczonymi różnicami między grupami (nie dotyczy to Ciebie).

2). Heck nie, nie ma. Oznacza to, że możesz mieć wyższy stopień trafności wewnętrznej (np. Model pasuje do danych), ale prawdopodobnie niski stopień trafności zewnętrznej (np. Model byłby słabo pasujące do danych eksperymentalnych uzyskanych w podobnych warunkach). Generalnie jest to zła rzecz.

3) Zniesienie punktu przecięcia z osią niekoniecznie to spowoduje, ale zakładam, że predyktor miał wartość ciągłą. W wielu sytuacjach czasy zakończenia procesu są analizowane przy użyciu transformacji odwrotnej, np. $ x = 1 / t $ gdzie $ t $ to czas potrzebny do zakończenia procesu. Odwrotność średniej danych przekształconych odwrotnie nazywa się średnią harmoniczną i przedstawia średni całkowity czas wykonania zadania.

$$ \ mbox {HM} = \ frac {1} {\ mathbb {E} (x)} = \ frac {1} {\ mathbb {E} (1 / t)} $$

Możesz również użyć parametrycznych modeli wykładniczych lub modeli gamma lub weibulla czasu do zdarzenia, które są typami modeli zbudowanych specjalnie do przewidywania czasów ukończenia. Dadzą one wyniki bardzo podobne do wyników przekształconych odwrotnie.

Myślę, że to trochę mocne stwierdzenie, że nie można ** nigdy ** stłumić przechwycenia. A co jeśli chcesz / musisz zakodować grupy fikcyjne $ k $ zamiast bardziej zwykłych $ k-1 $?
W podanym przykładzie nadal szacujesz efekty $ k $. Pytanie OP dotyczy efektów 2 kontra 1 (punkt przecięcia * avec * w porównaniu z punktem przecięcia * sans *, predyktor ciągły).
user777: Tak, ale to działa tylko w bardzo szczególnych przypadkach. Na przykład, jeśli masz klasyfikacje krzyżowe na dwie grupy, twoja sztuczka nie działa.
@AdamO Czy naprawdę mówisz, że jedyny wyjątek, który wymieniasz w (1), jest jedynym możliwym wyjątkiem od „nigdy”, czy masz na myśli, że jest to jedyny, o którym wiesz?
@Glen_b Naprawdę nie przychodzi mi do głowy żaden dobry przykład, kiedy specyfikacja przechwycenia przez pochodzenie ma sens. Nawet w bardzo praktycznych sytuacjach, takich jak analiza drogi hamowania lub składu chemicznego po nałożeniu katalizatora na jakiś substrat, punkty przecięcia pasujące do niezerowych początków mogą pomóc w rozwiązaniu błędów pomiaru, problemów z kalibracją, problemów z synchronizacją itp. lata, kiedy przeprowadzałem analizy, zawsze widziałem powód, by dopasowywać punkty przecięcia, nawet jeśli wartości, które przyjmują, nie mają sensu.
Wygląda na to, że nie mamy wtedy żadnej merytorycznej różnicy zdań.
@Glen_b pomyśl o tym, jeśli punkt przecięcia przecina się z wartościami, które są niezgodne z nauką o problemie i ma 95% CI, które * nie * obejmują wartości, które są * zgodne * z nauką o problemie, które * nachylenie * robią bardziej ufasz? Ta, na którą nie ma wpływu faktyczna wartość punktu przecięcia z osią (ponieważ jest szacowana) lub ta, która jest wypaczana przez nierealistyczną wartość, która nigdy nie została zmierzona i ekstrapolowana w oparciu o rozumowanie i silne założenia, że ​​prosta musi się przecinać (0, 0 ).
@Glen_b Zgadzam się. Myślę, że w tej sprawie są różne denominacje, po prostu jestem szczególnie gorliwy :)
PA6OTA
2014-06-10 09:10:38 UTC
view on stackexchange narkive permalink

1) Wymuszenie 0 $ przechwycenia $ jest zalecane, jeśli wiesz na pewno, że jest to 0. Wszystko, co wiesz a priori , powinieneś użyć w swoim modelu.

Jeden przykładem jest model Hubble'a ekspansji Wszechświata (używany w Statistical Sleuth ):

$$ \ mbox {Galaxy Speed} = k (\ mbox {Distance from Earth}) $$

Ten model jest dość prymitywny, ale wykorzystuje 0 punkt przecięcia jako konsekwencję teorii Wielkiego Wybuchu: w chwili $ 0 $ cała sprawa jest w jednym miejscu.

Z drugiej model, który opisujesz, będzie prawdopodobnie wymagał wyrazu przecięcia.

2) Możesz poprawić lub nie $ R ^ 2_ {adj} $, albo możesz zaakceptować hipotezę zerową do testu dla punkt przecięcia wynosi 0, ale oba te argumenty nie są powodem do usunięcia tego terminu.

3) Aby upewnić się, że odpowiedzi są pozytywne, czasami można przekształcić zmienną odpowiedzi. Log lub sqrt mogą działać w zależności od twoich danych, oczywiście będziesz musiał sprawdzić pozostałe.

To bardzo szczególny przypadek!Większość aplikacji nie jest taka.
Christoph Hanck
2015-12-29 18:31:18 UTC
view on stackexchange narkive permalink

Opuszczenie punktu przecięcia z osią w drugim etapie testu kointegracji Engle / Granger ma sens (a właściwie jest konieczne). Test najpierw szacuje kandydata na związek kointegrujący poprzez regresję pewnej zmiennej zależnej na stałej (plus czasami trend) i innych zmiennych niestacjonarnych.

W drugim etapie reszty tej regresji są testowane pod kątem pierwiastka jednostkowego, aby sprawdzić, czy błąd faktycznie reprezentuje zależność równowagi. Ponieważ regresja pierwszego stopnia zawiera stałą, reszty są z konstrukcji średniej równe zero. W związku z tym drugi etap testu pierwiastka jednostkowego nie wymaga stałej i w rzeczywistości rozkład graniczny dla tego testu pierwiastka jednostkowego jest wyprowadzany przy założeniu, że ta stała rzeczywiście nie została dopasowana.

IrishStat
2014-06-10 14:38:07 UTC
view on stackexchange narkive permalink

Jedynym sposobem, w jaki wiem, aby ograniczyć wszystkie dopasowane wartości, aby były większe od zera, jest użycie podejścia programowania liniowego i określenie tego jako ograniczenia.

Bynajmniej. Regresja Poissona i każdy uogólniony model liniowy z połączeniem logarytmicznym zwróci wszystkie dodatnie przewidywane wartości. @Glen_b już o tym wspomniał w swojej odpowiedzi.
@Nick ... Na pewno ... Ponieważ zmienne Poissona są ograniczone przez 0, tak jest. Dzięki ...
Ricardo Marques
2016-09-23 21:04:13 UTC
view on stackexchange narkive permalink

Rzeczywisty problem polega na tym, że regresja liniowa wymuszająca punkt przecięcia z osią = 0 jest matematyczną niespójnością, której nigdy nie należy robić:

Jest jasne, że jeśli y = a + bx, to średnia (y) = a + średnia (x), i rzeczywiście możemy łatwo zdać sobie sprawę, że kiedy szacujemy aib za pomocą estymacji liniowej w Excelu, otrzymujemy powyższą zależność

Jeśli jednak ustalimy arbitralnie a = 0, to koniecznie b = średnia (y) / średnia (x). Ale to jest niespójne z algorytmem minimalnych kwadratów. Rzeczywiście, możesz łatwo zdać sobie sprawę, że gdy szacujesz b za pomocą estymacji liniowej w programie Excel, powyższa zależność nie jest spełniona

Twój argument wydaje się rozpadać, gdy w rzeczywistości jest tak, że $ a = 0 $, bo wtedy nie ma „matematycznej niespójności”, ustawienie $ a $ na zero nie jest arbitralne i nie ma problemu z metodą najmniejszych kwadratów.
Curious
2014-06-10 17:29:41 UTC
view on stackexchange narkive permalink

Ma to całkiem sens w modelach ze zmienną jakościową. W tym przypadku usunięcie przecięcia daje w wyniku równoważny model z tylko inną parametryzacją:

  > data (mtcars) > mtcars $ cyl_factor <- as.factor (mtcars $) > podsumowanie ( lm (mpg ~ cyl_factor, data = mtcars)) Call: lm (formula = mpg ~ cyl_factor, data = mtcars) Błąd wartość t Pr (> | t |) (Punkt przecięcia) 26,6636 0,9718 27,437 < 2e-16 *** współczynnik_cyl6 -6,9208 1,5583 -4,441 0,000119 *** współczynnik_cyl8 -11,5636 1,2986 -8,905 8,57e-10 *** --- Signif . kody: 0 '***' 0,001 '**' 0,01 '*' 0,05 '.' 0,1 '' 1 Resztkowy błąd standardowy: 3,223 przy 29 stopniach swobody Wielokrotne R-kwadrat: 0,7325, skorygowane R-kwadrat: 0,714 Statystyka F: 39,7 na 2 i 29 DF, wartość p: 4,979e-09 Podsumowanie > (lm (mpg ~ 0 + cyl_factor, dane = mtcars)) Zadzwoń: lm (wzór = mpg ~ 0 + cyl_factor, dane = mtcars) Mediana 3Q Max -5,2636 -1,8357 0,0286 1,3893 7,2364 Współczynniki: Oszacowanie Std. Błąd wartość t Pr (> | t |) cyl_factor4 26,6636 0,9718 27,44 < 2e-16 *** cyl_factor6 19,7429 1,2182 16,21 4,49e-16 *** cyl_factor8 15,1000 0,8614 17,53 < 2e-16 *** --- Signifblt 2e-16. kody: 0 '***' 0,001 '**' 0,01 '*' 0,05 '.' 0,1 '' 1 Resztkowy błąd standardowy: 3,223 przy 29 stopniach swobody Wielokrotne R-kwadrat: 0,9785, skorygowane R-kwadrat: 0,9763 Statystyka F: 440,9 na 3 i 29 DF, wartość p: < 2.2e-16  

Drugi przykład w rzeczywistości skutkuje tym, że zmienna kategorialna jest punktem przecięcia charakterystycznym dla kategorii, więc w rzeczywistości punkt przecięcia nie jest właściwie nie został usunięty, po prostu tak się wydaje.

Czy to naprawdę odnosi się do pytania? Nie wymuszasz po prostu punktu przecięcia na zero w drugim modelu, ale zachęcasz R do używania kodowania sumy do zera zamiast kodowania na poziomie odniesienia dla predyktora jakościowego.
W rzeczywistości jest to odwrotne: „Nie ma to też często sensu w modelach ze współzmiennymi kategorycznymi: jeśli spróbujesz kodu, o którym myślisz, że wymusiłby punkt przecięcia z osią zerową, R założy, że chcesz po prostu zmienić parametry modelu”. miałoby rację.
Po prostu bawcie się słowami. Zwykłe rozumienie „0 +„ lub „-1” w „lm” polega na usunięciu * global * przecięcia z osią, co w rzeczywistości robi. Przy okazji, mówię dokładnie to samo, co oboje w ostatnim zdaniu mojej odpowiedzi, więc nie rozumiem, dlaczego ktoś przegłosował.
(Jestem jedną osobą i tym, który przegrał). „+ 0” może zrobić ** dwie zupełnie różne rzeczy **. Jeśli ręcznie zakodujesz manekiny $ x_1 $ i $ x_2 $ dla `cyl` na 0 lub 1, to użycie * wymusi * punkt przecięcia z osią i dopasuje model dwuparametrowy $ \ nazwa operatora {E} Y = \ beta_1 x_1 + \ beta_2 x_2 $. Ale jeśli powiedziano R, że parametr `cyl_factor` jest kategoryczny, staje się sprytny i pasuje do opisanego przez ciebie modelu trójparametrowego. Zatem „usunięcie punktu przecięcia z osią” jest niejednoznaczne. Teraz ja to wszystko wiem i ty to wszystko wiesz, ale IMO odpowiedź jest niejasna - potencjalnie myląca - dla kogoś, kto tego nie wie.


To pytanie i odpowiedź zostało automatycznie przetłumaczone z języka angielskiego.Oryginalna treść jest dostępna na stackexchange, za co dziękujemy za licencję cc by-sa 3.0, w ramach której jest rozpowszechniana.
Loading...