Hoe te testen op multicollineariteit in r


Bij regressieanalyse treedt multicollineariteit op wanneer twee of meer voorspellende variabelen sterk met elkaar gecorreleerd zijn, zodat ze geen unieke of onafhankelijke informatie verschaffen in het regressiemodel.

Als de mate van correlatie tussen de voorspellende variabelen hoog genoeg is, kan dit problemen veroorzaken bij het aanpassen en interpreteren van het regressiemodel.

De eenvoudigste manier om multicollineariteit in een regressiemodel te detecteren, is door een metriek te berekenen die bekend staat als de variantie-inflatiefactor, vaak afgekort als VIF .

VIF meet de sterkte van de correlatie tussen voorspellende variabelen in een model. Er is een waarde tussen 1 en positief oneindig nodig.

We gebruiken de volgende vuistregels om VIF-waarden te interpreteren:

  • VIF = 1: Er is geen correlatie tussen een bepaalde voorspellende variabele en enige andere voorspellende variabele in het model.
  • VIF tussen 1 en 5: Er is een matige correlatie tussen een bepaalde voorspellende variabele en andere voorspellende variabelen in het model.
  • VIF > 5 : Er is een sterke correlatie tussen een bepaalde voorspellende variabele en andere voorspellende variabelen in het model.

Het volgende voorbeeld laat zien hoe u multicollineariteit in een regressiemodel in R kunt detecteren door VIF-waarden te berekenen voor elke voorspellende variabele in het model.

Voorbeeld: testen op multicollineariteit in R

Stel dat we het volgende dataframe hebben met informatie over verschillende basketbalspelers:

 #create data frame
df = data. frame (rating = c(90, 85, 82, 88, 94, 90, 76, 75, 87, 86),
                points=c(25, 20, 14, 16, 27, 20, 12, 15, 14, 19),
                assists=c(5, 7, 7, 8, 5, 7, 6, 9, 9, 5),
                rebounds=c(11, 8, 10, 6, 6, 9, 6, 10, 10, 7))

#view data frame
df

   rating points assists rebounds
1 90 25 5 11
2 85 20 7 8
3 82 14 7 10
4 88 16 8 6
5 94 27 5 6
6 90 20 7 9
7 76 12 6 6
8 75 15 9 10
9 87 14 9 10
10 86 19 5 7

Stel dat we een meervoudig lineair regressiemodel willen passen met behulp van scoring als de responsvariabele en points , assists en rebounds als de voorspellende variabelen.

Om de VIF voor elke voorspellende variabele in het model te berekenen, kunnen we de functie vive() uit het car- pakket gebruiken:

 library (car)

#define multiple linear regression model
model <- lm(rating ~ points + assists + rebounds, data=df)

#calculate the VIF for each predictor variable in the model
lively(model)

  points assists rebounds 
1.763977 1.959104 1.175030 

We kunnen de VIF-waarden zien voor elk van de voorspellende variabelen:

  • punten: 1,76
  • assists: 1.96
  • rebounds: 1.18

Omdat elk van de VIF-waarden van de voorspellende variabelen in het model dichtbij 1 ligt, is multicollineariteit geen probleem in het model.

Opmerking : Als multicollineariteit een probleem blijkt te zijn in uw model, is de snelste oplossing in de meeste gevallen het verwijderen van een of meer sterk gecorreleerde variabelen.

Dit is vaak een acceptabele oplossing omdat de variabelen die u verwijdert sowieso overbodig zijn en weinig unieke of onafhankelijke informatie aan het model toevoegen.

Aanvullende bronnen

In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende taken in R kunt uitvoeren:

Hoe meervoudige lineaire regressie uit te voeren in R
Hoe maak je een QQ-plot in R
Hoe maak je een restplot in R

Einen Kommentar hinzufügen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert