Regresja logistyczna w R: Wyprowadzenie równania [z przykładem]
Opublikowany: 2020-07-28W tym artykule omówimy jedną z najczęstszych, ale trudnych koncepcji w uczeniu maszynowym, regresję logistyczną. W tym szczegółowym artykule dowiesz się, czym jest regresja logistyczna i wyprowadzenie równania regresji logistycznej.
Udostępniliśmy również przykład regresji logistycznej w R, aby z łatwością zrozumieć tę koncepcję. Upewnij się jednak, że znasz dość dobrze wszystkie pomysły, zanim zaczniesz pracować nad przykładem. Byłoby pomocne, jeśli znasz regresję liniową, ponieważ obie te koncepcje są ze sobą powiązane.
Spis treści
Co to jest regresja logistyczna?
Regresja logistyczna przewiduje wynik binarny zgodnie z zestawem niezależnych zmiennych. Jest to algorytm klasyfikacji, który przewiduje prawdopodobieństwo wystąpienia zdarzenia za pomocą funkcji logit i dopasowuje do niej dane. Regresja logistyczna różni się od regresji liniowej, ponieważ może przewidzieć prawdopodobieństwo wyniku, który może mieć tylko dwie wartości. Korzystanie z regresji liniowej nie jest odpowiednie, gdy masz zmienną binarną, ponieważ:
- Regresja liniowa przewidywałaby wartości poza wymaganym zakresem
- Regresja może nie rozłożyć dwóch korzyści na jedną przewidywaną linię
Regresja logistyczna nie tworzy linii, jak robi to regresja liniowa. Zapewnia krzywą logistyczną, która waha się od 0 do wartości większej niż 1.
Ucz się kursów online na temat nauki o danych z najlepszych światowych uniwersytetów. Zdobywaj programy Executive PG, Advanced Certificate Programs lub Masters Programs, aby przyspieszyć swoją karierę.
Sprawdź: Pomysły na projekty R
Wyprowadzenie równania regresji logistycznej
Możemy wyprowadzić równanie regresji logistycznej z równania regresji liniowej. Regresja logistyczna należy do klasy algorytmów glm (uogólniony model liniowy). Nelder i Wedderburn wprowadzili ten model w 1972 roku jako metodę wykorzystania regresji liniowej do rozwiązywania problemów, których wcześniej nie mógł rozwiązać. Zaproponowali klasę oddzielnych modeli i dodali regresję logistyczną jako specjalną.
Wiemy, że równanie uogólnionego modelu liniowego jest następujące:
g(e<y) = a + bx1
g() oznacza funkcję łączenia, E(y) oznacza oczekiwanie zmiennej docelowej, a RHS (prawa strona) jest predyktorem liniowym. Funkcja łączenia „łączy” oczekiwanie y z predyktorem liniowym.
Załóżmy, że mamy dane 100 klientów i musimy przewidzieć, czy klient kupi dany produkt, czy nie. Ponieważ mamy kategoryczną zmienną wynikową, musimy użyć regresji logistycznej.
Zaczniemy od równania regresji liniowej:
g(y) = o+(dochód) — (1)
Tutaj zachowaliśmy zmienną niezależną jako „dochód”, aby ułatwić zrozumienie.
Skupiamy się na prawdopodobieństwie wystąpienia wypadkowej zmiennej zależnej (czy klient kupi, czy nie?). Jak już wspomnieliśmy, g() jest naszą funkcją łączącą i opiera się na prawdopodobieństwie sukcesu (p) i prawdopodobieństwie niepowodzenia (1-p). p powinien mieć następujące cechy:
- p powinno być zawsze dodatnie
- p powinno być zawsze mniejsze lub równe 1
Teraz oznaczymy g() przez 'p' i wyprowadzimy nasze równanie regresji logistycznej.
Ponieważ prawdopodobieństwo jest zawsze dodatnie, omówimy równanie liniowe w jego postaci wykładniczej i otrzymamy następujący wynik:
p = exp(0+(dochód)) = e((0+(dochód)) — (2)
Będziemy musieli podzielić p przez liczbę większą niż p, aby prawdopodobieństwo było mniejsze niż 1:
p = exp(0+(dochód)) / (0+(dochód)) + 1 = e(0+(dochód)) / (0+(dochód)) + 1 — (3)
Za pomocą równ. (1), (2) i (3) możemy zdefiniować p jako:
p = ej /1 + ej — (4)
Tutaj p jest prawdopodobieństwem sukcesu, więc 1-p musi być prawdopodobieństwem niepowodzenia:
q = 1 – p = 1 -(ej /1 + ej) — (5)
Podzielmy teraz (4) przez (5):
p / 1 – p = ey
Jeśli weźmiemy kłody po obu stronach, otrzymamy:
log (p / 1 – p) = y
To jest funkcja łącza. Gdy podstawimy ustaloną wcześniej wartość y, otrzymamy:
log(p / 1 – p) = o + (dochód)
I mamy to, równanie regresji logistycznej. Ponieważ zapewnia prawdopodobieństwo wyniku, jego wartość zawsze mieści się w zakresie od 0 do 1.
Przeczytaj o: 9 interesujących pomysłów i tematów na projekty regresji liniowej dla początkujących
Przykład regresji logistycznej w R
W naszym przypadku regresji logistycznej w R korzystamy z danych z UCLA (University of California, Los Angeles). Tutaj musimy stworzyć model, który przewiduje szanse na przyznanie się na podstawie danych, które posiadamy. Mamy cztery zmienne, w tym GPA, wynik GRE, stopień licencjata studenta i wyznanie.
df <- read.csv („https://stats.idre.ucla.edu/stat/data/binary.csv”)
str(df)
## 'data.frame': 400 obs. z 4 zmiennych:
## $ przyznać: int 0 1 1 1 0 1 1 0 1 0 …
## $ gre : int 380 660 800 640 520 760 560 400 540 700 …
## $ gpa : numer 3,61 3,67 4 3,19 2,93 3 2,98 3,08 3,39 3,92 …
## $ ranga : int 3 3 1 4 4 2 1 2 3 2 …
Zmienne to liczby lub liczby całkowite:
suma(is.na(df))
## [1] 0
Stwierdzamy również, że nie ma wartości zerowych i jest więcej zdarzeń odrzuceń niż akceptacji, ponieważ średnia z limitu zmiennej jest mniejsza niż 0,5.
Należy upewnić się, że system odpowiednio dystrybuuje dopuszczenia w każdej kategorii rang. Załóżmy, że jedna ranga ma tylko 5 odrzuceń (lub informacji o przyjęciu), wtedy niekoniecznie musisz używać tej rangi w swojej analizie.

xtabs(~ przyznaj +ranga ,dane=df)
## ranga
## przyznaj 1 2 3 4
## 0 28 97 93 55
## 1 33 54 28 12
Uruchommy teraz naszą funkcję:
df$rank <- as.factor(df$rank)
logit <- glm(przyznaj ~ gre+gpa+rank,data=df,rodzina=”dwumianowy”)
podsumowanie (logit)
##
## Dzwonić:
## glm(formuła = przyznać ~ gre + gpa + ranga, rodzina = „dwumianowy”,
## dane = df)
##
## Pozostałe odchylenia:
## Min. 1 kw. Mediana 3 kw. maks.
## -1,6268 -0,8662 -0,6388 1,1490 2,0790
##
## Współczynniki:
## Szacunkowa norma Wartość błędu z Pr(>|z|)
## (Przecięcie) -3,989979 1,139951 -3,500 0,000465 ***
## gr 0,002264 0,001094 2,070 0,038465 *
## gpa 0,804038 0,331819 2,423 0,015388 *
## rank2 -0,675443 0,316490 -2,134 0,032829 *
## rank3 -1.340204 0,345306 -3,881 0,000104 ***
## rank4 -1,551464 0,417832 -3,713 0,000205 ***
## —
## Znaczenie. kody: 0 '***' 0,001 '**' 0,01 '*' 0,05 '.' 0,1 ' ' 1 '
##
## (parametr dyspersji dla rodziny dwumianowej przyjmuje wartość 1)
##
## Odchylenie zerowe: 499,98 na 399 stopniach swobody
## Odchylenie resztkowe: 458,52 na 394 stopniach swobody
## AIC: 470,52
##
## Liczba iteracji punktacji Fishera: 4
Musiałeś zauważyć, że przed uruchomieniem funkcji przekonwertowaliśmy zmienną rang na czynnik z liczby całkowitej. Upewnij się, że robisz to samo.
Ostateczny wynik:
Załóżmy, że GPA studenta wynosi 3,8, wynik GRE równy 790, a on studiował w college'u 1. stopnia. Sprawdźmy jego szanse na dostanie się w przyszłości, korzystając z naszego modelu:
x <- data.frame(gre=790,gpa=3.8,rank=as.factor(1))
p<- przewidywać(logit,x)
P
## 1
## 0,85426
Nasz model przewiduje, że chłopiec ma 85% szans na przyznanie się w przyszłości.
Przeczytaj także: Pomysły na projekty uczenia maszynowego
Końcowe przemyślenia
To tyle w tym artykule. Jesteśmy pewni, że uznalibyście to za bardzo pomocne. Jeśli masz jakieś pytania lub przemyślenia dotyczące regresji logistycznej i powiązanych z nią tematów, podziel się nimi w sekcji komentarzy poniżej.
Jeśli jesteś ciekawy, aby dowiedzieć się o R, wszystkiego o nauce o danych, sprawdź IIIT-B i upGrad's Executive PG Program w Data Science , który jest stworzony dla pracujących profesjonalistów i oferuje ponad 10 studiów przypadków i projektów, praktyczne warsztaty praktyczne, mentoring z eksperci branżowi, indywidualni z mentorami branżowymi, ponad 400 godzin nauki i pomocy w pracy z najlepszymi firmami.
Czym różni się regresja logistyczna i regresja liniowa?
Celem regresji liniowej jest zidentyfikowanie najlepiej dopasowanej linii, ale regresja logistyczna idzie o krok dalej i dopasowuje wartości linii do krzywej sigmoidalnej. Główna różnica między tymi dwiema metodami polega na tym, że regresja logistyczna jest stosowana, gdy zmienna zależna jest binarna. Gdy zmienna zależna jest ciągła, a linia regresji jest liniowa, stosuje się regresję liniową. Podczas gdy do szacowania regresji liniowej wykorzystywana jest zwykła technika najmniejszych kwadratów, do szacowania regresji logistycznej wykorzystywana jest metoda oszacowania maksymalnego prawdopodobieństwa. Wynik regresji liniowej jest ciągły, ale wynik regresji logistycznej ma tylko ograniczoną liczbę dyskretnych wartości potencjału.
Kiedy pomocne jest zastosowanie regresji logistycznej?
Zmienna zależna kategorialna jest przewidywana za pomocą regresji logistycznej. Kiedy dane, które posiadamy, można zmierzyć w nieskończonej skali, możemy zastosować regresję logistyczną. Do oszacowania prawdopodobieństwa zdarzenia przydatna jest analiza regresji logistycznej. Pomaga w określeniu prawdopodobieństwa dowolnych dwóch klas. Jedynie wyniki klasyfikacji i prawdopodobieństwa można przewidzieć za pomocą regresji logistycznej. Może być używany do rozwiązywania różnych problemów związanych z klasyfikacją, takich jak wykrywanie spamu, przewidywanie cukrzycy, diagnozowanie raka i tak dalej.
Jakie są ograniczenia stosowania regresji logistycznej?
1. Ponieważ regresja logistyczna ma liniową powierzchnię decyzyjną, nie może dotyczyć kwestii nieliniowych.
2. Algorytm regresji logistycznej jest wrażliwy na wartości odstające.
3. Ponieważ zarówno skalowanie, jak i normalizacja są kluczowymi kryteriami regresji logistycznej, przygotowanie danych może być czasochłonne.
4. Jeśli istnieje cecha, która całkowicie oddziela dwie klasy, nie można już trenować modelu. Nazywa się to „całkowitą separacją”.
5. Jeżeli liczba obserwacji jest mniejsza niż liczba cech, nie należy stosować regresji logistycznej, ponieważ może to skutkować nadmiernym dopasowaniem.
6. Kolejną wadą jest to, że każdy punkt danych w regresji logistycznej musi być niezależny od wszystkich innych punktów danych. Gdy obserwacje są połączone, model ma tendencję do przeceniania istotności tych obserwacji.