Modello logit

Il modello logit è rappresentato in blu.

In statistica, il modello logit, noto anche come modello logistico o regressione logistica, è un modello di regressione nonlineare utilizzato quando la variabile dipendente è di tipo dicotomico. L'obiettivo del modello è di stabilire la probabilità con cui un'osservazione può generare uno o l'altro valore della variabile dipendente; può inoltre essere utilizzato per classificare le osservazioni, in base alla caratteristiche di queste, in due categorie.

Il modello logit fa parte della classe dei modelli lineari generalizzati, così come il modello probit ed il modello log-lineare, dai quali differisce essenzialmente per la scelta della funzione Λ.

Scelta della funzione

La funzione logit. L'inversa di questa funzione è utilizzata nella regressione logistica.

Un modello di regressione dove la variabile dipendente è dicotomica, ossia una variabile che può avere come unici valori 0 e 1 o riconducibili ad essi, calcola la probabilità che questa variabile acquisisca valore 1. Poiché le probabilità per definizione sono limitate ad un intervallo C=[0,1], l'utilizzo di un modello di regressione lineare non sarebbe appropriato, infatti esso restituirebbe dei valori appartenenti all'intero insieme ℝ. Si supponga infatti il seguente modello lineare:

Pr⁡(Y=1∣X=x)=β0+β1X.

La derivata

∂∂XPr⁡(Y=1∣X=x)=β1

essendo costante e uguale al parametro β1, non permette alla funzione di cambiare pendenza in base al valore di X e quindi di poter avere come codominio C. Questa caratteristica è invece posseduta, ad esempio, dalle funzioni di ripartizione. L'utilizzo infatti di una funzione non lineare permette di avere una derivata prima dipendente da X e quindi in grado di cambiare al variare di questa variabile. Se si considera infatti il seguente modello:

Pr⁡(Y=1∣X=x)=F(α0+α1X),

dove la derivata è la seguente

∂∂XPr⁡(Y=1∣X=x)=f(α0+α1X)α1.

Si nota come la pendenza della curva ora possa variare al variare di X, potendo quindi possedere un codominio C. Per il modello logit si utilizza come funzione F la funzione di ripartizione della distribuzione logistica standard.

Definizione

Il modello di regressione logit per la popolazione è:

𝔼[Y∣𝐗]=Pr⁡(Y=1∣X1,…,Xk)=Λ(𝐗T𝜷)=eβ0+β1X1+…+βkXk1+eβ0+β1X1+…+βkXk=p,

dove:

Varianza

La varianza della variabile dipendente risulta dipendere dal vettore dei regressori 𝐗. Infatti

Var(Y∣𝐗)=𝔼[Y2∣𝐗]−𝔼[Y∣𝐗]2=Λ(𝐗T𝜷)⋅(1−Λ(𝐗T𝜷)).

Effetto marginale

L'effetto marginale sulla variabile dipendente Y dato da un cambiamento in un regressore continuo Xj è calcolato come la derivata rispetto a Xj del valore atteso p=𝔼[Y∣𝐗]:

∂p∂Xj=∂∂Xj𝔼[Y∣𝐗]=∂∂XjΛ(𝐗T𝜷)=∂∂Xje𝐗T𝜷1+e𝐗T𝜷=e𝐗T𝜷1+e𝐗T𝜷⋅11+e𝐗T𝜷⋅βj=p(1−p)βj

Poiché p è una probabilità e quindi un numero compreso fra 0 e 1, il fattore p(1−p), e quindi l'effetto marginale, è massimo per p=0,5 e va a zero per p che tende a 1 o 0. Quindi in un modello logistico l'effetto marginale tende a zero per probabilità attese molto alte o molto basse.

Illustrazione del metodo

Per ogni osservazione campionaria i=1,…,n si dispone di una determinazione Y e di k determinazioni X1,…,Xk. Il modello cerca una relazione non lineare, utilizzando la funzione di ripartizione della distribuzione logistica standard, tra la variabile dipendente e k variabili indipendenti, stimando il valore dei coefficienti β0,…,βk tramite il metodo della massima verosimiglianza.

Stima del modello

Il vettore di parametri 𝜷 è di norma stimato con il metodo della massima verosimiglianza, con il quale si ottengono stimatori efficienti, consistenti e distribuiti normalmente nel caso in cui il campione statistico sia abbastanza grande. Queste proprietà permettono di calcolare il test t su un parametro, il test F nel caso di restrizioni multiple e gli intervalli di confidenza. Alla stima dei parametri segue la stima della probabilità p.

Funzione di verosimiglianza

Nel modello logit la variabile dipendente Y è dicotomica e con distribuzione Y∼ℬ(p). Si consideri un campione di n osservazioni dove ciascuna di esse è identificata con i=1,…,n. Per la definizione del modello, la probabilità che questa variabile sia 1 per una data osservazione i è

Pr⁡(Yi=1∣X1i,…,Xki)=Λ(β0+β1X1i+…+βkXki)=pi,

mentre la probabilità che sia 0 è

Pr⁡(Yi=0∣X1i,…,Xki)=1−Λ(β0+β1X1i+…+βkXki)=1−pi.

La distribuzione di probabilità condizionata per ogni elemento i può essere scritta come

Pr⁡(Yi=yi∣X1i,…,Xki)=piyi(1−pi)1−yi.

Si considera ora l'intero campione e sia assume che X1i,X2i,…,Xki,Yi siano indipendenti e identicamente distribuite per ogni osservazione i. Risulta quindi che la distribuzione di probabilità congiunta di (Y1,…,Yn) è il prodotto delle probabilità condizionate di ogni osservazione:

Pr⁡(Y1=y1,…,Yn=yn∣X1i,…,Xki)=Pr⁡(Y1=y1∣X11,…,Xk1)⋅…⋅Pr⁡(Yn=yn∣X1n,…,Xkn)==p1y1(1−p1)1−y1⋅…⋅pnyn(1−pn)1−yn=∏i=1npiyi(1−pi)1−yi.

Si riprende ora la definizione del modello logit e la si sostituisce al posto di pi, ottenendo quindi la funzione di verosimiglianza

ℒlogit(β0,…,βk;Y1,…,Yn∣X1i,…,Xki)=∏i=1n[Λ(β0+β1X1i+…+βkXki)]Yi[1−Λ(β0+β1X1i+…+βkXki)]1−Yi.

Stima dei parametri

Per calcolare gli stimatori β̂0,β̂1,…,β̂k dei parametri β0,β1,…,βk risulta conveniente calcolare la funzione di log-verosimiglianza poiché in questo modo si riesce a eliminare la produttoria. Si applica quindi il logaritmo alla funzione di verosimiglianza:

𝓁logit(β0,…,βk;Y1,…,Yn∣X1i,…,Xki)=ln⁡ℒlogit(β0,…,βk;Y1,…,Yn∣X1i,…,Xki)=∑i=1nYiln⁡[Λ(β0+β1X1i+…+βkXki)]+∑i=1n(1−Yi)ln⁡[1−Λ(β0+β1X1i+…+βkXki)]

Gli stimatori calcolati con il metodo della massima verosimiglianza massimizzano la funzione precedente risolvendo il seguente problema:

{β̂0,β̂1,…,β̂k}MV=arg⁡maxβ0,…,βk𝓁logit(β0,…,βk;Y1,…,Yn∣X1i,…,Xki).

Per semplificare la scrittura consideriamo 𝜷 un vettore dei parametri β0,β1,…,βk, λ la derivata di Λ, ossia la funzione di densità di probabilità della distribuzione logistica, e n il numero di osservazioni nel campione. Le condizioni per la massimizzazione sono due: quella di primo ordine dove la derivata prima rispetto ai parametri deve essere posta uguale a zero per trovare i punti estremanti, la seconda invece pone la derivata seconda, sempre rispetto ai parametri, minore di zero per determinare le concavità della funzione e quindi garantire che quelli trovati siano solo punti di massimo:

Solitamente le soluzioni di queste condizioni non sono semplici da determinare oppure non possono essere trovate affatto, ma per ovviare a questo problema si possono utilizzare dei programmi statistici per computer che, attraverso alcuni algoritmi, trovano delle loro approssimazioni.

Stima della probabilità

Quando è stato calcolato il vettore 𝜷̂, ossia la stima del vettore dei parametri 𝜷, è possibile procedere alla stima della probabilità p. Per definizione del modello, questa probabilità è anche il valore atteso di Y.

p̂=𝔼̂[Y∣𝐗]=Λ(𝐗T𝜷̂)=e𝐗T𝜷̂1+e𝐗T𝜷̂.

Esempio in python

Utilizzando la regressione logistica nel linguaggio di programmazione python si vuole predire se una persona è malata di cuore oppure no, mediante parametri tra cui la pressione arteriosa e il livello di colesterolo nel sangue ecc. contenuti in un dataset liberamente scaricabile da GitHub. La variabile da predire è target che assume 1 se la persona è malata, 0 altrimenti. Si divide il dataset in un Training Set pari all'80% delle osservazioni su cui si addestra il modello logistico, ed il restante 20% delle osservazioni rappresenta il Testing Set su cui si calcola l'Accuracy per valutare se il modello predice bene la malattia:

import pandas as pd

from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from sklearn.linear_model import LogisticRegression
from sklearn.metrics import accuracy_score

# Caricamento del dataset
url = "https://raw.githubusercontent.com/g-shreekant/Heart-Disease-Prediction-using-Machine-Learning/refs/heads/master/heart.csv"
df = pd.read_csv(url)

# Definizione delle feature e della variabile target
X = df.drop(columns=['target'])  # Feature
y = df['target']  # Variabile target (0 = no malattia, 1 = malattia)

# Suddivisione in Training e Testing Set
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42, stratify=y)

# Normalizzazione delle feature
scaler = StandardScaler()
X_train = scaler.fit_transform(X_train)
X_test = scaler.transform(X_test)

# Creazione e addestramento del modello di Regressione Logistica
model = LogisticRegression()
model.fit(X_train, y_train)

# Predizioni sul testing set
y_pred = model.predict(X_test)

# Valutazione del modello
accuracy = accuracy_score(y_test, y_pred)
print(f'Accuracy: {accuracy:.4f}')
Accuracy: 0.8033

Essendo l'accuracy pari all'80,33% il modello logistico predice bene la malattia.

Note

  1. 1 2 3 4 5 6 (EN) James H. Stock e Mark W. Watson, Regression with a Binary Dependent Variable, in Introduction to Econometrics, 3ª ed., Pearson, 2015, pp. 442-443, ISBN 978-1-292-07131-2.
  2. 1 2 (EN) James H. Stock e Mark W. Watson, Regression with a Binary Dependent Variable, in Introduction to Econometrics, 3ª ed., Pearson, 2015, p. 437, ISBN 978-1-292-07131-2.
  3. ↑ Il valore attes
  4. 1 2 (EN) James H. Stock e Mark W. Watson, Regression with a Binary Dependent Variable, in Introduction to Econometrics, 3ª ed., Pearson, 2015, pp. 441-442, ISBN 978-1-292-07131-2.
  5. ↑ L'intera derivazione della funzione di verosimiglianza è consultabile alle pagine qui riportate. (EN) James H. Stock e Mark W. Watson, Regression with a Binary Dependent Variable, in Introduction to Econometrics, 3ª ed., Pearson, 2015, pp. 465-466, ISBN 978-1-292-07131-2.
  6. 1 2 (EN) James H. Stock e Mark W. Watson, Regression with a Binary Dependent Variable, in Introduction to Econometrics, 3ª ed., Pearson, 2015, pp. 465-466, ISBN 978-1-292-07131-2.

Bibliografia

Voci correlate

Altri progetti

Controllo di autoritàLCCN (EN) sh85078131 · GND (DE) 4230396-5 · BNF (FR) cb13737339z (data) · J9U (EN, HE) 987007536257205171