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

Założenia · 9 min czytania
Ilustracja do artykułu: Współliniowość w regresji - VIF i tolerancja: progi, przykład i co zrobić
W skrócie: współliniowość to silne powiązanie predyktorów, przez które model nie umie rozdzielić ich wpływu. Mierzysz ją VIF = 1 / (1 - R²) z regresji predyktora na pozostałe i tolerancją równą 1 / VIF. Progi 5 i 10 są umowne, a już VIF około 3 potrafi zasłonić ważne zmienne w małej próbie. Gdy VIF jest wysoki, połącz dublujące się zmienne w wskaźnik, usuń jedną z powodów merytorycznych albo interpretuj je łącznie, a przy interakcjach wycentruj zmienne.

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:

Rj2TolerancjaVIFBłąd standardowy B większy
0,500,5021,41 raza
0,800,2052,24 raza
0,900,10103,16 raza
0,950,05204,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).

PredyktorBSEpTolerancjaVIF
Stres0,090,090,3150,293,45
Lęk0,070,050,1650,293,47
Aktywność fizyczna-0,310,170,0690,991,01
Wiek-0,040,110,6990,991,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, zaznacz Collinearity 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 Checks i zaznacz Collinearity statistics.
  • R: car::vif(model) po dopasowaniu modelu funkcją lm() lub glm().

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.

MiaraCo pokazujeTypowa reguła
Korelacje predyktorówZwiązek par zmiennych|r| powyżej około 0,8 do sprawdzenia
TolerancjaWariancja predyktora niewyjaśniona przez pozostałePoniżej 0,2 ostrzeżenie, poniżej 0,1 problem
VIFIle razy rośnie wariancja BPowyżej 5 ostrzeżenie, powyżej 10 problem
Wskaźnik uwarunkowaniaWspółliniowość całego zestawu predyktorówPowyż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ć

  1. 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.
  2. 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.
  3. 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ć.
  4. Wycentruj zmienne, jeśli współliniowość wynika z interakcji lub członu kwadratowego (opis niżej).
  5. 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?
Najczęściej przyjmuje się, że VIF powyżej 10 oznacza poważną współliniowość, a powyżej 5 sygnał ostrzegawczy. To umowne reguły: w małych próbach już VIF około 3 może wyraźnie poszerzyć przedziały ufności. Podaj w pracy wartości VIF i próg, do którego się odwołujesz.
Co to jest tolerancja w regresji?
Tolerancja to 1 - R² z regresji danego predyktora na pozostałe predyktory, czyli część jego wariancji, której nie wyjaśniają inne zmienne. Jest odwrotnością VIF. Tolerancja poniżej 0,1 odpowiada VIF powyżej 10.
Co zrobić, gdy VIF jest powyżej 10?
Sprawdź, które predyktory są ze sobą powiązane. Jeśli mierzą to samo, połącz je w jeden wskaźnik albo usuń jeden z powodów merytorycznych. Jeśli wysoki VIF dotyczy interakcji lub członu kwadratowego, wycentruj zmienne przed policzeniem iloczynu.
Jak sprawdzić współliniowość w SPSS?
W oknie regresji liniowej wybierz Statistics i zaznacz Collinearity diagnostics. Tolerancja i VIF pojawią się w tabeli Coefficients. Przy regresji logistycznej uruchom regresję liniową z tymi samymi predyktorami i odczytaj VIF z niej.
Czy współliniowość wpływa na R²?
Nie. R², test F i przewidywania modelu pozostają poprawne. Współliniowość utrudnia jedynie ocenę wkładu poszczególnych predyktorów, bo zawyża błędy standardowe ich współczynników.
Źródła:
  • 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.
Policzymy to za Ciebie
Test dobrany do hipotez, tabele, wykresy i opis w standardzie APA.
Wyceń analizę
Artykuł ma charakter edukacyjny. W razie wątpliwości skorzystaj z kreatora doboru analiz lub napisz do statystyka.