Intervalli di Confidenza
Scorri per mostrare il menu
Gli intervalli di confidenza sono un concetto fondamentale in statistica e svolgono un ruolo cruciale nell'A/B testing. Mentre i p-value indicano se una differenza osservata potrebbe essere dovuta al caso, gli intervalli di confidenza forniscono un intervallo di valori che probabilmente contiene la vera dimensione dell'effetto. Questo intervallo aiuta a comprendere non solo se esiste una differenza statisticamente significativa, ma anche quanto potrebbe essere grande tale differenza e quanto si può essere certi di essa.
Un intervallo di confidenza viene calcolato dai dati campionari ed è solitamente espresso con una percentuale, come il 95%. Questo significa che, se si ripetesse l'esperimento molte volte, il 95% degli intervalli calcolati conterrebbe il vero parametro della popolazione. Nell'A/B testing, gli intervalli di confidenza vengono spesso utilizzati per stimare la differenza nei tassi di conversione tra il gruppo di controllo e il gruppo variante.
Il calcolo di un intervallo di confidenza per una proporzione (come un tasso di conversione) prevede la determinazione dell'errore standard del tasso osservato, quindi l'utilizzo di uno z-score per definire l'intervallo attorno al tasso osservato. Gli intervalli di confidenza sono più informativi dei soli p-value perché mostrano sia la magnitudine sia la precisione dell'effetto stimato, consentendo di prendere decisioni migliori sui risultati del test.
123456789101112131415161718192021222324252627282930313233343536import numpy as np from scipy.stats import norm # Sample data: number of conversions and total users in each group conversions_A = 200 users_A = 2000 conversions_B = 240 users_B = 2000 # Calculating conversion rates rate_A = conversions_A / users_A rate_B = conversions_B / users_B # Calculatig the standard error for each group se_A = np.sqrt(rate_A * (1 - rate_A) / users_A) se_B = np.sqrt(rate_B * (1 - rate_B) / users_B) # 95% confidence interval uses a z-score of approximately 1.96 z = norm.ppf(0.975) # Calculating confidence intervals ci_A = (rate_A - z * se_A, rate_A + z * se_A) ci_B = (rate_B - z * se_B, rate_B + z * se_B) print(f"Group A conversion rate: {rate_A:.3f}") print(f"95% CI for Group A: ({ci_A[0]:.3f}, {ci_A[1]:.3f})") print(f"Group B conversion rate: {rate_B:.3f}") print(f"95% CI for Group B: ({ci_B[0]:.3f}, {ci_B[1]:.3f})") # Confidence interval for the difference in conversion rates diff = rate_B - rate_A se_diff = np.sqrt(se_A**2 + se_B**2) ci_diff = (diff - z * se_diff, diff + z * se_diff) print(f"Difference in conversion rates (B - A): {diff:.3f}") print(f"95% CI for difference: ({ci_diff[0]:.3f}, {ci_diff[1]:.3f})")
Quando si interpreta un intervallo di confidenza nell'A/B testing, si osserva l'intervallo in cui è probabile che si trovi la vera differenza nei tassi di conversione. Se l'intervallo di confidenza per la differenza non include lo zero, si può essere ragionevolmente certi che esista un effetto reale. Se invece include lo zero, la differenza osservata potrebbe essere dovuta al caso.
Per il processo decisionale, gli intervalli di confidenza aiutano a comprendere sia la possibile entità dell'effetto sia l'incertezza che lo circonda. Questo facilita la comunicazione dei risultati agli stakeholder: invece di affermare solo che un risultato è statisticamente significativo, si può spiegare il probabile intervallo di miglioramento (o peggioramento) e il livello di confidenza in tale stima. Questo aiuta a guidare le decisioni aziendali con una comprensione più chiara dei potenziali rischi e benefici.
Grazie per i tuoi commenti!
Chieda ad AI
Chieda ad AI
Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione