R - Regressione Logistica

Creazione del Modello di Regressione

Benvenuti nel mondo della regressione logistica in R! In questo tutorial, vi guideremo attraverso le basi della creazione di un modello di regressione logistica utilizzando R. Inizieremo con alcuni concetti di base e poi affronteremo il codice. Ricorda, questo è progettato per i principianti senza esperienza di programmazione, quindi non preoccuparti se ti senti un po' perso all'inizio. Iniziamo!

R - Logistic Regression

Cos'è la Regressione Logistica?

La regressione logistica è un metodo statistico utilizzato per analizzare i dati e fare previsioni basate su una o più variabili predittive. È spesso utilizzata per problemi di classificazione binaria, dove l'esito può essere "sì" (1) o "no" (0). La differenza chiave tra la regressione logistica e la regressione lineare è che la regressione logistica prevede la probabilità di un esito, mentre la regressione lineare prevede un valore continuo.

Perché Usare la Regressione Logistica?

La regressione logistica è ampiamente utilizzata in vari campi, tra cui sanità, finanza, marketing e scienze sociali. È particolarmente utile quando si vuole comprendere la relazione tra un esito binario e una o più variabili predittive. Ad esempio, potresti usare la regressione logistica per prevedere se un cliente acquisterà un prodotto in base alla sua età, reddito e storia di acquisti passati.

Creazione di un Modello di Regressione Logistica in R

Per creare un modello di regressione logistica in R, utilizzeremo la funzione glm(), che sta per Generalized Linear Models. Ecco una guida passo-passo:

Passo 1: Installare e Caricare le Librerie Necessarie

Prima di tutto, devi installare e caricare le librerie necessarie. Useremo la libreria tidyverse per la manipolazione e la visualizzazione dei dati, e la libreria caret per il modellamento.

install.packages("tidyverse")
install.packages("caret")

library(tidyverse)
library(caret)

Passo 2: Caricare i Dati

Successivamente, carichiamo un set di dati. Per questo esempio, useremo il dataset integrato mtcars, che contiene informazioni su vari modelli di auto. Ci concentreremo sulla previsione di se un'auto è un'auto sportiva in base al suo peso e alla sua potenza.

data(mtcars)
head(mtcars)

Passo 3: Preelaborare i Dati

Prima di costruire il modello di regressione logistica, dobbiamo preelaborare i dati. Questo include l'encoding delle variabili categoriali, la gestione dei valori mancanti e la scala delle caratteristiche. Nel nostro caso, abbiamo solo variabili numeriche, quindi non dobbiamo fare alcuna encoding o scaling. Tuttavia, creeremo una nuova variabile binaria chiamata is_sports_car per indicare se un'auto è un'auto sportiva o no.

mtcars <- mtcars %>%
mutate(is_sports_car = ifelse(hp > 150, 1, 0))

Passo 4: Dividere i Dati in Set di Training e Test

È importante dividere i dati in set di training e test per valutare le prestazioni del nostro modello. Useremo la funzione createDataPartition() dal pacchetto caret per creare una partizione.

set.seed(123)
trainIndex <- createDataPartition(mtcars$is_sports_car, p = 0.8, list = FALSE)
trainSet <- mtcars[trainIndex, ]
testSet <- mtcars[-trainIndex, ]

Passo 5: Costruire il Modello di Regressione Logistica

Ora siamo pronti a costruire il nostro modello di regressione logistica. Useremo la funzione glm() con l'argomento family impostato su binomial per specificare che vogliamo eseguire una regressione logistica.

model <- glm(is_sports_car ~ wt + hp, data = trainSet, family = binomial)
summary(model)

La funzione summary() fornisce una panoramica del modello, inclusi coefficienti, errori standard, valori z e p-value. Queste statistiche ci aiutano a comprendere l'importanza di ciascuna variabile predittiva e se sono statisticamente significative.

Passo 6: Fare Previsioni e Valutare il Modello

Una volta che abbiamo il nostro modello, possiamo usarlo per fare previsioni sul set di test e valutare le sue prestazioni. Useremo la funzione predict() per generare probabilità previste e poi le converteremo in esiti binari utilizzando una soglia di 0.5.

predictions <- predict(model, newdata = testSet, type = "response")
predicted_classes <- ifelse(predictions > 0.5, 1, 0)

Ora calcoliamo l'accuratezza del nostro modello confrontando le classi previste con le classi reali nel set di test.

accuracy <- mean(predicted_classes == testSet$is_sports_car) * 100
cat("Accuracy:", accuracy, "%")

Eccoci! Hai creato con successo un modello di regressione logistica in R utilizzando la funzione glm(). Ricorda, questo è solo un esempio di base, e ci sono molti altri fattori da considerare quando si costruisce e si valuta un modello di regressione logistica, come la selezione delle caratteristiche, la regolarizzazione e l'affinamento del modello. Ma questo dovrebbe darti una buona partenza per il tuo viaggio nel mondo della regressione logistica in R.

Credits: Image by storyset