Go to main content
Assisted exploratory analysis - GinnyTech header image with an editorial cosmic visual

Assisted exploratory analysis

Assisted exploratory analysis on GinnyTech: decide which signals deserve further investigation and which are just descriptive noise with controls, ownership, and reviewable outputs.

AD
Created byAndrii Dyshkantiuk
Lesson 219 / 236Level: IntermediateDuration: 26 minPrerequisites: 1

What you will learn

  • Design AI workflows for data with controls, owners, and reviewable outputs
  • Apply AI, AutoML or agentic AI to business analytics cases without losing rigor
  • Recognize risks of leakage, drift, cost, privacy, and ungoverned automation

Assisted exploratory analysis

Un export ordini segna margine in calo e il report generato dall’AI elenca dodici possibili cause, tutte plausibili, nessuna verificata. Il team passa tre giorni a inseguire il segmento sbagliato prima di accorgersi che il calo è un effetto di mix: più ordini piccoli con sconto, non prezzi in caduta. È il punto di partenza dell’analisi esplorativa assistita: usare il modello per allargare lo sguardo sui dati senza cedere la verifica, perché la velocità con cui ottieni ipotesi non dice nulla sulla loro tenuta.

L’idea di fondo

L’esplorazione assistita allarga le ipotesi con l’AI ma promuove a evidenza solo ciò che sopravvive a controlli scritti, con grain dichiarato, baseline e proprietario della decisione.

Il percorso di lavoro

Ecco l’ordine operativo con cui si conduce un’esplorazione seria.

  1. Scrivi il contratto in quattro righe: decisione con proprietario, unità di analisi, segnale atteso con soglia, condizione di fermo.
  2. Profila ogni colonna con denominatore e filtri dichiarati e risolvi le ambiguità di significato con il proprietario del dato.
  3. Ispeziona distribuzioni e code a mano sui casi estremi prima di fidarti di medie e riassunti.
  4. Condiziona ogni relazione per segmento e ripetila su due finestre separate prima di raccontarla.
  5. Traduci ogni spiegazione in un controllo che può smentirla e chiudi con la frase che ti farebbe cambiare idea.
  6. Consegna un memo in sei blocchi con stima, incertezza, rischio residuo e metrica di monitoraggio.

Perché l’esplorazione assistita fallisce senza un contratto di lavoro

La maggior parte dei workflow assistiti fallisce per un motivo banale: nessuno ha scritto cosa deve cambiare a fine analisi. Senza una decisione candidata — bloccare una campagna, correggere una pipeline, rivalutare una soglia di sconto — l’esplorazione diventa un elenco di osservazioni. Il modello è bravissimo a produrre elenchi. Il tuo lavoro è trasformarli in un albero decisionale stretto: quale scelta migliora se il segnale regge, quale resta invariata se il segnale crolla.

Un contratto minimo regge su quattro righe, scritte prima di aprire il notebook. Decisione: quale scelta operativa vuoi informare, con verbo e proprietario. Unità di analisi: dataset, variabile, segmento, anomalia o ipotesi, mai tutto insieme. Segnale atteso: cosa conterebbe come evidenza — un pattern replicabile, un’anomalia spiegabile, un segmento che sposta la metrica di almeno una soglia dichiarata. Fermo: quale rischio interrompe il flusso e chiede una revisione umana, che sia privacy, qualità dati o costo. Se manca una di queste righe, l’AI può restare un compagno di brainstorming, ma non entra nel processo ufficiale.

La distinzione tra rumore descrittivo e segnale utile si gioca qui. Rumore descrittivo è tutto ciò che è vero ma non cambia la decisione: la distribuzione dell’età dei clienti è bimodale, il martedì vende di più, una colonna ha il 3% di nulli. Segnale utile è ciò che, se confermato, sposta risorse: il calo del margine è concentrato negli ordini con sconto alto attivati dopo una certa data, a parità di mix prodotto. La prima categoria riempie le slide. La seconda chiude i ticket.

Output tipico dell’AIDomanda che lo rende utileCosa pretendi prima di usarlo
Dodici ipotesi di caloQuale muove la decisione di questa settimana?Soglia di materialità, es. impatto > 0,5 punti di margine
Profilo automatico delle colonneQuale colonna alimenta la metrica primaria?Grain, definizione e proprietario della metrica
Grafico con anomalia evidenziataL’anomalia sopravvive a stagionalità e mix?Confronto con baseline e coorte comparabile
Query SQL propostaGira su dati freschi con i filtri giusti?Revisione di join, filtri temporali e denominatore

Il contratto serve anche a contenere il costo cognitivo. Ogni ipotesi generata va verificata, e la verifica costa tempo di query, di calcolo e di revisione. Un team che chiede al modello cinquanta controlli senza priorità finisce per non eseguirne nessuno con cura. Meglio tre ipotesi ordinate per impatto atteso, ciascuna con un controllo falsificabile, che un catalogo esaustivo che nessuno apre due volte.

Il confine tra accelerare e decidere: cosa deleghi davvero al modello

Il modo più pulito per ragionare sulla delega è separare quattro livelli. Al livello del compito decidi quale fetta di lavoro accelera l’AI: bozza di query, profilo dati, checklist di controlli, prima stesura di un memo. Al livello del contesto fornisci ciò che rende l’output utilizzabile: schema delle tabelle, definizione della metrica, periodo osservato, segmenti rilevanti, vincoli di privacy. Al livello del controllo definisci come verifichi che l’output non sia sbagliato: test sul grain, confronto con baseline, ricerca di leakage, revisione del proprietario del dato. Solo al livello della decisione stabilisci quale azione segue se il controllo regge: fix della pipeline, esperimento, raccomandazione commerciale.

Questa separazione evita i due errori opposti più frequenti. Il primo è usare il modello come completamento testuale sofisticato: gli chiedi il perché di un calo e accetti una spiegazione discorsiva senza query dietro. Il secondo è rovesciato: gli affidi la raccomandazione finale su budget o compliance, dove servono giudizio di business e responsabilità nominale. In mezzo c’è la fascia produttiva, dove l’AI genera candidati e l’umano li promuove o li boccia con prove.

Il corollario operativo è semplice: nessun output generato diventa evidenza finché non è collegato a una fonte interrogabile, a un controllo eseguito e a una decisione candidata. Finché uno di questi tre manca, resta un’ipotesi in attesa, per quanto ben formulata.

Diagnosticare la forma dei dati prima di cercare pattern

Ogni esplorazione seria inizia dalla profilatura, e qui l’AI è un acceleratore onesto perché il compito è meccanico ma tedioso. Per ogni colonna che alimenta la metrica primaria vuoi sapere tipo effettivo contro tipo dichiarato, quota di nulli e vuoti, cardinalità, distribuzione approssimativa, intervallo temporale coperto e grain reale della tabella. Il grain — cosa rappresenta una riga: un ordine, una riga d’ordine, un evento — è la causa prima di quasi tutti i disastri esplorativi, perché una metrica aggregata sul grain sbagliato produce numeri esatti e significati sbagliati.

Fatti scrivere dall’AI lo scheletro di profilatura, ma pretendi che ogni metrica includa denominatore e filtri. La query di profilatura che conta gli ordini deve dichiarare se esclude resi, test interni e righe duplicate; quella sui ricavi deve dichiarare se è al netto di IVA e sconti. Senza queste clausole, due persone che profilano lo stesso dataset ottengono totali diversi e passano il pomeriggio a riconciliarli invece di analizzare.

-- Profilatura di base di una tabella ordini: ogni metrica dichiara filtri e grain
SELECT
  COUNT(*) AS n_righe,                          -- righe fisiche, grain da verificare
  COUNT(DISTINCT order_id) AS n_ordini,         -- entità di business reale
  SUM(CASE WHEN total_net IS NULL THEN 1 ELSE 0 END) * 1.0 / COUNT(*) AS quota_nulli_ricavo,
  MIN(order_date) AS prima_data,                -- copertura temporale effettiva
  MAX(order_date) AS ultima_data,
  COUNT(DISTINCT customer_id) AS n_clienti
FROM orders
WHERE order_date >= '2025-01-01'                -- finestra dichiarata, non implicita
  AND is_test = FALSE;                          -- esclusione di righe non di business

La profilatura rivela anche problemi di qualità che l’AI da sola tende a lisciare: date future impossibili, importi negativi fuori dai resi, codici cliente con cardinalità sospetta, colonne con il 40% di valori identici perché un default ha riempito i mancanti. Ognuno di questi è un bivio. Se una quota di ordini ha sconto nullo invece che zero, devi decidere con il proprietario del dato se nullo significa nessuno sconto o sconto non registrato. Nessun modello statistico risolve un’ambiguità di significato: la risolve una persona che conosce la pipeline.

Distribuzioni, code e valori anomali: leggere ciò che i riassunti nascondono

Media e mediana raccontano una storia rassicurante finché non guardi la forma. Un ticket medio di 84 euro può nascondere una distribuzione bimodale — molti ordini da 20 euro e pochi da 400 — e qualsiasi raccomandazione costruita sulla media colpirà il cliente sbagliato. Per questo la seconda mossa esplorativa, dopo la profilatura, è guardare distribuzioni complete: istogrammi, percentili, code. Chiedi all’AI di generare il codice per i percentili chiave — p5, p25, p50, p75, p95, p99 — e per la quota di massa oltre certe soglie, poi leggi tu il risultato.

Le code meritano attenzione sproporzionata perché è lì che vivono sia le opportunità sia gli errori. Una piccola quota di ordini di importo altissimo può spiegare un quarto del ricavo oppure essere un artefatto di doppia contabilizzazione; solo l’ispezione riga per riga dei casi estremi distingue i due casi. Una buona abitudine è estrarre sempre i primi venti valori per coda e guardarli con gli occhi, non con le statistiche: codici prodotto ricorrenti, date addensate, canali ripetuti sono indizi che nessun test automatico coglie con la stessa rapidità.

Per i valori anomali, la regola pratica è trattare ogni outlier come sospetto errore di qualità fino a prova contraria, senza mai cancellarlo in silenzio. La winsorizzazione (troncare le code a un percentile) e il trimming (rimuovere le code) cambiano la metrica e vanno dichiarati nel memo, con la quota di ricavo esclusa. Il punteggio standard resta una rete da pesca onesta: soglie come |z| > 3 servono da rete, non da verdetto. Su distribuzioni asimmetriche, i quantili sono più robusti della deviazione standard. L’intervallo interquartile con bande a una volta e mezza sopra e sotto resta un buon primo setaccio.

# Profilo distribuzionale: percentili, code e candidati anomali
# Ogni soglia è dichiarata e modificabile, nessun filtro silenzioso
import pandas as pd

# pct: percentili che descrivono forma e code della metrica
profilo = df["total_net"].describe(percentiles=[0.05, 0.25, 0.5, 0.75, 0.95, 0.99])
# q1, q3, iqr: ingredienti delle bande di anomalia basate sui quantili
q1, q3 = df["total_net"].quantile(0.25), df["total_net"].quantile(0.75)
iqr = q3 - q1
# sospetti: righe oltre le bande, da ispezionare a mano prima di decidere
sospetti = df[(df["total_net"] < q1 - 1.5 * iqr) | (df["total_net"] > q3 + 1.5 * iqr)]
print(profilo, sospetti.shape[0])

Relazioni tra variabili senza scambiare correlazione per spiegazione

Una volta capita ogni variabile da sola, l’esplorazione passa alle coppie: sconto contro margine, canale contro conversione, anzianità cliente contro frequenza. Qui l’AI è utile per generare rapidamente matrici di correlazione e scatter condizionati, ma la lettura resta tua perché la correlazione osservata mescola effetto reale, confondimento e selezione del campione. Sconto e margine correlano negativamente quasi per costruzione — lo sconto è sottratto dal prezzo — e scoprire una correlazione forte non spiega nulla finché non condizioni per categoria prodotto e gruppo di attivazione.

La mossa che separa l’esplorazione seria dal data-dredging è condizionare prima di concludere. Se la relazione tra campagna e conversione sparisce quando segmenti per canale, la campagna non ha funzionato: ha solo intercettato traffico già propenso. Se regge dentro ogni segmento, hai un candidato più solido. Il coefficiente di Pearson misura associazione lineare, non causa, e su relazioni non lineari — saturazione degli sconti, rendimenti decrescenti della frequenza — sottostima legami reali che un grafico mostra in un secondo.

Attenzione anche alla numerosità che gonfia la significatività. Con centomila righe, quasi ogni correlazione risulta con valore p < 0.05. Un valore piccolo smette così di essere informativo: conta la dimensione dell’effetto e la sua stabilità nel tempo. Chiedi al modello di calcolare intervalli di confidenza e di ripetere l’analisi su due finestre temporali separate; una relazione che cambia segno tra un trimestre e l’altro non è una scoperta, è un invito a cercare la variabile mancante. Quando confronti molti incroci — decine di segmenti per decine di metriche — dichiara il problema dei confronti multipli: su cento test al 5 percento, circa cinque significatività sono attese per puro caso, e vanno trattate come tali.

Segmenti ed eterogeneità: dove le medie mentono

Quasi ogni metrica aggregata nasconde eterogeneità, ed è nei segmenti che l’esplorazione assistita ripaga di più, perché scomporre un calo per cinque dimensioni a mano è noioso mentre per un modello è routine. La disciplina sta nel definire i segmenti prima di guardarli muoversi: canale, gruppo di attivazione, fascia di sconto, categoria, versione del prodotto. Segmenti scelti dopo aver visto i dati producono sempre una storia convincente e quasi sempre falsa, perché stai leggendo il rumore con il senno di poi.

Il caso del margine in calo merita di essere raccontato per intero, perché è il caso che apre la lezione. Totale in discesa, panico proporzionato. Scomposizione per categoria: elettronica stabile, casa in lieve calo, abbigliamento in caduta libera. Scomposizione successiva dentro l’abbigliamento: il margine per ordine senza sconto è invariato, il margine sugli ordini scontati è invariato, ma la quota di ordini scontati è quasi raddoppiata. È il paradosso di Simpson in divisa da lavoro: ogni pezzo è fermo, il totale si muove perché i pesi si sono spostati. La raccomandazione non riguarda i prezzi ma la politica degli sconti e il canale che li eroga. Senza la doppia scomposizione — prima per categoria, poi per fascia di sconto dentro la categoria — avresti chiesto ai category manager di tagliare costi che non c’entrano.

-- Doppia scomposizione: prima per categoria, poi per fascia di sconto
-- Isola l'effetto mix dalla variazione reale dei margini
SELECT
  categoria,                                     -- primo livello di scomposizione
  CASE WHEN sconto_pct >= 15 THEN 'alto' ELSE 'basso' END AS fascia_sconto,
  COUNT(*) AS n_ordini,                          -- pesi: quanto conta ogni cella
  AVG(margine_pct) AS margine_medio,             -- metrica dentro la cella
  SUM(margine_eur) AS margine_totale             -- contributo al totale
FROM ordini_netti
WHERE data_ordine BETWEEN '2025-09-01' AND '2025-10-15'
GROUP BY 1, 2
ORDER BY 1, 2;

Ogni segmento va letto con numerosità e incertezza allegate. Un tasso di conversione del 9% su 80 ordini non batte un 6% su 8.000: l’intervallo di confidenza del primo ingloba il secondo. Pretendi che ogni tabella segmentata riporti conteggi e, dove serve, intervalli; l’AI può calcolarli, ma devi chiederglieli esplicitamente perché di default li omette. E quando un segmento piccolo mostra un effetto enorme, la prima ipotesi è varianza campionaria, non miracolo commerciale.

Dal profilo esplorativo al memo decisionale: rendere il lavoro revisionabile

L’esplorazione produce comprensione, il memo produce decisioni. La trasformazione tra i due è dove la maggior parte del lavoro assistito si perde, perché il passaggio da notebook a raccomandazione avviene in una chat non salvata. La regola è che tutto ciò che entra nella raccomandazione deve esistere in un artefatto versionato: query salvate, definizioni delle metriche, tabelle intermedie, grafici con filtri dichiarati. Un revisore che apre il tuo lavoro deve poter rispondere a come sei arrivato a questo numero senza chiedertelo.

Un memo revisionabile regge su sei blocchi compatti. Ipotesi e decisione candidata in due righe. Dati e grain: tabelle, finestra, filtri di inclusione ed esclusione. Controlli eseguiti: baseline confrontata, segmentazioni tentate, verifiche di qualità superate e fallite. Risultato con incertezza: stima puntuale più intervallo o analisi di sensitività, mai un numero solo. Rischio residuo: cosa potrebbe ancora essere sbagliato e quanto costerebbe. Monitoraggio: quale metrica osservi dopo la decisione e quale soglia fa scattare il ripensamento. L’AI può redigere la prima bozza del memo dai tuoi output, ma la firma resta tua perché solo tu hai visto i casi estremi e parlato con il proprietario del dato.

Blocco del memoContenuto minimoErrore che previene
Ipotesi e decisioneScelta candidata, proprietario, sogliaEsplorare senza destinazione
Dati e grainFonti, finestra, filtri, definizioniTotali non riconciliabili
ControlliBaseline, segmenti, test di qualitàSpiegazioni non falsificate
Stima e incertezzaPunto, intervallo, sensitivitàFalsa precisione
Rischio e monitoraggioCosa sorvegliare, soglia di stopDecisioni senza paracadute

Quando fermarsi: costi, leakage e trappole dell’automazione esplorativa

L’esplorazione assistita ha tre modi standard di rompersi, e conviene conoscerli per nome. Il primo è il leakage tra esplorazione e validazione: usi lo stesso dataset per generare ipotesi e per confermarle, e quasi tutto sembra significativo perché stai confermando sul rumore che ha generato l’idea. La contromisura è tenere una finestra o un campione di holdout che non tocchi finché l’ipotesi non è scritta. Il secondo è la deriva silenziosa: la pipeline cambia — nuova tassonomia prodotto, nuovo tracciamento eventi — e i confronti storici smettono di essere confronti. Ogni memo dovrebbe dichiarare la versione della pipeline e l’ultimo controllo di freschezza. Il terzo è il costo dell’automazione non governata: agenti che girano query pesanti su warehouse a consumo, esportano estratti con dati personali, rigenerano dashboard che nessuno legge.

Ci sono casi in cui il metodo non funziona per costruzione. Se i dati non hanno documentazione minima — nessuna definizione di metrica, nessun proprietario, nessuna finestra affidabile — l’AI accelera la produzione di ambiguità, non la sua risoluzione. Se la decisione richiede giudizio normativo o etico, come criteri di affidamento creditizio o segmentazioni sensibili, l’esplorazione può informare ma non raccomandare. Se il campione è piccolo e rumoroso, moltiplicare gli incroci aumenta solo la probabilità di inseguire fantasmi. Riconoscere questi confini prima di partire risparmia i cicli più costosi: quelli spesi a verificare ipotesi che non andavano generate.

La pratica quotidiana si riduce a poche abitudini che reggono alla scala. Scrivi il contratto a quattro righe prima di interrogare i dati. Fai generare al modello codice verboso e dichiarativo, con filtri e grain in chiaro, invece di one-liner opachi. Ispeziona sempre le code a mano. Condiziona ogni relazione prima di raccontarla. Traduci ogni spiegazione plausibile in un controllo che può smentirla: se l’AI sostiene che il calo è stagionale, la query deve mostrare lo stesso periodo dell’anno scorso con lo stesso perimetro. E chiudi ogni ciclo con una frase che pochi scrivono ma tutti vorrebbero leggere: cosa mi farebbe cambiare idea. Se sai rispondere, l’esplorazione è finita e la decisione può partire; se non lo sai, stai ancora descrivendo, non ancora diagnosticando.

Per orientarsi sugli strumenti senza copiarli come ricette, i riferimenti stabili restano la documentazione di OpenAI Agents SDK per i workflow agentici, le guide di Vertex AI, Azure AutoML, SageMaker Autopilot e Databricks AutoML per la parte di modellazione automatica. Usali per verificare terminologia e limiti prima di progettare flussi reali, perché cambiano più in fretta di qualsiasi lezione.

Verdetto: tre ipotesi ordinate per impatto con controllo falsificabile battono cinquanta controlli senza priorità.

Il caso delle ammissioni di Berkeley

Nel 1973 le ammissioni ai dottorati di Berkeley mostravano il 44 percento di ammessi tra gli uomini contro il 35 tra le donne, un’apparente discriminazione. Lo studio pubblicato su Science nel 1975 ricompose i dati per dipartimento: dentro quasi ogni corso il divario spariva o si invertiva, perché le candidate si concentravano nei corsi più selettivi. È il paradosso di Simpson in un caso reale: il totale mente, i segmenti raccontano, e senza la doppia scomposizione la decisione sarebbe stata opposta.

Domande per chiudere la lezione

  1. Cosa distingue un segnale utile dal rumore descrittivo prima di aprire il notebook?
  2. Perché il grain della tabella va dichiarato prima di qualsiasi aggregazione?
  3. Quando una correlazione stabile merita di diventare candidata e quando resta un artefatto?
  4. Quale frase chiude un’esplorazione e apre la decisione?
Serve una mano concreta?

Bloccato su questo argomento o vuoi applicarlo al tuo caso? Prenota una call di 15 minuti con un analista esperto.

Book a call