Logit vs Probit: come scegliere per una probabilità di acquisto?
Confrontare i due link sugli stessi dati: probabilità, effetti marginali, calibrazione, Brier, log-loss, AUC e code. I coefficienti grezzi vivono su scale diverse.
Risposta diretta
Scegliere un link usando probabilità, diagnostica holdout, esigenze interpretative e soglie decisionali.
Confrontare i due link sugli stessi dati: probabilità, effetti marginali, calibrazione, Brier, log-loss, AUC e code. I coefficienti grezzi vivono su scale diverse.
01
La risposta in 30 secondi
1
Logit e Probit modellano entrambi una probabilità binaria a partire dallo stesso predittore lineare. Il primo usa la funzione logistica, il secondo la normale cumulata.
2
I coefficienti grezzi non sono direttamente confrontabili perché cambia la scala latente. Confrontare invece probabilità previste, effetti marginali e prestazioni sulle stesse osservazioni.
3
Nell’esempio sintetico i due link producono quasi lo stesso effetto marginale medio e punteggi holdout molto vicini. Ciò non prova l’intercambiabilità universale.
Amemiya (1975), Qualitative Response Models Gündüz & Fokoué (2015)
02
Tre livelli di lettura
- 1
Decisore: chiedere se la scelta del link cambia una probabilità, un segmento o una decisione a una soglia rilevante.
- 2
Professionista: mantenere identici dati, variabili, separazione training-test e metriche per entrambi i modelli.
- 3
Analista: distinguere scala del coefficiente, effetto marginale sulla probabilità, calibrazione, discriminazione e scoring rule propria.
03
Situazione marketing concreta
Un team CRM vuole stimare la probabilità di acquisto a 30 giorni da engagement precedente, sconto mostrato e dispositivo mobile. Deve scegliere tra Logit e Probit. La domanda utile non è «quale coefficiente è maggiore?», ma «probabilità, effetti marginali e diagnostica fuori campione portano a decisioni diverse?»
04
Domanda scientifica ed estimando
Popolazione obiettivo: clienti idonei rappresentati da 1.200 osservazioni sintetiche. Unità: un cliente. Esito Y: acquisto entro 30 giorni. Confronto predittivo, non causale. Stimandi: P(Y=1|X) ed effetto marginale medio dell’engagement sui 400 profili del holdout. Le prime 800 righe servono per la stima.
P(Y=1|X=x) · AME engagement on holdout X05
Perché un confronto superficiale fallisce
- Confrontare 0,991 con il coefficiente Probit 0,596 confonde effetto e normalizzazione della scala latente.
- Scegliere solo con l’AIC di training ignora calibrazione e generalizzazione fuori campione.
- Confrontare solo l’AUC ignora la calibrazione, perché l’AUC riflette l’ordinamento, non il livello esatto delle probabilità.
06
Che cosa cambia davvero tra Logit e Probit
| Dimensione | Logit | Probit | Confronto utile |
|---|---|---|---|
| Link | log[p/(1−p)] | Φ⁻¹(p) | Probabilità prevista |
| β | Scala log-odds | Scala normale latente | Non confrontare le ampiezze grezze |
| AME | Variazione media di probabilità su X | Confrontabile sulla scala delle probabilità | |
07
Dati necessari
- purchase vale 1 per un acquisto entro 30 giorni e 0 altrimenti. Una riga rappresenta un cliente.
- prior_engagement_z è estratto da N(0,1) e conservato senza ristandardizzazione dopo il campionamento. Un’unità appartiene a questa scala generatrice.
- discount_pct assume 0, 5, 10, 15 o 20%. Il modello usa discount10 = discount_pct / 10, quindi un’unità vale 10 punti di sconto.
- mobile vale 1 per un dispositivo mobile e 0 altrimenti. split è train per 800 righe e holdout per 400 righe.
08
Modello formale e simboli
AMEₖ = n⁻¹ Σᵢ f(ηᵢ)βₖ, f = Λ(ηᵢ)[1−Λ(ηᵢ)] or φ(ηᵢ)Predittore comune
ηᵢ = β₀ + β₁ engagementᵢ + β₂ discount10ᵢ + β₃ mobileᵢi indica un cliente; n=400 profili holdout fissi. β è stimato per massima verosimiglianza su 800 righe di training.
Logit
pᵢ = Λ(ηᵢ) = 1 / (1 + exp(−ηᵢ))Λ è la CDF logistica e f la sua densità. Un coefficiente sposta i log-odds, non la probabilità di una costante.
Probit
pᵢ = Φ(ηᵢ)Φ è la CDF normale standard e φ la sua densità. Il coefficiente vive su un’altra scala latente.
Per l’engagement, l’AME è la derivata locale media della probabilità per unità della scala generatrice, in punti percentuali. Non è la variazione finita da X a X+1.
Nelder & Wedderburn (1972) Hill, Griffiths & Lim (2018), chapter 16
09
Calcolo dichiarato, passo dopo passo
- 01
Fissare il campione: 800 righe di training e 400 holdout.
- 02
Stimare i due link con stesso esito, predittori e intercetta.
- 03
Calcolare probabilità holdout, poi Brier, log-loss, AUC e calibration-in-the-large.
- 04
Calcolare l’AME dell’engagement sui 400 profili fissi e il suo IC delta al 95% con la covarianza di Fisher stimata sul training.
- 05
Esaminare due profili di coda e verificare se una soglia operativa cambia lato.
Nelder & Wedderburn (1972) Hill, Griffiths & Lim (2018), chapter 16 Dimitriadis et al. (2023)
10
Esempio numerico completo
Dataset sintetico creato per l’apprendimento. Non descrive alcuna campagna reale.
Seed 20260819. L’esito è generato da un processo logistico didattico, senza conclusione universale o affermazione reale.
| Metrica | Logit | Probit |
|---|---|---|
| β engagement | 0.991442 | 0.596133 |
| AME engagement | 19.8738 pp | 19.8780 pp |
| 95% CI AME | [17.1598; 22.5878] pp | [17.1767; 22.5794] pp |
| Brier | 0.175319 | 0.175367 |
| Log-loss | 0.527456 | 0.527414 |
| AUC | 0.809401 | 0.809743 |
| Calibration p̄−ȳ | +0.006011 | +0.006850 |
| p(engagement=−2) | 0.084485 | 0.076382 |
| p(engagement=+2) | 0.829609 | 0.830134 |
I profili di coda fissano discount_pct=10, discount10=1 e mobile=1; cambia solo l’engagement tra i valori −2 e +2 della scala generatrice.
Scarica il CSV sinteticoLettura: gli scarti sono minimi su questo holdout; il profilo a −2 differisce di 0,81 punti. L’incertezza è riportata per l’AME, non per ogni scarto.
L’intervallo AME condiziona sui 400 profili holdout osservati e usa la covarianza di Fisher stimata su 800 righe. Non quantifica l’incertezza nella distribuzione dei profili né negli scarti tra metriche.
11
Ipotesi di validità
- Specificazione: lo stesso predittore lineare contiene variabili e trasformazioni pertinenti per ogni link.
- Indipendenza per l’inferenza mostrata: nessun clustering residuo per famiglia, negozio o campagna. Altrimenti adattare l’incertezza.
- Sovrapposizione: nessuna separazione perfetta e nessun profilo fuori dal supporto del training.
- La vera forma del link e la trasportabilità a un altro periodo non sono dimostrabili dal solo adattamento.
12
Diagnostica e incertezza
Stima
Entrambi convergono in 6 e 8 iterazioni. Lo script standard non calcola separazione o influenza; tali diagnostiche restano necessarie prima dell’uso operativo.
Qualità probabilistica
Brier e log-loss riassumono l’accuratezza; la calibrazione globale mostra sovraprevisione di 0,60 e 0,69 punti.
Discriminazione e incertezza
AUC è circa 0,81 ma non valuta calibrazione. Gli IC delta degli AME quasi coincidono; non è un test di equivalenza.
13
Interpretare i risultati
- Il rapporto 0,991/0,596 riflette soprattutto la scala, non un effetto quasi doppio.
- Gli AME di 19,87 e 19,88 punti sono numericamente molto vicini sulla scala di probabilità in questo supporto.
- Nessun modello domina tutte le metriche: Logit ha Brier leggermente inferiore, Probit log-loss e AUC leggermente migliori.
14
Conclusioni ammesse e vietate
Ammesso
- Affermare che in questo holdout sintetico probabilità ed effetti marginali Logit e Probit sono molto vicini.
- Preferire provvisoriamente Logit per interpretare odds ratio, o mantenere Probit se una rappresentazione normale latente è sostantivamente giustificata.
Vietato
- Dedurre che un coefficiente maggiore significhi un effetto marketing più forte tra link diversi.
- Presentare l’associazione predittiva dell’engagement come effetto causale di un intervento.
- Generalizzare la piccola differenza di questo esempio a ogni campione, specificazione, classe rara o coda.
15
Decisione marketing possibile
Per questo dossier la responsabile può mantenere Logit come modello operativo perché le stime puntuali sono molto vicine su questo holdout e gli odds ratio facilitano la comunicazione. Non è un test di equivalenza. Confronto delle probabilità e rivalutazione restano necessari se cambiano popolazione, rarità o soglie.
16
Quando usare e quando non usare
Usare
Usare Logit o Probit per un esito binario quando la probabilità condizionale e la sua diagnostica sono l’obiettivo.
Non usare da solo
Non usarli da soli per identificare un effetto causale, gestire dipendenza longitudinale o modellare tempo all’evento.
Alternative
Alternative: complementary log-log per asimmetria giustificata, modelli misti o GEE per dipendenza, sopravvivenza per tempi, metodi causali per interventi.
17
Implementazioni riproducibili
Python 3.13.7 · standard library · riferimento
python msc-p026-reference.py --csv msc-p026-logit-probit.csv
# rows=1200 train=800 holdout=400
# Fits Logit and Probit by Fisher scoring.
# Reports AME delta-method CI, Brier, log-loss, AUC, calibration and declared tail profiles.R 4.5.1 · stats/utils · riferimento
# R 4.5.1, base stats/utils only
d <- read.csv("msc-p026-logit-probit.csv")
train <- subset(d, split == "train")
holdout <- subset(d, split == "holdout")
formula <- purchase ~ prior_engagement_z + I(discount_pct/10) + mobile
auc <- function(y, p) mean(outer(p[y==1], p[y==0], ">") + .5*outer(p[y==1], p[y==0], "=="))
for (link in c("logit", "probit")) {
fit <- glm(formula, data=train, family=binomial(link=link))
eta <- predict(fit, newdata=holdout, type="link")
p <- predict(fit, newdata=holdout, type="response")
dmu <- if (link == "logit") p*(1-p) else dnorm(eta)
ame <- mean(dmu*coef(fit)["prior_engagement_z"])
ame_fun <- function(b) {
e <- model.matrix(formula, holdout) %*% b
mean((if (link=="logit") plogis(e)*(1-plogis(e)) else dnorm(e))*b[2])
}
eps <- 1e-5; b <- coef(fit)
grad <- sapply(seq_along(b), function(j) {u<-v<-b;u[j]<-u[j]+eps;v[j]<-v[j]-eps;(ame_fun(u)-ame_fun(v))/(2*eps)})
se <- sqrt(drop(t(grad) %*% vcov(fit) %*% grad))
print(c(link=link, AME=ame, low=ame-1.959964*se, high=ame+1.959964*se,
Brier=mean((p-holdout$purchase)^2), LogLoss=-mean(holdout$purchase*log(p)+(1-holdout$purchase)*log(1-p)),
AUC=auc(holdout$purchase,p), Calibration=mean(p)-mean(holdout$purchase)))
}IBM SPSS Statistics 31.0.0.0 · secondaria
* IBM SPSS Statistics 31, secondary fit syntax.
GET DATA /TYPE=TXT /FILE='msc-p026-logit-probit.csv' /FIRSTCASE=2
/DELIMITERS=',' /VARIABLES=customer_id A5 split A7
prior_engagement_z F10.6 discount_pct F2.0 mobile F1.0 purchase F1.0.
COMPUTE discount_10=discount_pct/10.
TEMPORARY. SELECT IF split='train'.
GENLIN purchase (REFERENCE=FIRST) WITH prior_engagement_z discount_10 mobile
/MODEL prior_engagement_z discount_10 mobile INTERCEPT=YES DISTRIBUTION=BINOMIAL LINK=LOGIT.
TEMPORARY. SELECT IF split='train'.
GENLIN purchase (REFERENCE=FIRST) WITH prior_engagement_z discount_10 mobile
/MODEL prior_engagement_z discount_10 mobile INTERCEPT=YES DISTRIBUTION=BINOMIAL LINK=PROBIT.
* Use a saved model or OMS workflow to score the unchanged holdout.SAS 9.4 TS1M8 · secondaria
/* SAS 9.4 TS1M8, secondary fit syntax */
proc import datafile='msc-p026-logit-probit.csv' out=d dbms=csv replace; guessingrows=max; run;
data d; set d; discount_10=discount_pct/10; run;
proc logistic data=d(where=(split='train'));
model purchase(event='1')=prior_engagement_z discount_10 mobile / link=logit;
run;
proc logistic data=d(where=(split='train'));
model purchase(event='1')=prior_engagement_z discount_10 mobile / link=probit;
run;
/* Score the same holdout and compute Brier, log-loss, AUC and calibration separately. */Python è il riferimento numericamente verificato. R replica modelli e metriche. SPSS e SAS sono sintassi secondarie; scoring holdout e report vanno completati e verificati localmente.
18
Risultato finale atteso
- 01
Domanda, popolazione, unità, orizzonte, esito binario e predittori datati.
- 02
Separazione training-holdout, preprocessing e specificazioni identiche.
- 03
Coefficienti sulla propria scala, probabilità, effetti marginali con IC, convergenza e separazione.
- 04
Brier, log-loss, AUC, calibrazione, profili di coda e soglie decisionali sullo stesso holdout.
- 05
Conclusione ammessa, conclusione vietata, scelta umana e regola di rivalutazione.
19
Fonti scientifiche e livello di prova
- Amemiya (1975), Qualitative Response ModelsArticolo fondativo, testo integrale verificato
Definisce modelli binari e forme normale e logistica. Indica stime spesso vicine a un fattore moltiplicativo. Non prova equivalenza universale.
- Gündüz & Fokoué (2015)Confronto teorico e computazionale, testo integrale verificato
Documenta somiglianza centrale, differenze in coda e confronti predittivi. I risultati dipendono da definizioni e contesti; la conclusione resta limitata.
- Dimitriadis et al. (2023)Articolo metodologico sulla valutazione probabilistica, testo integrale verificato
Separa calibrazione, discriminazione e prestazione globale e definisce Brier e log score. Non decide quale link sia adatto a una popolazione marketing.
- Nelder & Wedderburn (1972)Fondamento dei modelli lineari generalizzati, testo integrale verificato
Stabilisce la regressione ponderata iterativa per la stima di massima verosimiglianza nei modelli lineari generalizzati, incluse le risposte binomiali.
- Hill, Griffiths & Lim (2018), chapter 16Capitolo di riferimento econometrico, testo integrale verificato
Definisce effetti marginali continui, media campionaria e incertezza delta. L’intervallo mostrato resta condizionato al disegno dichiarato.
Dataset · Strumento
Connessioni metodologiche
