Indice
L'IA per l'analisi dei dati in R
Gli strumenti IA fanno oramai parte del normale modo di lavorare nel contesto dell'analisi dei dati e del coding, ed è dunque fondamentale imparare ad utilizzarli in modo consapevole e critico. Il rischio principale, per il principiante e non solo, è quello di porre eccessive aspettative su strumenti quasi magici, che facciano l'analisi dei dati o scrivano il codice al posto nostro.
Introduzione
Nell'era dell'Intelligenza Artificiale (IA), il coding rimane davvero una competenza essenziale per l'analisi dei dati?
In realtà sì, e anzi è forse ancora più strategica di prima, per sfruttare al meglio le potenzialità degli strumenti IA per l'analisi. La capacità di scrivere e leggere il codice è fondamentale per gestire e guidare il flusso di lavoro, e per accedere a funzionalità più avanzate e complesse che sono ora (quasi) a portata di mano.
Per fare le domande
Prima di tutto, gli strumenti IA non sostituiscono la necessità di comprendere e interpretare il codice. Essi, infatti, non possono sapere cosa vogliamo fare noi, ma si limitano ad analizzare le richieste (tutt'al più con il contesto aggiuntivo dei file che carichiamo), confrontarle con la loro vasta base di training (esempi), per fornire la risposta più probabile. Questo significa che, per ottenere risposte utili, dobbiamo essere in grado di formulare domande chiare e specifiche, il che richiede una conoscenza di base di R e delle tecniche di analisi dei dati.
Per comprendere le risposte
E poi, le IA sbagliano, e il principiante potrebbe avere difficoltà a identificare e correggere l'errore. Capita che i suggerimenti dell'IA siano sin troppo avanzati e complessi, rispetto alla capacità dell'utente di comprendere cosa fa il codice e valutare se fa al caso.
Quando poi le due cose si uniscono in suggerimenti troppo complessi e non funzionali agli obiettivi di analisi (e in questo senso 'sbagliati') … probabilmente si dovrà ricominciare daccapo, dopo aver perso un bel po' di tempo.
Per gestire il processo di analisi
Un consiglio classico è quello di dividere il compito (ad esempio la procedura di analisi) in steps che possiamo gestire, e poi farci aiutare dall'IA. Procedere per gradi aiuta a mantenere il controllo del processo.
Altro aspetto importante, specie nel contesto accademico, è che gli assistenti IA potrebbero non essere in grado di gestire analisi che richiedono pacchetti meno usati e molto specializzati, in quanto, per vasta che sia la base di addestramento, la documentazione di pacchetti di nicchia potrebbe non rientrarvi (è un classico bias).
Le chat IA
Le chat IA sono applicazioni che utilizzano modelli di linguaggio naturale (LLM) per interagire con gli utenti in modo conversazionale.
Com'è noto, questo significa che è possibile chiedere all’IA: "Crea uno script per calcolare la media di questa variabile" e l’IA fornirà il codice corrispondente.
Nel contesto di un uso di base del codice, le chat possono essere usate non solo per generare il codice necessario, ma anche per
- identificare errori sintattici o logici nel codice esistente e suggerire correzioni;
- (ri)formattare lo script applicando convenzioni di stile, indentazioni e spaziature coerenti, rendendolo conforme agli standard (vedi Buone pratiche del coding in R;
- generare documentazione per il codice, creando commenti, o chiedere spiegazioni (ad esempio: “che significa questo output?”; “che fa questo script?”).
Gli assistenti integrati per il codice
Esistono poi assistenti IA integrati negli ambienti di sviluppo, come Codeion (ora Windsurf), GitHub Copilot, o Gemini Code Assist, a cui è dedicata la pagina Gli assistenti al codice IA
Integrazione degli LLM tramite API
Con l'abbonamento alle API di un LLM (Large Language Model), è possibile comunicare direttamente con il modello in R (programmaticamente, ovvero da script) ed eseguire numerose funzioni. Svariati sono i pacchetti disponili a tale scopo, fra i quali ricordo:
- openai per le api di OpenAi;
- gptstudio e gpttools per le api di OpenAi, Gemini, Anthropic e altre;
- gemini.R per le api di Gemini;
- ellmer per interagire con molti LLM via chat;
- chattr per usare in RStudio la chat di GitHub Copilot eventualmente attivo in RStudio, e quelle di OpenAI e LlamaGPT (via API) (cfr. chattr e Gli assistenti al codice IA).
La comunità di R è molto attiva nello sviluppare nuovi strumenti e pacchetti per sfruttare al meglio le potenzialità degli LLM, che a loro volta cambiano molto velocemente. Questo elenco esemplificativo, oltre che limitato, potrebbe quindi essere già obsoleto (scrivo ad aprile 2025).
In ogni caso, pacchetti a parte, questo tipo di integrazione consiste nell'inviare comandi e ricevere risposte direttamente all'interno dell'ambiente di programmazione, automatizzando flussi di lavoro complessi. La gestione degli input e degli output è infatti completamente automatizzata, e non è necessario copiare e incollare i risultati tra diverse applicazioni o strumenti.
Ad esempio, si possono inviare richieste per analizzare dati o eseguire operazioni di machine learning direttamente da R, e ricevere un output gestibile in R, senza dover passare attraverso un'interfaccia web, esportare o importare file. Oppure, nel campo dell'elaborazione del linguaggio naturale, si può creare uno script R che invia dati a un LLM per l'analisi del sentiment, elabora la risposta dell'LLM e poi utilizza i risultati per generare grafici o report.
Questa capacità di interazione diretta e automatizzata apre, evidentemente, nuove frontiere per l'analisi dei dati, in particolare per l'elaborazione del linguaggio naturale in R. Apre però anche grandi interrogativi in merito alla "spiegabilità" dei risultati, e quindi alla loro riproducibilità.
La gestione del processo è ancora più complessa e richiede quindi una buona familiarità con R (o altri linguaggi di programmazione, primi fra tutti Python), con gli LLM e con le API.