Kom igångKom igång gratis

Algoritm för logistisk regression

Nu ska vi titta närmare på hur logistisk regression fungerar internt och implementera en egen algoritm. Eftersom R:s glm()-funktion är väldigt komplex, begränsar vi oss till att implementera enkel logistisk regression för ett specifikt dataset.

I stället för residualkvadratsum vill vi använda sannolikhet (likelihood). Logsannolikheten är dock mer beräkningsmässigt stabil, så vi använder den i stället. Det finns ytterligare en förändring: eftersom vi vill maximera logsannolikheten, men optim() som standard letar efter minimivärden, är det enklare att beräkna den negativa logsannolikheten.

Logsannolikhetsvärdet för varje observation är

Formel för logsannolikhet

Måttet att beräkna är minus summan av dessa logsannolikhetsbidrag.

Förklaringsvariabelns värden (kolumnen time_since_last_purchase i churn) finns tillgängliga som x_actual. Utfallsvariabelns värden (kolumnen has_churned i churn) finns tillgängliga som y_actual.

Den här övningen är en del av kursen

Intermediär regression i R

Visa kurs

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# Set the intercept to 1
intercept <- ___

# Set the slope to 0.5
slope <- ___

# Calculate the predicted y values
y_pred <- ___

# Calculate the log-likelihood for each term
log_likelihoods <- ___

# Calculate minus the sum of the log-likelihoods for each term
___
Redigera och kör kod