Współliniowość w regresji - VIF i tolerancja: progi, przykład i co zrobić

Współliniowość (inaczej wielowspółliniowość) to sytuacja, w której predyktory w modelu regresji są ze sobą tak silnie powiązane, że model nie potrafi rozdzielić ich wpływu na zmienną zależną. Najczęściej mierzy się ją współczynnikiem inflacji wariancji VIF i tolerancją. Współliniowość nie psuje modelu jako całości, ale zawyża błędy standardowe współczynników, przez co ważne predyktory mogą wyjść nieistotne, a ich znaki i wartości stają się niestabilne.
W tym wpisie znajdziesz wzór i interpretację VIF, wyjaśnienie, skąd biorą się progi 5 i 10 i dlaczego nie są granicą bezpieczeństwa, przykład liczbowy, w którym dwa ważne predyktory „znikają” przy VIF zaledwie 3,5, oraz pięć sposobów postępowania. Pozostałe założenia modelu opisuje wpis regresja liniowa: które założenia sprawdzić.
Na czym polega współliniowość i dlaczego szkodzi
Współczynnik B w regresji wielorakiej mówi, o ile zmienia się wynik, gdy jeden predyktor rośnie, a pozostałe stoją w miejscu. Jeśli dwa predyktory prawie zawsze rosną razem (np. poziom stresu i lęku), w danych jest mało osób, u których jeden jest wysoki, a drugi niski. Model ma wtedy niewiele informacji, żeby ocenić efekt każdego z osobna, i ta niepewność trafia do błędów standardowych.
Skutki współliniowości są dość specyficzne:
- Błędy standardowe B rosną, przedziały ufności się poszerzają, a p rośnie. Predyktor ważny w korelacji prostej może być w modelu nieistotny.
- Współczynniki zmieniają się mocno po dodaniu lub usunięciu jednej zmiennej albo kilku osób; zdarza się też zmiana znaku.
- R2, test F i przewidywania modelu pozostają w porządku. Współliniowość nie obciąża też samych oszacowań: przeciętnie są trafne, tylko bardzo nieprecyzyjne.
Dlatego współliniowość jest problemem wtedy, gdy chcesz interpretować wkład poszczególnych predyktorów, czyli w większości prac dyplomowych. Gdy interesuje Cię tylko przewidywanie, ma niewielkie znaczenie.
Mechanizm dobrze widać na kwadratach korelacji semicząstkowych. Każdy predyktor ma część wariancji wyniku, którą wyjaśnia tylko on, i część wspólną z innymi predyktorami. Test t dla współczynnika B ocenia wyłącznie część unikalną. Gdy dwa predyktory dzielą prawie wszystko, ich części unikalne są małe i oba testy wypadają słabo, choć razem wyjaśniają sporo. Jak odczytać te udziały z wydruku, pokazujemy we wpisie regresja wieloraka: interpretacja wyników.
Jedna sytuacja zwykle nie wymaga działania: wysoki VIF dotyczy tylko zmiennych kontrolnych (np. wieku i stażu pracy), a predyktor, o który pyta hipoteza, ma niski VIF. Jego współczynnik i przedział ufności pozostają wtedy wiarygodne, a zmienne kontrolne i tak nie są interpretowane osobno.
VIF i tolerancja: wzór i interpretacja
Dla każdego predyktora Xj liczy się pomocniczą regresję, w której Xj jest zmienną zależną, a pozostałe predyktory wyjaśniającymi. Z tej regresji bierze się Rj2:
Tolerancjaj = 1 - Rj2
VIFj = 1 / (1 - Rj2) = 1 / tolerancjaj
Tolerancja to część wariancji predyktora, której nie wyjaśniają pozostałe predyktory, czyli „własna” informacja, z której model może skorzystać. VIF mówi, ile razy wariancja współczynnika B jest większa, niż byłaby, gdyby predyktor był nieskorelowany z pozostałymi. Błąd standardowy rośnie o pierwiastek z VIF:
| Rj2 | Tolerancja | VIF | Błąd standardowy B większy |
|---|---|---|---|
| 0,50 | 0,50 | 2 | 1,41 raza |
| 0,80 | 0,20 | 5 | 2,24 raza |
| 0,90 | 0,10 | 10 | 3,16 raza |
| 0,95 | 0,05 | 20 | 4,47 raza |
VIF = 1 oznacza brak związku z pozostałymi predyktorami. VIF = 5 oznacza, że błąd standardowy jest ponad dwukrotnie większy, niż mógłby być, a przedział ufności odpowiednio szerszy. Przy dwóch predyktorach VIF zależy tylko od ich korelacji: r = 0,7 daje VIF około 2, r = 0,9 daje VIF około 5,3.
Jaki VIF jest dopuszczalny: progi 5 i 10
W podręcznikach i artykułach najczęściej spotkasz dwie reguły: VIF powyżej 10 (tolerancja poniżej 0,1) to poważna współliniowość, a VIF powyżej 5 (tolerancja poniżej 0,2) to sygnał ostrzegawczy. Obie są umowne. O'Brien (2007) pokazał, że ten sam VIF może być nieszkodliwy w dużej próbie z silnymi efektami i bardzo szkodliwy w małej próbie ze słabymi efektami, bo o szerokości przedziału ufności decyduje też liczebność i wariancja reszt. Wysoki VIF sam w sobie nie unieważnia wyników, a niski nie gwarantuje, że współliniowość niczego nie zasłania.
Praktyczna wskazówka do pracy: podaj VIF dla wszystkich predyktorów, odwołaj się do progu 5 lub 10 jako konwencji, a przy wartościach powyżej 2-3 przyjrzyj się, czy szerokie przedziały ufności nie wynikają właśnie ze współliniowości. Przykład poniżej pokazuje, dlaczego.
Przykład: dwa ważne predyktory znikają przy VIF 3,5
Przykładowe dane: 100 studentów. Zmienna zależna to jakość snu mierzona wskaźnikiem PSQI (0-21 pkt, wyżej znaczy gorzej; M = 6,03, SD = 2,71). Predyktory: stres (skala 0-40, M = 18,97, SD = 5,35), lęk (skala 20-80, M = 41,97, SD = 9,25), liczba dni z aktywnością fizyczną w tygodniu (M = 3,29, SD = 1,50) i wiek. Stres i lęk korelują ze sobą na poziomie r = 0,84, a każdy z nich koreluje z PSQI na poziomie 0,37 (p < 0,001).
| Predyktor | B | SE | p | Tolerancja | VIF |
|---|---|---|---|---|---|
| Stres | 0,09 | 0,09 | 0,315 | 0,29 | 3,45 |
| Lęk | 0,07 | 0,05 | 0,165 | 0,29 | 3,47 |
| Aktywność fizyczna | -0,31 | 0,17 | 0,069 | 0,99 | 1,01 |
| Wiek | -0,04 | 0,11 | 0,699 | 0,99 | 1,02 |
Model jako całość jest istotny, F(4, 95) = 5,18, p < 0,001, R2 = 0,18, ale ani stres, ani lęk nie są istotne. To klasyczny objaw współliniowości. Gdy do modelu z aktywnością i wiekiem wstawisz tylko stres, jego współczynnik wynosi 0,19 (SE = 0,047, p < 0,001); w pełnym modelu SE rośnie do 0,087, czyli 1,85 raza, prawie dokładnie o pierwiastek z VIF (√3,45 = 1,86). Oba predyktory razem wnoszą istotną część wariancji: dodanie ich do modelu z aktywnością i wiekiem zwiększa R2 o 0,16, F(2, 95) = 9,19, p < 0,001.
Niestabilność widać też po podzieleniu próby na połowy. W pierwszych 50 osobach większy współczynnik ma lęk (0,10 wobec 0,05 dla stresu), w drugich 50 stres (0,11 wobec 0,04 dla lęku). Żaden z nich nie jest istotny w żadnej połowie. Gdybyś napisał w pracy, że „stres nie ma związku z jakością snu”, byłby to błąd interpretacyjny: dane mówią tylko, że nie da się oddzielić stresu od lęku.
Zauważ, że VIF 3,45 jest daleko poniżej obu popularnych progów. Przy 100 osobach i umiarkowanym efekcie wystarczyło to, żeby zasłonić oba predyktory.
Jak sprawdzić współliniowość w SPSS, jamovi i R
- SPSS:
Analyze > Regression > Linear > Statistics, zaznaczCollinearity diagnostics. Tolerancja i VIF pojawią się w ostatnich kolumnach tabeli Coefficients, a osobna tabela Collinearity Diagnostics pokaże wartości własne i wskaźniki uwarunkowania. - jamovi: w oknie Linear Regression rozwiń
Assumption Checksi zaznaczCollinearity statistics. - R:
car::vif(model)po dopasowaniu modelu funkcjąlm()lubglm().
Zacznij jednak od macierzy korelacji predyktorów. Korelacja powyżej około 0,8 między dwoma predyktorami to sygnał, że VIF będzie podwyższony. Korelacje parami nie wykryją natomiast sytuacji, w której predyktor jest kombinacją kilku innych (np. suma podskal wstawiona razem z podskalami), dlatego VIF jest pewniejszy.
| Miara | Co pokazuje | Typowa reguła |
|---|---|---|
| Korelacje predyktorów | Związek par zmiennych | |r| powyżej około 0,8 do sprawdzenia |
| Tolerancja | Wariancja predyktora niewyjaśniona przez pozostałe | Poniżej 0,2 ostrzeżenie, poniżej 0,1 problem |
| VIF | Ile razy rośnie wariancja B | Powyżej 5 ostrzeżenie, powyżej 10 problem |
| Wskaźnik uwarunkowania | Współliniowość całego zestawu predyktorów | Powyżej 30 przy dużych proporcjach wariancji dwóch lub więcej zmiennych |
Wskaźnik uwarunkowania i proporcje wariancji (Belsley, Kuh i Welsch) pozwalają ustalić, które zmienne tworzą współliniowy zestaw. W pracach dyplomowych zwykle wystarcza VIF.
Wysoki VIF: co zrobić
- Połącz dublujące się zmienne w jeden wskaźnik, jeśli mierzą to samo zjawisko. W przykładzie średnia ze standaryzowanych wyników (z) stresu i lęku (wskaźnik „napięcia”) daje B = 1,13, p < 0,001, VIF = 1,01, przy tym samym R2 = 0,18. Interpretacja jest prosta: wzrost wskaźnika o 1 (czyli średnio o jedno odchylenie standardowe w obu skalach) wiąże się z gorszą jakością snu o 1,13 pkt PSQI. Jak budować takie wskaźniki, opisujemy we wpisie o liczeniu wskaźników ze skal.
- Usuń jedną ze zmiennych, ale z powodu merytorycznego (np. hipoteza dotyczy stresu, a lęk był zmienną dodatkową), a nie dlatego, że ma wyższe p.
- Zostaw obie i interpretuj je łącznie: podaj test bloku (ΔR2 z testem F) i napisz wprost, że wkładu każdej z osobna nie da się rozdzielić.
- Wycentruj zmienne, jeśli współliniowość wynika z interakcji lub członu kwadratowego (opis niżej).
- Przy wielu skorelowanych predyktorach rozważ redukcję wymiaru (analiza czynnikowa lub składowych głównych) albo regresję grzbietową. To rozwiązania dla bardziej zaawansowanych analiz i wymagają uzasadnienia w części metodologicznej.
Zwiększenie liczebności też pomaga, bo zmniejsza błędy standardowe, ale w pracy dyplomowej rzadko jest możliwe po zebraniu danych.
Współliniowość strukturalna: interakcje i zmienne zero-jedynkowe
Część współliniowości tworzysz sam, budując model. Iloczyn dwóch zmiennych (interakcja) jest zawsze silnie skorelowany z każdym z czynników. W przykładzie model ze stresem, aktywnością i ich iloczynem ma VIF 6,82, 12,59 i 19,31. Po wycentrowaniu obu zmiennych (odjęciu średniej) przed policzeniem iloczynu VIF spada do 1,04, 1,04 i 1,07, a test interakcji pozostaje identyczny. Dlatego w analizie moderacji centrowanie jest standardem. Wysoki VIF przy interakcji przed centrowaniem nie jest problemem merytorycznym.
Podobnie bywa przy zmiennych zero-jedynkowych: jeśli kategoria odniesienia jest mała, zmienne dummy jednej cechy mają podwyższony VIF między sobą. Rozwiązaniem jest wybór licznej kategorii odniesienia. Dla całej zmiennej kategorialnej niektóre programy liczą uogólniony VIF (GVIF). Gdy przypadkiem wstawisz wszystkie kategorie naraz, dostaniesz współliniowość doskonałą: program odrzuci jedną zmienną albo nie policzy modelu.
Współliniowość w regresji logistycznej i porządkowej
Współliniowość jest własnością predyktorów, a nie modelu, więc dotyczy także regresji logistycznej i regresji porządkowej. SPSS nie liczy VIF w tych procedurach, dlatego najprostsze rozwiązanie to uruchomić regresję liniową z tymi samymi predyktorami (zmienna zależna dowolna) i odczytać VIF z tabeli współczynników. W R funkcja car::vif() działa bezpośrednio na modelu glm().
Jak opisać współliniowość w pracy (APA 7)
Wystarczy jedno lub dwa zdania w części o założeniach. Gdy współliniowości nie ma:
Współliniowość predyktorów oceniono za pomocą współczynnika inflacji wariancji. Wartości VIF mieściły się w przedziale od 1,05 do 1,08, co wskazuje na brak problemu współliniowości.
Gdy wystąpiła i ją rozwiązałeś:
Stres i lęk były silnie skorelowane (r = 0,84; VIF = 3,45 i 3,47), a w modelu z oboma predyktorami żaden nie był istotny, mimo istotności modelu, F(4, 95) = 5,18, p < 0,001. Ze względu na zbieżność treściową obu zmiennych połączono je w jeden wskaźnik napięcia (średnia wyników standaryzowanych). W modelu końcowym VIF nie przekraczał 1,01.
Typowe błędy
- Uznanie, że VIF poniżej 10 (albo 5) oznacza brak jakiegokolwiek wpływu współliniowości.
- Usuwanie predyktora tylko dlatego, że jest nieistotny, bez sprawdzenia, czy nie zasłania go inna zmienna.
- Wstawianie do modelu sumy skali razem z jej podskalami albo wszystkich kategorii zmiennej jako zmiennych 0/1.
- Interpretowanie zmiany znaku B jako „odkrycia”, gdy w rzeczywistości jest objawem współliniowości.
- Brak informacji o VIF w rozdziale wyników, przez co recenzent nie wie, czy problem sprawdzono.
Tabela VIF jest częścią diagnostyki regresji liniowej dostępnej w wyliczeniu automatycznym, razem z tabelą współczynników w standardzie APA. Analizę wybierasz w kreatorze wyceny, a predyktory wskazujesz z listy kolumn po wgraniu pliku. Przy bardzo wysokim VIF raport zwraca na to uwagę; decyzja, którą zmienną zostawić lub jak połączyć zmienne, jest merytoryczna i należy do Ciebie.
Najczęstsze pytania
Jaki VIF jest dopuszczalny?
Co to jest tolerancja w regresji?
Co zrobić, gdy VIF jest powyżej 10?
Jak sprawdzić współliniowość w SPSS?
Czy współliniowość wpływa na R²?
- O'Brien, R. M. (2007). A caution regarding rules of thumb for variance inflation factors. Quality & Quantity, 41(5), 673-690. https://doi.org/10.1007/s11135-006-9018-6
- Belsley, D. A., Kuh, E., & Welsch, R. E. (1980). Regression diagnostics: Identifying influential data and sources of collinearity. Wiley.
- Bedyńska, S., & Książek, M. (2012). Statystyczny drogowskaz 3. Praktyczny przewodnik wykorzystania modeli regresji oraz równań strukturalnych. Wydawnictwo Akademickie Sedno.
- Field, A. (2018). Discovering statistics using IBM SPSS Statistics (5th ed.). SAGE.

