Hoe een logistische regressiecurve in r uit te zetten
Vaak wilt u misschien de curve van een aangepast logistisch regressiemodel in R uitzetten.
Gelukkig is het vrij eenvoudig om te doen en in deze tutorial wordt uitgelegd hoe je dit moet doen in zowel base R als ggplot2.
Voorbeeld: tekenen van een logistische regressiecurve in basis R
De volgende code laat zien hoe u een logistisch regressiemodel kunt aanpassen met behulp van variabelen uit de ingebouwde mtcars-gegevensset in R, en vervolgens hoe u de logistische regressiecurve kunt plotten:
#fit logistic regression model model <- glm(vs ~ hp, data=mtcars, family=binomial) #define new data frame that contains predictor variable newdata <- data. frame (hp=seq(min(mtcars$hp), max(mtcars$hp),len= 500 )) #use fitted model to predict values of vs newdata$vs = predict(model, newdata, type=" response ") #plot logistic regression curve plot(vs ~hp, data=mtcars, col=" steelblue ") lines(vs ~ hp, newdata, lwd= 2 )
Op de x-as worden de waarden van de voorspellende variabele hp weergegeven en op de y-as de voorspelde waarschijnlijkheid van de responsvariabele am .
We kunnen duidelijk zien dat hogere waarden van de voorspellende variabele hp verband houden met lagere kansen dat de responsvariabele versus gelijk is aan 1.
Voorbeeld: een logistische regressiecurve uitzetten in ggplot2
De volgende code laat zien hoe u hetzelfde logistische regressiemodel kunt passen en hoe u de logistische regressiecurve kunt plotten met behulp van de ggplot2- gegevensvisualisatiebibliotheek:
library (ggplot2) #plot logistic regression curve ggplot(mtcars, aes (x=hp, y=vs)) + geom_point(alpha=.5) + stat_smooth(method=" glm ", se=FALSE, method. args = list(family=binomial))
Merk op dat dit precies dezelfde curve is die in het vorige voorbeeld is geproduceerd met behulp van de R-basis.
Voel je vrij om ook de stijl van de curve te veranderen. We kunnen de curve bijvoorbeeld in een rode stippellijn veranderen:
library (ggplot2) #plot logistic regression curve ggplot(mtcars, aes (x=hp, y=vs)) + geom_point(alpha=.5) + stat_smooth(method=" glm ", se=FALSE, method. args = list(family=binomial), col=" red ", lty= 2 )
Aanvullende bronnen
Inleiding tot logistieke regressie
Logistieke regressie uitvoeren in R (stap voor stap)
Logistieke regressie uitvoeren in Python (stap voor stap)
Hoe de seq-functie in R te gebruiken