Jak wykreślić krzywą regresji logistycznej w r


Często możesz chcieć wykreślić krzywą dopasowanego modelu regresji logistycznej w R.

Na szczęście jest to dość łatwe i w tym samouczku wyjaśniono, jak to zrobić zarówno w podstawowym R, jak i ggplot2.

Przykład: rysowanie krzywej regresji logistycznej w bazie R

Poniższy kod pokazuje, jak dopasować model regresji logistycznej przy użyciu zmiennych z wbudowanego zbioru danych mtcars w R, a następnie jak wykreślić krzywą regresji logistycznej:

 #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 )

Krzywa regresji logistycznej w bazie R

Oś x wyświetla wartości zmiennej predykcyjnej hp , a oś y wyświetla przewidywane prawdopodobieństwo zmiennej odpowiedzi am .

Wyraźnie widać, że wyższe wartości zmiennej predykcyjnej hp wiążą się z mniejszym prawdopodobieństwem wystąpienia zmiennej odpowiedzi w porównaniu z wartością 1.

Przykład: wykreślenie krzywej regresji logistycznej w ggplot2

Poniższy kod pokazuje, jak dopasować ten sam model regresji logistycznej i jak wykreślić krzywą regresji logistycznej przy użyciu biblioteki wizualizacji danych ggplot2 :

 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)) 

Krzywa regresji logistycznej w ggplot2

Należy zauważyć, że jest to dokładnie ta sama krzywa, która została utworzona w poprzednim przykładzie przy użyciu podstawy R.

Możesz także zmienić styl krzywej. Na przykład możemy zamienić krzywą w czerwoną przerywaną linię:

 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 ) 

Dodatkowe zasoby

Wprowadzenie do regresji logistycznej
Jak przeprowadzić regresję logistyczną w R (krok po kroku)
Jak przeprowadzić regresję logistyczną w Pythonie (krok po kroku)
Jak korzystać z funkcji seq w R

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *