14  Le fasi del progetto di analisi dei dati

In questo capitolo imparerai a
  • gestire il ciclo di vita di un progetto di analisi: dalla definizione della domanda di ricerca alla comunicazione dei risultati
  • organizzare i file del progetto per garantirne portabilità e condivisione
Prerequisiti
  • Leggere Veridical Data Science (Yu & Barter, 2024) focalizzandoti sul primo capitolo, che introduce le problematiche della data science, e sul quarto capitolo, che fornisce le linee guida dettagliate sull’organizzazione di un progetto di analisi dei dati.
Preparazione del Notebook
# Carica il file _common.R per impostazioni di pacchetti e opzioni
here::here("code", "_common.R") |> 
  source()

14.1 Introduzione

Nel contesto della ricerca psicologica, dove i dati rappresentano il tramite principale tra ipotesi teoriche e risultati empirici, la cura nella gestione delle informazioni raccolte è parte integrante del processo scientifico. Una gestione accurata dei dati non è solo una questione organizzativa: è una condizione necessaria per garantire l’affidabilità delle analisi e la credibilità delle conclusioni che ne derivano.

Affinché un dataset possa effettivamente sostenere un’analisi rigorosa, è indispensabile che esso sia strutturato in modo chiaro, privo di ambiguità, e accompagnato da una documentazione precisa delle operazioni effettuate. Questo vale non solo per la fase iniziale di raccolta dei dati, ma anche per tutte le successive trasformazioni — pulizia, codifica, fusione di fonti diverse — che spesso accompagnano il lavoro empirico. In assenza di tracciabilità, anche un’analisi tecnicamente corretta può risultare opaca o difficilmente replicabile.

Proprio la riproducibilità rappresenta oggi uno degli standard più elevati della buona ricerca scientifica. Disporre di dati ben documentati significa permettere ad altri studiosi — o a sé stessi in un secondo momento — di ricostruire il percorso analitico seguito, verificarne la solidità, e, se necessario, estenderlo o correggerlo. In questo senso, la qualità dei dati e la qualità dell’analisi non sono separabili.

La complessità crescente dei dati psicologici, spesso raccolti con strumenti digitali, in formato longitudinale o provenienti da più fonti, rende ancora più urgente adottare pratiche di gestione strutturate e coerenti. Un dataset non è mai un oggetto neutro: riflette scelte teoriche, operative, e tecniche. Riuscire a mantenere queste scelte visibili e accessibili nel tempo è ciò che permette di trasformare l’analisi dei dati in un processo scientificamente trasparente.

In questo capitolo, ci concentreremo su come impostare un progetto di analisi dei dati in modo da favorire fin dall’inizio chiarezza, rigore e tracciabilità. L’obiettivo non è solo tecnico, ma epistemologico: una buona gestione dei dati non serve solo a “fare funzionare il codice”, ma a costruire una relazione affidabile tra osservazione empirica e inferenza scientifica.

Prima di immergerti nella lettura di questo capitolo, prenditi un momento per riflettere sulle seguenti domande. Quali risposte daresti prima di leggere il materiale?

  • Perché è importante organizzare e documentare accuratamente i dati in un progetto di ricerca?
  • Quali problemi possono emergere se si inizia a scrivere codice senza una pianificazione adeguata?
  • Quali vantaggi offre R per la gestione dei dati rispetto ad altri strumenti?
  • Quali strategie potrebbero migliorare la riproducibilità del tuo lavoro?
  • Come struttureresti un progetto di analisi dati per mantenerlo chiaro e facilmente replicabile?

Ora, mentre leggi il capitolo, confronta le tue risposte con i concetti discussi.

14.2 Pianificazione del workflow in R: strategie per progetti sostenibili

14.2.1 L’importanza della pianificazione iniziale

Affrontare un progetto di analisi dei dati senza una pianificazione accurata è come condurre un esperimento psicologico senza una chiara ipotesi: si rischia di procedere in modo confuso, accumulando errori, ripensamenti e soluzioni improvvisate che rendono il lavoro inefficiente e difficile da mantenere nel tempo. Scrivere codice, contrariamente a quanto si potrebbe pensare, rappresenta solo una parte marginale del lavoro analitico. Gran parte dello sforzo risiede infatti nella definizione degli obiettivi, nella scelta degli strumenti adatti, nella costruzione di un percorso analitico coerente, e nella prevenzione dei cosiddetti “debiti tecnici” — cioè quelle scorciatoie momentanee che si rivelano poi difficili da correggere.

Un approccio poco strutturato, ad esempio, può portare a importare i dati in modo disordinato, a mischiare versioni intermedie con file originali, o a trascurare la documentazione delle trasformazioni applicate. In queste condizioni, anche una buona analisi rischia di diventare fragile e poco trasparente, rendendo difficile, se non impossibile, replicare i risultati.

14.2.2 Costruire un workflow efficace

Un progetto ben impostato parte da una fase iniziale di progettazione concettuale, in cui si chiariscono le domande di ricerca, si identificano le variabili chiave e si ipotizzano i passaggi fondamentali dell’analisi. Anche un semplice schema disegnato su carta può aiutare a visualizzare il flusso di lavoro: dalla pulizia dei dati, all’inferenza statistica, fino alla comunicazione dei risultati. Questo tipo di rappresentazione, per quanto preliminare, fornisce un riferimento utile per evitare deviazioni inutili e per mantenere coerenza tra fasi successive.

Parallelamente, è utile frammentare il lavoro in unità gestibili e definite, stimando in modo realistico il tempo necessario per ciascuna fase e specificando gli obiettivi in termini concreti. Ad esempio, anziché pianificare genericamente “l’analisi preliminare”, può essere più efficace definire l’obiettivo come “esplorare la distribuzione dei punteggi tra gruppo sperimentale e controllo, producendo un grafico interpretabile e documentato”. Questo tipo di specificità aiuta a monitorare i progressi e ad assegnare compiti anche in progetti collaborativi.

Anche la scelta degli strumenti merita attenzione: investire tempo all’inizio per selezionare i pacchetti R più adatti alle proprie esigenze — come janitor per la pulizia dei dati o report per la generazione automatica di output in stile APA — consente di evitare soluzioni artigianali poco sostenibili. Ma, oltre agli strumenti, è la pratica quotidiana della documentazione a fare la differenza: annotare nel codice le motivazioni delle scelte, descrivere le trasformazioni effettuate, integrare il tutto in un documento Quarto che unisce testo, codice ed evidenza empirica, rappresenta un potente alleato della trasparenza scientifica.

Infine, un aspetto centrale ma spesso trascurato riguarda la riproducibilità: organizzare il progetto secondo una struttura chiara — con cartelle distinte per dati, script, output e report — rende più semplice orientarsi nel tempo, collaborare con altri, e condividere il lavoro in modo robusto. In quest’ottica, anche i dettagli apparentemente minori — come l’uso di nomi descrittivi per le variabili o la coerenza nell’indentazione — contribuiscono alla leggibilità e alla qualità complessiva del progetto.

14.2.3 Prevenire e gestire il debito tecnico

Man mano che il progetto cresce, diventa inevitabile confrontarsi con problemi di manutenzione del codice. È importante allora ritagliarsi del tempo, anche durante lo sviluppo, per semplificare strutture ridondanti, riorganizzare script troppo lunghi e trasformare blocchi ripetitivi in funzioni riutilizzabili. Un codice ben scritto non solo riduce il rischio di errori, ma facilita anche il dialogo tra collaboratori e la futura estensione del progetto.

Un’altra abitudine preziosa consiste nel mantenere una coerenza tra codice e commenti: ogni modifica significativa dovrebbe essere accompagnata da un aggiornamento delle annotazioni, per evitare che il codice racconti una storia diversa da quella riportata nei commenti. È utile anche predisporre, prima della condivisione del progetto, una verifica finale: controllare che i dati originali siano conservati separatamente, che l’ambiente di lavoro sia documentato (ad esempio salvando l’output di sessionInfo()), e che ogni script sia leggibile e dotato delle spiegazioni necessarie.

In definitiva, pianificare un workflow in R non significa complicare il lavoro, ma costruire le condizioni per un’analisi più efficace, più chiara e più duratura. L’organizzazione del progetto, la cura nella scrittura del codice e l’adozione di buone pratiche tecniche non sono elementi opzionali: sono il fondamento di un approccio scientifico che mira a comprendere, e non solo a calcolare.

14.3 Capacità di gestione dei dati in R

Dopo aver compreso l’importanza di una pianificazione strategica, il passo successivo è dotarsi di strumenti affidabili per gestire, analizzare e documentare i dati in modo efficace. In questo contesto, R si rivela un alleato prezioso. Si tratta di un ambiente di programmazione concepito per accompagnare l’intero ciclo di vita dei dati: dalla loro importazione alla loro trasformazione, dall’analisi statistica alla produzione di report riproducibili. La sua versatilità ne fa uno strumento centrale in qualsiasi workflow orientato alla qualità e alla trasparenza, in particolare in ambito psicologico, dove la complessità dei dataset richiede flessibilità e rigore metodologico.

R permette, innanzitutto, di importare ed esportare dati in molti formati, grazie a pacchetti come readr e rio, che semplificano l’interazione con file CSV, database o persino fonti web. Una volta acquisiti, i dati possono essere rapidamente puliti e trasformati con strumenti come dplyr, tidyr e stringr, che offrono un linguaggio espressivo e intuitivo per filtrare osservazioni, ristrutturare tabelle, modificare valori testuali e preparare i dati per l’analisi. La fase esplorativa può quindi contare su strumenti come ggplot2 per la visualizzazione e il riconoscimento di pattern nei dati, oltre alla possibilità di sintetizzare indicatori descrittivi in modo elegante e conciso.

Ma la vera forza di R emerge quando si passa alla documentazione del processo analitico. Attraverso R Markdown e Quarto è possibile integrare in un unico documento codice, testo esplicativo, tabelle e grafici, creando report dinamici che raccontano l’intero percorso analitico e rendono semplice la riproduzione da parte di altri (o di sé stessi a distanza di tempo). A questo si aggiunge la possibilità di utilizzare sistemi di controllo di versione, come Git, direttamente integrati in RStudio: ciò consente di tracciare le modifiche al codice, collaborare con altri in modo strutturato e garantire la trasparenza del processo di analisi.

L’integrazione tra strategia progettuale e strumenti tecnici rende R una piattaforma particolarmente adatta a chi desidera lavorare in modo affidabile, efficiente e metodologicamente solido. In progetti che coinvolgono dati complessi, tale combinazione rappresenta una garanzia per la qualità e la sostenibilità delle analisi.

14.4 Configurare l’ambiente R

Per trarre il massimo beneficio dall’uso di R è fondamentale configurare correttamente l’ambiente di lavoro. RStudio, in particolare, offre un’interfaccia potente ma personalizzabile, che consente di controllare in modo preciso il comportamento delle sessioni di lavoro. Un primo passo consiste nel disattivare il salvataggio automatico dell’ambiente: accedendo alle impostazioni generali (Tools > Global Options > General), è consigliabile deselezionare l’opzione di caricamento automatico del file .RData all’avvio e impostare la voce relativa al salvataggio del workspace su Never. Questo accorgimento incoraggia l’uso sistematico degli script come unico riferimento per l’analisi, evitando che residui di sessioni precedenti influenzino i risultati in modo non controllabile. In altre parole, si favorisce una gestione del lavoro basata su codice esplicito e documentato, piuttosto che su ambienti temporanei e invisibili.

Un ambiente ben configurato deve anche includere i pacchetti essenziali per un’analisi efficace. Tra questi, tidyverse rappresenta un vero e proprio ecosistema integrato per la manipolazione, la visualizzazione e l’analisi dei dati: include strumenti come dplyr, ggplot2, readr e altri ancora, tutti progettati secondo una filosofia coerente e orientata alla leggibilità del codice. Il pacchetto here, invece, semplifica la gestione dei percorsi relativi, permettendo di scrivere script portabili che funzionano correttamente indipendentemente dal sistema operativo o dalla struttura dei file locali.

Per assicurarsi che questi strumenti siano disponibili, è sufficiente installarli (una sola volta) con la funzione install.packages(), e poi caricarli all’inizio di ogni script. Un esempio di setup iniziale potrebbe essere:

# install.packages(c("here", "tidyverse"))  # solo la prima volta
library(here)
library(tidyverse)

Adottare fin da subito queste buone pratiche di configurazione aiuta non solo a evitare errori, ma anche a creare un ambiente di lavoro solido, coerente e adatto alla produzione di analisi ripetibili e condivisibili. È in questa direzione che si sviluppa il metodo scientifico nell’era dei dati: attraverso strumenti capaci di coniugare potenza tecnica e trasparenza metodologica.

14.5 Gestione dei Progetti

In RStudio, l’utilizzo dei progetti rappresenta una pratica essenziale per mantenere ordine e coerenza nel proprio lavoro. Ogni progetto consente di creare un ambiente isolato e dedicato, in cui tutti i file – dati, script, output, documentazione – sono raccolti all’interno di una singola directory. Questo approccio riduce drasticamente il rischio di confusione tra file appartenenti a progetti diversi e favorisce una gestione più chiara dei percorsi relativi. Per creare un nuovo progetto è sufficiente selezionare File > New Project, scegliere la directory desiderata e salvare al suo interno tutti i file pertinenti.

Lavorare all’interno di un progetto non è soltanto una questione di ordine: è anche una strategia per rafforzare la riproducibilità e l’efficienza del processo analitico. Ogni progetto diventa un’unità autosufficiente e replicabile, facilitando anche la collaborazione con altri ricercatori.

14.6 Il Ciclo di Vita di un Progetto di Data Science

Una volta predisposto un ambiente di lavoro stabile e ben strutturato, è possibile affrontare con metodo le diverse fasi di un progetto di Data Science. Secondo la proposta di Yu & Barter (2024), un progetto ben condotto segue un ciclo di vita articolato in cinque momenti fondamentali: la formulazione della domanda di ricerca, la preparazione e analisi esplorativa dei dati, l’eventuale modellazione inferenziale o predittiva, la valutazione dei risultati e, infine, la comunicazione degli esiti.

Non tutti i progetti prevedono una fase modellistica vera e propria, ma tutti traggono vantaggio da un approccio ordinato che attraversi in modo coerente ciascuna di queste tappe. Questo consente non solo di migliorare la qualità delle analisi, ma anche di ridurre il rischio di errori e ambiguità interpretative.

14.6.1 Formulazione del Problema e Raccolta dei Dati

La prima fase consiste nella definizione chiara degli obiettivi del progetto. In ambito applicativo, ciò può tradursi nella necessità di produrre un report su un intervento specifico, senza particolari ambizioni teoriche. In ambito accademico, invece, è fondamentale che le domande di ricerca siano ancorate alla letteratura e che le scelte metodologiche siano coerenti con le teorie di riferimento. In entrambi i casi, è essenziale che le domande siano precise e realisticamente affrontabili con i dati disponibili.

La raccolta dei dati può avvenire attingendo da fonti già esistenti – come dataset pubblici o archivi di laboratorio – oppure tramite nuove rilevazioni. Qualunque sia l’origine, è importante pianificare con attenzione le analisi prima di acquisire i dati, in modo da evitare la raccolta di informazioni superflue o, peggio, inadeguate rispetto agli obiettivi. È inoltre indispensabile documentare le modalità di raccolta e dichiarare eventuali limitazioni.

14.6.2 Pulizia, Preprocessing e Analisi Esplorativa

Una volta acquisiti i dati, occorre importarli in R in un formato analizzabile, solitamente sotto forma di data frame. Il pacchetto rio consente di semplificare questa operazione, mentre here facilita la gestione di percorsi relativi, rendendo i progetti più portabili e riproducibili. I dati grezzi dovrebbero essere conservati separatamente rispetto ai dati puliti, idealmente in cartelle distinte all’interno del progetto.

La fase di pulizia è cruciale: si tratta di individuare e correggere errori, gestire valori mancanti o anomali, rimuovere duplicati e uniformare le formattazioni. I file originali non devono mai essere modificati direttamente; tutte le trasformazioni vanno effettuate tramite script, così da garantire la tracciabilità.

Il preprocessing consiste nell’adattare i dati alle esigenze delle analisi successive. Alcune tecniche richiedono, ad esempio, la standardizzazione delle variabili o la generazione di nuove variabili derivate. Ogni trasformazione deve essere documentata con attenzione, in quanto può influenzare in modo significativo l’interpretazione dei risultati.

L’analisi esplorativa rappresenta un momento di osservazione attenta: calcolo di statistiche descrittive, visualizzazioni, individuazione di pattern e anomalie. È un passaggio fondamentale per comprendere la struttura dei dati e orientare le scelte metodologiche future.

14.6.3 Analisi Predittiva e Inferenziale

Quando previsto, il cuore del progetto può consistere nella costruzione di modelli statistici o predittivi. In ambito psicologico, si ricorre frequentemente a regressioni, test parametrici e non parametrici, modelli misti o tecniche di classificazione. L’obiettivo può essere inferenziale (trarre conclusioni su una popolazione) oppure predittivo (stimare il comportamento futuro di una variabile). In entrambi i casi, è essenziale che le scelte modellistiche siano motivate e che le assunzioni siano verificate.

14.6.4 Valutazione dei Risultati

L’interpretazione dei risultati richiede un duplice livello di attenzione: da un lato, la valutazione statistica, tramite test, intervalli di confidenza o misure di bontà del modello; dall’altro, la coerenza con la teoria o con il contesto applicativo. È importante ricollegarsi agli obiettivi iniziali e interrogarsi sull’eventuale presenza di limiti o ambiguità.

14.6.5 Comunicazione dei Risultati

La fase finale riguarda la comunicazione, che può assumere forme diverse a seconda del pubblico di riferimento: articoli accademici, report aziendali, presentazioni pubbliche. Qualunque sia il formato, è necessario presentare le analisi in modo chiaro, motivato e trasparente. L’uso di visualizzazioni curate e di un linguaggio accessibile contribuisce a rendere il lavoro più comprensibile e più utile per chi lo riceve.

14.7 Organizzazione del Progetto

Per favorire la riproducibilità e la gestione a lungo termine, è buona norma strutturare il progetto in modo ordinato. RStudio consente di creare file .Rproj che definiscono una directory principale da cui partono tutti i percorsi relativi. Aprire il progetto tramite questo file garantisce coerenza e facilita la navigazione tra i file.

Una struttura consigliata, ispirata al modello proposto da Yu & Barter (2024), prevede una directory principale contenente i dati (suddivisi in grezzi ed elaborati), la documentazione analitica, gli script e un file README che spieghi la struttura del progetto. La documentazione può essere realizzata in Quarto, Jupyter o altri formati, e organizzata in sottocartelle per maggiore chiarezza. Ad esempio:

nome_progetto/
├── nome_progetto.Rproj
├── data/
│   ├── raw/
│   │   └── my_data.csv
│   ├── processed/
├── src/
│   ├── 01_data_cleaning.qmd
│   ├── 02_analysis.qmd
│   └── functions/
└── README.md

Una simile struttura favorisce l’efficienza, la tracciabilità delle operazioni e la collaborazione tra più persone. Separare i dati grezzi da quelli elaborati, mantenere script modulari e descrivere con chiarezza le scelte analitiche permette di affrontare con rigore anche progetti complessi e di facilitarne la diffusione e la verifica.

14.8 Riflessioni conclusive

Uno dei principali vantaggi nell’uso del codice per l’analisi dei dati è la possibilità di ottenere risultati stabili e replicabili nel tempo. Quando si lavora in un ambiente ben configurato, l’esecuzione di uno script sugli stessi dati porta sempre agli stessi esiti. Questo aspetto, apparentemente tecnico, ha in realtà implicazioni profonde: si tratta del principio di riproducibilità computazionale, un pilastro della pratica scientifica contemporanea. In psicologia — come in tutte le scienze empiriche — la possibilità di risalire con precisione al processo analitico che ha condotto a una certa conclusione è una condizione necessaria per la trasparenza, la valutazione critica e l’accumulazione di conoscenza.

La riproducibilità, tuttavia, non va intesa solo come un requisito per la comunicazione scientifica: è anche uno strumento prezioso per il ricercatore stesso. In assenza di un workflow tracciabile, anche lo stesso autore rischia di non riuscire più a interpretare correttamente il proprio lavoro a distanza di tempo. Ritornare su un’analisi svolta mesi prima e trovare codice leggibile, organizzato e funzionante significa potersi riappropriare rapidamente del significato delle scelte fatte, correggere eventuali errori, oppure estendere il progetto a nuovi dati o a nuove domande.

La condivisione di un progetto ben strutturato permette inoltre ad altri ricercatori di verificare, adattare e riutilizzare procedure analitiche già testate, riducendo sprechi di tempo e favorendo un circolo virtuoso di apprendimento. In questo senso, la riproducibilità è anche una forma di collaborazione implicita: chi rende chiaro il proprio processo analitico contribuisce a una scienza più cumulativa e aperta.

Perché tutto ciò sia possibile, serve però adottare abitudini e strumenti coerenti con questi obiettivi. La cura nella documentazione, la definizione di una struttura di progetto chiara, l’uso del controllo di versione, l’attenzione all’integrità e alla trasformazione dei dati: sono tutte pratiche che, anche se inizialmente possono sembrare secondarie rispetto alla statistica in senso stretto, costituiscono la base operativa della buona analisi. Non si tratta di regole astratte, ma di condizioni pratiche che rendono possibile un lavoro analitico davvero credibile e duraturo.

Nel percorso affrontato finora, abbiamo visto come l’intero ciclo di vita di un’analisi – dalla raccolta dei dati alla loro esplorazione, dalla modellazione alla comunicazione dei risultati – richieda uno sguardo progettuale e non solo esecutivo. Un progetto ben condotto non è quello che produce semplicemente un risultato “corretto”, ma quello che può essere riutilizzato, aggiornato e compreso anche da chi non ha partecipato alla sua realizzazione.

In definitiva, la riproducibilità non è un vincolo esterno imposto dalla comunità scientifica, ma un investimento nella qualità del proprio pensiero. Rendere esplicite le fasi del lavoro, rendere trasparente il codice, usare strumenti come R in un ambiente ben organizzato, non significa solo essere più ordinati: significa allenarsi a ragionare in modo più preciso, più critico e più consapevole. È in questo senso che la data analysis diventa, a pieno titolo, parte integrante del metodo scientifico.

Un problema cruciale nella psicologia contemporanea è la crisi di replicabilità, che evidenzia come molti risultati di ricerca non siano replicabili (Collaboration, 2015). La riproducibilità computazionale, pur avendo un obiettivo più ristretto, si concentra sulla possibilità di ottenere gli stessi risultati applicando lo stesso codice agli stessi dati. Questo approccio, sebbene non risolva interamente la crisi, rappresenta un passo fondamentale verso una scienza più trasparente e rigorosa.

Ora che hai completato il capitolo, confrontiamo le risposte alle domande iniziali con quanto appreso:

  1. Perché è importante organizzare e documentare accuratamente i dati in un progetto di ricerca?
    • Una gestione strutturata dei dati riduce il rischio di errori, facilita l’analisi e migliora la riproducibilità, rendendo il lavoro scientifico più affidabile e trasparente.
  2. Quali problemi possono emergere se si inizia a scrivere codice senza una pianificazione adeguata?
    • Senza una pianificazione strategica si rischia di incorrere nel “debito tecnico”, accumulando codice disordinato che richiede correzioni costose in termini di tempo e risorse. Inoltre, si potrebbero fare scelte subottimali che compromettono la scalabilità e manutenibilità del progetto.
  3. Quali vantaggi offre R per la gestione dei dati rispetto ad altri strumenti?
    • R fornisce strumenti avanzati per importazione, pulizia, analisi e visualizzazione dei dati, oltre a supportare la documentazione dinamica e il controllo delle versioni con Git. La sua ampia comunità e la disponibilità di pacchetti specializzati lo rendono particolarmente adatto per l’analisi statistica e la ricerca.
  4. Quali strategie potrebbero migliorare la riproducibilità del tuo lavoro?
    • Utilizzare strumenti come Quarto per documentare il codice e le analisi, adottare percorsi relativi con il pacchetto here, strutturare i dati in cartelle ben organizzate e integrare il controllo delle versioni con Git.
  5. Come struttureresti un progetto di analisi dati per mantenerlo chiaro e facilmente replicabile?
    • Adottando una struttura chiara, ad esempio:

      nome_progetto/
      ├── nome_progetto.Rproj
      ├── data/
      │   ├── raw/
      │   │   └── my_data.csv
      │   ├── processed/
      ├── dslc_documentation/
      │   ├── 01_data_cleaning.qmd
      │   ├── 02_analysis.qmd
      │   └── functions/
      └── README.md
      • Questa organizzazione separa i dati grezzi da quelli elaborati, include documentazione chiara e facilita la riproducibilità.

Conclusione: Riflettere in anticipo sui problemi e sulle strategie di gestione dei dati aiuta a costruire workflow più efficienti e affidabili. Se le tue risposte iniziali differivano da queste, quali nuovi spunti hai appreso da questo capitolo?

14.9 Esercizi

L’obiettivo di questo esercizio è comprendere il ciclo di vita di un progetto di analisi dei dati, l’organizzazione del progetto e la gestione della riproducibilità.

  1. Gestione del progetto di analisi

    • Quali sono le fasi principali di un progetto di analisi dei dati secondo Yu (2024)?
    • Spiega il ruolo della fase di formulazione del problema e raccolta dei dati.
  2. Organizzazione del workspace in R

    • Quali impostazioni devono essere modificate in RStudio per favorire la riproducibilità?
    • Perché è importante usare percorsi relativi nei progetti in RStudio?
    • Descrivi il ruolo del pacchetto here nella gestione dei percorsi dei file.
  3. Struttura dei progetti in R

    • Quali sono i vantaggi dell’utilizzo dei progetti in RStudio?
    • Quali sono le cartelle principali in una struttura organizzata di un progetto?
    • Perché è utile separare i dati grezzi dai dati processati?
  4. Importazione ed esportazione dei dati

    • Quali pacchetti di R possono essere utilizzati per importare ed esportare dati?
    • Scrivi un esempio di codice per importare un file CSV usando rio e il pacchetto here.
    • Come puoi esportare un dataset modificato in una cartella dedicata ai dati processati?
  5. Pulizia e preprocessing dei dati

    • Qual è la differenza tra pulizia e preprocessing dei dati?
    • Quali strumenti di dplyr sono comunemente usati per pulire e trasformare i dati?
  6. Analisi esplorativa dei dati (EDA)

    • Quali sono alcuni strumenti utilizzati in R per effettuare un’analisi esplorativa dei dati?
    • Scrivi un breve esempio di codice in R per calcolare statistiche descrittive di base su un dataset.
  7. Riproducibilità e comunicazione dei risultati

    • Perché la riproducibilità è un elemento chiave nella scienza dei dati?
    • Quali strumenti offre Quarto per la documentazione e la condivisione dei risultati di un’analisi?

1. Gestione del progetto di analisi

  • Fasi principali del progetto di analisi dei dati (Yu, 2024):
    1. Formulazione del problema e raccolta dei dati
    2. Pulizia, preprocessing e analisi esplorativa
    3. Analisi predittiva e/o inferenziale (se applicabile)
    4. Valutazione dei risultati
    5. Comunicazione dei risultati
  • Ruolo della fase di formulazione del problema:
    Aiuta a definire gli obiettivi dell’analisi e a selezionare le fonti di dati adeguate. Una domanda di ricerca ben definita garantisce che i dati siano pertinenti e che le analisi siano mirate.

2. Organizzazione del workspace in R

  • Impostazioni da modificare in RStudio:

    • Disabilitare Restore .RData into workspace at startup
    • Impostare Save workspace to .RData on exit su “Never”
  • Importanza dei percorsi relativi:
    Permettono di rendere il progetto portabile e riproducibile, evitando problemi di percorsi assoluti specifici per un computer.

  • Ruolo del pacchetto here
    Aiuta a gestire i percorsi relativi all’interno del progetto senza dover specificare percorsi assoluti.

3. Struttura dei progetti in R

  • Vantaggi dell’uso dei progetti in RStudio:
    Mantengono ambienti separati, organizzano i file e facilitano la riproducibilità.

  • Cartelle principali in una struttura organizzata:

    • data/raw/ → Dati grezzi
    • data/processed/ → Dati elaborati
    • dslc_documentation/ → Documentazione e script
    • functions/ → Funzioni personalizzate
  • Separare dati grezzi da dati processati:
    Evita di modificare accidentalmente i dati originali, garantendo riproducibilità.

4. Importazione ed esportazione dei dati

  • Pacchetti per importazione/esportazione:

    • rio: unifica funzioni di import/export
    • readr: specifico per CSV e altri formati di testo
    • here: gestisce percorsi relativi
  • Esempio di codice per importare dati CSV:

    library(here)
    library(rio)
    df <- rio::import(here("data", "raw", "my_data.csv"))
  • Esportare dati modificati:

    rio::export(df, here("data", "processed", "my_data_processed.csv"))

5. Pulizia e preprocessing dei dati

  • Differenza tra pulizia e preprocessing:
    • Pulizia: rimozione di errori, gestione dei dati mancanti, formattazione
    • Preprocessing: trasformazione dei dati per adattarli a modelli specifici
  • Strumenti di dplyr per pulizia e trasformazione:

6. Analisi esplorativa dei dati (EDA)

7. Riproducibilità e comunicazione dei risultati

  • Importanza della riproducibilità:
    • Facilita la verifica e il miglioramento degli studi
    • Previene errori accidentali
    • Consente a terzi di replicare e costruire su ricerche precedenti
  • Strumenti di Quarto:
    • Permette di combinare testo, codice e output in documenti riproducibili
    • Supporta citazioni automatiche e gestione delle bibliografie

Informazioni sull’Ambiente di Sviluppo

sessionInfo()
#> R version 4.5.0 (2025-04-11)
#> Platform: aarch64-apple-darwin20
#> Running under: macOS Sequoia 15.5
#> 
#> Matrix products: default
#> BLAS:   /Library/Frameworks/R.framework/Versions/4.5-arm64/Resources/lib/libRblas.0.dylib 
#> LAPACK: /Library/Frameworks/R.framework/Versions/4.5-arm64/Resources/lib/libRlapack.dylib;  LAPACK version 3.12.1
#> 
#> locale:
#> [1] C/UTF-8/C/C/C/C
#> 
#> time zone: Europe/Rome
#> tzcode source: internal
#> 
#> attached base packages:
#> [1] stats     graphics  grDevices utils     datasets  methods   base     
#> 
#> other attached packages:
#>  [1] thematic_0.1.7   MetBrewer_0.2.0  ggokabeito_0.1.0 see_0.11.0      
#>  [5] gridExtra_2.3    patchwork_1.3.0  bayesplot_1.13.0 psych_2.5.3     
#>  [9] scales_1.4.0     markdown_2.0     knitr_1.50       lubridate_1.9.4 
#> [13] forcats_1.0.0    stringr_1.5.1    dplyr_1.1.4      purrr_1.0.4     
#> [17] readr_2.1.5      tidyr_1.3.1      tibble_3.3.0     ggplot2_3.5.2   
#> [21] tidyverse_2.0.0  rio_1.2.3        here_1.0.1      
#> 
#> loaded via a namespace (and not attached):
#>  [1] generics_0.1.4     stringi_1.8.7      lattice_0.22-7    
#>  [4] hms_1.1.3          digest_0.6.37      magrittr_2.0.3    
#>  [7] evaluate_1.0.4     grid_4.5.0         timechange_0.3.0  
#> [10] RColorBrewer_1.1-3 fastmap_1.2.0      rprojroot_2.0.4   
#> [13] jsonlite_2.0.0     mnormt_2.1.1       cli_3.6.5         
#> [16] rlang_1.1.6        withr_3.0.2        tools_4.5.0       
#> [19] parallel_4.5.0     tzdb_0.5.0         pacman_0.5.1      
#> [22] vctrs_0.6.5        R6_2.6.1           lifecycle_1.0.4   
#> [25] htmlwidgets_1.6.4  pkgconfig_2.0.3    pillar_1.10.2     
#> [28] gtable_0.3.6       glue_1.8.0         xfun_0.52         
#> [31] tidyselect_1.2.1   rstudioapi_0.17.1  farver_2.1.2      
#> [34] htmltools_0.5.8.1  nlme_3.1-168       rmarkdown_2.29    
#> [37] compiler_4.5.0

Bibliografia

Collaboration, O. S. (2015). Estimating the reproducibility of psychological science. Science, 349(6251), aac4716.
Yu, B., & Barter, R. L. (2024). Veridical data science: The practice of responsible data analysis and decision making. MIT Press.