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

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