Regresia logistică în R: Derivarea ecuației [cu exemplu]

Publicat: 2020-07-28

În acest articol, vom discuta unul dintre cele mai comune, dar provocatoare concepte în învățarea automată, regresia logistică. Veți găsi ce este regresia logistică și derivarea ecuației de regresie logistică în acest articol detaliat.

De asemenea, am împărtășit un exemplu de regresie logistică în R pentru a înțelege conceptul cu multă ușurință. Cu toate acestea, asigurați-vă că cunoașteți toate ideile rezonabil de bine înainte de a lucra la exemplu. Ar fi util dacă sunteți familiarizat cu regresia liniară , deoarece ambele concepte sunt interconectate.

Cuprins

Ce este regresia logistică?

Regresia logistică prezice un rezultat binar conform unui set de variabile independente. Este un algoritm de clasificare care prezice probabilitatea apariției unui eveniment utilizând o funcție logit și potrivindu-i datele. Regresia logistică este diferită de regresia liniară, deoarece poate prezice probabilitatea unui rezultat care poate avea doar două valori. Utilizarea regresiei liniare nu este potrivită atunci când aveți o variabilă binară deoarece:

  • Regresia liniară ar prezice valori în afara intervalului necesar
  • Este posibil ca regresia să nu distribuie cele două beneficii pe o singură linie prezisă

Regresia logistică nu produce o linie așa cum o face o regresie liniară. Oferă o curbă logistică care variază între 0 și valoarea mai mare de 1.

Învață cursuri online de știință a datelor de la cele mai bune universități din lume. Câștigă programe Executive PG, programe avansate de certificat sau programe de master pentru a-ți accelera cariera.

Consultați: R Project Ideas

Derivarea ecuației de regresie logistică

Putem deriva ecuația de regresie logistică din ecuația de regresie liniară. Regresia logistică se încadrează în clasa algoritmilor glm (Model liniar generalizat). Nelder și Wedderburn au introdus acest model în 1972 ca metodă de utilizare a regresiei liniare pentru a rezolva probleme pe care nu le putea rezolva înainte. Ei propuseseră o clasă de modele separate și adăugaseră regresia logistică ca una specială.

Știm că ecuația unui model liniar generalizat este următoarea:

g(e<y) = a + bx1

g() reprezintă funcția de legătură, E(y) reprezintă așteptarea variabilei țintă, iar RHS (partea dreaptă) este predictorul liniar. Funcția de legătură „leagă” așteptarea lui y cu predictorul liniar.

Să presupunem că avem date pentru 100 de clienți și trebuie să anticipăm dacă un client va cumpăra un anumit produs sau nu. Deoarece avem o variabilă de rezultat categoric, trebuie să folosim regresia logistică.

Vom începe cu o ecuație de regresie liniară:

g(y) = o+(venit) — (1)

Aici, am păstrat variabila independentă ca „venit” pentru a fi ușor de înțeles.

Accentul nostru este pus pe probabilitatea variabilei dependente rezultante (clientul va cumpăra sau nu?). După cum am discutat deja, g() este funcția noastră de legătură și se bazează pe probabilitatea de succes (p) și probabilitatea de eșec (1-p). p ar trebui să aibă următoarele calități:

  • p ar trebui să fie întotdeauna pozitiv
  • p ar trebui să fie întotdeauna mai mic sau egal cu 1

Acum, vom nota g() cu „p” și vom deriva ecuația noastră de regresie logistică.

Deoarece probabilitatea este întotdeauna pozitivă, vom acoperi ecuația liniară în forma ei exponențială și vom obține următorul rezultat:

p = exp(0+(venit)) = e((0+(venit)) — (2)

Va trebui să împărțim p la un număr mai mare decât p pentru a face probabilitatea mai mică decât 1:

p = exp(0+(venit)) / (0+(venit)) + 1 = e(0+(venit)) / (0+(venit)) + 1 — (3)

Prin utilizarea eq. (1), (2) și (3), putem defini p ca:

p = ey /1 + ey — (4)

Aici, p este probabilitatea de succes, deci 1-p trebuie să fie probabilitatea de eșec:

q = 1 – p = 1 -(ey /1 + ey) — (5)

Să împărțim acum (4) la (5):

p / 1 – p = ey

Dacă luăm busteni pe ambele părți, obținem următoarele:

log (p / 1 – p) = y

Aceasta este funcția de legătură. Când înlocuim valoarea lui y stabilită anterior, obținem:

log(p / 1 – p) = o + (venit)

Și aici o avem, ecuația de regresie logistică. Deoarece oferă probabilitatea unui rezultat, valoarea acestuia rămâne întotdeauna între 0 și peste 1.

Citiți despre: 9 idei și subiecte interesante pentru proiecte de regresie liniară pentru începători

Exemplu de regresie logistică în R

În cazul nostru de regresie logistică în R, folosim date de la UCLA (Universitatea din California, Los Angeles). Aici, trebuie să creăm un model care prezice șansele de a primi în funcție de datele pe care le avem. Avem patru variabile, inclusiv GPA, scorul GRE, rangul colegiului de licență al studentului și mărturisește.

df <- read.csv(„https://stats.idre.ucla.edu/stat/data/binary.csv”)

str(df)

## „data.frame”: 400 obs. din 4 variabile:

## $ admit: int 0 1 1 1 0 1 1 0 1 0 …

## $ gre : int 380 660 800 640 520 760 560 400 540 700 …

## $ gpa : num 3,61 3,67 4 3,19 2,93 3 2,98 3,08 3,39 3,92 …

## $ rang : int 3 3 1 4 4 2 1 2 3 2 …

Variabilele sunt fie numere, fie întregi:

sum(is.na(df))

## [1] 0

De asemenea, constatăm că nu există valori nule și există mai multe evenimente de respingere decât de acceptare deoarece media limitei variabilei este mai mică de 0,5.

Ar trebui să vă asigurați că sistemul distribuie în mod corespunzător admisiile în fiecare categorie de rang. Să presupunem că un rang are doar 5 respingeri (sau admite informații), atunci nu trebuie neapărat să utilizați acel rang în analiză.

xtabs(~ admit +rank ,data=df)

## rang

## admit 1 2 3 4

## 0 28 97 93 55

## 1 33 54 28 12

Să rulăm funcția noastră acum:

df$rank <- as.factor(df$rank)

logit <- glm(admit ~ gre+gpa+rank,data=df,family=”binom”)

rezumat (logit)

##

## Apel:

## glm(formula = admit ~ gre + gpa + rang, familie = „binom”,

## date = df)

##

## Reziduuri de devianta:

## Min 1Q Median 3Q Max

## -1,6268 -0,8662 -0,6388 1,1490 2,0790

##

## Coeficienți:

## Estimare Std. Eroare z valoare Pr(>|z|)

## (Interceptare) -3,989979 1,139951 -3,500 0,000465 ***

## gre 0,002264 0,001094 2,070 0,038465 *

## gpa 0,804038 0,331819 2,423 0,015388 *

## rang2 -0,675443 0,316490 -2,134 0,032829 *

## rang3 -1,340204 0,345306 -3,881 0,000104 ***

## rang4 -1,551464 0,417832 -3,713 0,000205 ***

## —

## Semnif. coduri: 0 '***' 0,001 '**' 0,01 '*' 0,05 '.' 0,1 '' 1

##

## (Parametrul de dispersie pentru familia binomială considerată a fi 1)

##

## Devianța nulă: 499,98 pe 399 de grade de libertate

## Devianța reziduală: 458,52 pe 394 de grade de libertate

## AIC: 470,52

##

## Numărul de iterații de scor Fisher: 4

Trebuie să fi observat că am convertit variabila de rang în factor din întreg înainte de a rula funcția. Asigurați-vă că faceți același lucru.

Rezultat final:

Să presupunem că GPA-ul unui student este 3,8, un scor GRE de 790 și a studiat într-o facultate de rangul 1. Să găsim șansele lui de a fi admis în viitor folosind modelul nostru:

x <- data.frame(gre=790,gpa=3.8,rank=as.factor(1))

p<- prezice(logit,x)

p

## 1

## 0,85426

Modelul nostru prezice că băiatul are 85% șanse de a primi admiterea în viitor.

Citește și: Idei de proiecte de învățare automată

Gânduri finale

Asta e pentru acest articol. Suntem încrezători că l-ați fi găsit destul de util. Dacă aveți întrebări sau păreri despre regresia logistică și subiectele conexe, vă rugăm să le împărtășiți în secțiunea de comentarii de mai jos.

Dacă sunteți curios să aflați despre R, totul despre știința datelor, consultați Programul Executive PG în știința datelor de la IIIT-B și upGrad, care este creat pentru profesioniști care lucrează și oferă peste 10 studii de caz și proiecte, ateliere practice practice, mentorat cu experți din industrie, 1-la-1 cu mentori din industrie, peste 400 de ore de învățare și asistență profesională cu firme de top.

Cum diferă între ele regresia logistică și regresia liniară?

Scopul regresiei liniare este de a identifica linia cea mai potrivită, dar regresia logistică merge cu un pas mai departe și potrivește valorile liniei la curba sigmoidă. Principala diferență dintre aceste două metode este că regresia logistică se aplică atunci când variabila dependentă este binară. Când variabila dependentă este continuă și linia de regresie este liniară, se utilizează regresia liniară. În timp ce tehnica celor mai mici pătrate obișnuite este utilizată pentru a estima regresia liniară, metoda de estimare a probabilității maxime este utilizată pentru a estima regresia logistică. Ieșirea regresiei liniare este continuă, dar cea a regresiei logistice are doar un număr restrâns de valori potențiale discrete.

Când este utilă utilizarea regresiei logistice?

Variabila dependentă categorială este prezisă folosind regresia logistică. Când datele pe care le avem pot fi măsurate pe o scară infinită, putem aplica regresia logistică. Pentru estimarea probabilității unei apariții, este utilă analiza de regresie logistică. Ajută la determinarea probabilității oricăror două clase. Numai rezultatele de clasificare și probabilitate pot fi prezise folosind regresia logistică. Poate fi folosit pentru a rezolva o varietate de probleme de clasificare, cum ar fi detectarea spam-ului, predicția diabetului, diagnosticarea cancerului și așa mai departe.

Care sunt limitările utilizării regresiei logistice?

1. Deoarece regresia logistică are o suprafață de decizie liniară, nu poate aborda probleme neliniare.

2. Algoritmul de regresie logistică este sensibil la valori aberante.

3. Întrucât atât scalarea cât și normalizarea sunt criterii cheie ale regresiei logistice, pregătirea datelor poate consuma mult timp.

4. Dacă există o caracteristică care separă complet două clase, modelul nu mai poate fi antrenat. Aceasta este denumită „separare completă”.

5. Dacă numărul de observații este mai mic decât numărul de caracteristici, regresia logistică nu trebuie aplicată, deoarece poate duce la supraadaptare.

6. Un alt dezavantaj este că fiecare punct de date din regresia logistică trebuie să fie independent de toate celelalte puncte de date. Când observațiile sunt conectate, modelul tinde să supraestimeze relevanța acestor observații.