Hoe op te lossen in r: er zijn aliascoëfficiënten in het model
Een fout die je tegen kunt komen in R is:
Error in vive.default(model): there are aliased coefficients in the model
Deze fout treedt doorgaans op als er multicollineariteit bestaat in een regressiemodel. Dat wil zeggen dat twee of meer voorspellende variabelen in het model sterk (of perfect) gecorreleerd zijn.
Wanneer dit gebeurt, zeggen we dat een variabele een „alias“ is van een andere variabele, wat problemen veroorzaakt bij het aanpassen van een regressiemodel.
Het volgende voorbeeld laat zien hoe u deze fout in de praktijk kunt corrigeren.
Hoe de fout te reproduceren
Stel dat we het volgende regressiemodel in R toepassen:
#make this example reproducible
set. seeds (0)
#define data
x1 <- rnorm(100)
x2 <- rnorm(100)
x3 <- x2*3
y <- rnorm(100)
#fit regression model
model <- lm(y~x1+x2+x3)
We kunnen de vive() -functie van het autopakket gebruiken om de VIF-waarden voor elke voorspellende variabele in het model te berekenen om te bepalen of multicollineariteit een probleem is:
library (car)
#calculate VIF values for predictor variables
lively(model)
Error in vive.default(model): there are aliased coefficients in the model
We ontvangen een foutmelding waarin staat dat er aliascoëfficiënten in het model voorkomen. “
Dit vertelt ons dat twee of meer voorspellende variabelen in het model perfect gecorreleerd zijn.
Hoe u de fout kunt oplossen
Om te bepalen welke voorspellende variabelen perfect gecorreleerd zijn, kunnen we de functie cor() gebruiken om een correlatiematrix voor de variabelen te maken:
#place variables in data frame
df <- data. frame (x1, x2, x3, y)
#create correlation matrix for data frame
cor(df)
x1 x2 x3 y
x1 1.00000000 0.126886263 0.126886263 0.065047543
x2 0.12688626 1.000000000 1.000000000 -0.009107573
x3 0.12688626 1.000000000 1.000000000 -0.009107573
y 0.06504754 -0.009107573 -0.009107573 1.000000000
We kunnen zien dat de variabelen x2 en x3 eencorrelatiecoëfficiënt van 1 hebben. Dit vertelt ons dat deze twee variabelen de fout veroorzaken omdat ze perfect gecorreleerd zijn.
Om deze fout te corrigeren, past u eenvoudigweg het regressiemodel opnieuw aan en laat u een van deze twee variabelen weg.
Het maakt niet uit welke variabele we weglaten, aangezien ze allebei exact dezelfde informatie bieden in het regressiemodel.
Laten we voor de eenvoud x3 verwijderen en het regressiemodel opnieuw aanpassen:
library (car)
#make this example reproducible
set. seeds (0)
#define data
x1 <- rnorm(100)
x2 <- rnorm(100)
x3 <- x2*3
y <- rnorm(100)
#fit regression model
model <- lm(y~x1+x2)
#calculate VIF values for predictor variables in model
lively(model)
x1 x2
1.016364 1.016364
Merk op dat we deze keer geen fouten ontvangen bij het berekenen van de VIF-waarden voor het model, omdat multicollineariteit niet langer een probleem is.
Gerelateerd: VIF-waarden berekenen en interpreteren in R
Aanvullende bronnen
In de volgende tutorials wordt uitgelegd hoe u andere veelvoorkomende fouten in R kunt oplossen:
Hoe te repareren in R: vervanging heeft een lengte van nul
Hoe op te lossen in R: argumenten hebben betrekking op een verschillend aantal regels
Hoe op te lossen in R: argument is noch numeriek noch logisch: return na