Test automatizzati dei dati per le informazioni sulle associazioni benefiche in Canada
Questo articolo analizza i test automatici per garantire la qualità dei dati per le associazioni di beneficenza canadesi e le donazioni.
― 11 leggere min
Indice
Questo articolo parlerà dei test automatizzati progettati per controllare la qualità dei dati riguardanti le associazioni benefiche, le donazioni politiche e il lobbying in Canada. Questi test aiutano a garantire che i dati siano accurati, rimangano coerenti nel tempo e corrispondano ad altre fonti di dati. Copriremo i test che abbiamo creato, cosa abbiamo trovato nei dati e idee per lavori futuri.
Sfondo
La Fondazione di Giornalismo Investigativo (IJF) gestisce otto importanti database relativi a informazioni finanziarie delle associazioni benefiche, donazioni politiche e lobbying governativo in Canada. Questi database sono disponibili al pubblico e possono essere facilmente accessibili e utilizzati. Tuttavia, le fonti di dati grezzi che compongono questi database differiscono notevolmente nella loro qualità e completezza, che possono variare da una regione all'altra nel tempo. Per questo motivo, l'IJF ha costruito un dettagliato pipeline di dati che aggiorna regolarmente questi database mantenendoli puliti e standardizzati.
I test automatizzati sui dati sono un metodo utile per confermare che i dati soddisfino determinati standard. Questo è particolarmente utile quando si trattano database complessi che raccolgono informazioni da varie fonti. Inoltre, ogni dataset è costruito su certe idee e decisioni di base che possono influenzare come i dati vengono poi analizzati.
Per automatizzare la validazione dei dati per l'IJF, abbiamo creato un insieme di test utilizzando una libreria specifica in Python. Questo strumento di testing aiuta a garantire che i dati condivisi siano affidabili e chiari, il che è importante per il lavoro giornalistico e accademico che si basa su di essi.
Strumenti Attuali per la Qualità dei Dati
Negli ultimi anni, c'è stata una crescente preoccupazione riguardo alla trasparenza e all'affidabilità della ricerca pubblicata. Alcuni studi hanno cercato di ripetere risultati precedenti, e molti hanno fallito. Questa situazione ha evidenziato la necessità di standard migliori nella ricerca, inclusi flussi di lavoro riproducibili e accesso a dati e codici. La validazione automatizzata dei dati è uno strumento cruciale per raggiungere questo obiettivo.
Un libro pertinente discute l'importanza di flussi di lavoro riproducibili e ben documentati. Sottolinea che essere aperti riguardo ai cambiamenti nei dati e nel codice è essenziale per la riproducibilità. Se i ricercatori e le riviste non adottano queste pratiche, potrebbero continuare a pubblicare lavori che non possono essere ripetuti, portando a una sfiducia pubblica nella scienza e conclusioni imprecise.
Un'altra risorsa fornisce un framework per creare test per migliorare la qualità del codice mostrando cosa ci si aspetta dai dati in vari stadi. Questo framework include test di validità, Coerenza Interna e coerenza esterna. La validità riguarda l'assicurarsi che i tipi e i valori dei dati siano corretti, mentre la coerenza interna verifica se le parti dei dati si sommano correttamente. La coerenza esterna significa verificare che i dati si allineino con fonti esterne.
Sono stati creati anche vari strumenti, specialmente per progetti di machine learning. Alcuni di questi strumenti si concentrano sulla rilevazione di errori nei dati utilizzati per questi progetti, sottolineando l'importanza di trovare e correggere i problemi precocemente nel processo di gestione dei dati.
Oltre agli strumenti progettati per situazioni specifiche, sono disponibili molti strumenti generali per il testing dei dati. Alcune risorse forniscono informazioni e codice di esempio per librerie di testing in R, inclusi funzioni che permettono agli utenti di controllare le caratteristiche dei dati. Great Expectations è uno strumento Python per convalidare e documentare i dati che aiuta anche a creare test su misura per specifici dataset.
Fonti di Dati
Questa sezione fornisce una panoramica dei dati grezzi che alimentano i database dell'IJF. L'IJF aggiorna continuamente questi database con nuove informazioni prelevate dai siti web di origine.
Dati delle Associazioni Benefiche
Il database delle associazioni benefiche include tre dataset: informazioni dalle dichiarazioni fiscali delle associazioni, dettagli sulla compensazione del personale delle associazioni e doni ricevuti dalle associazioni. Queste informazioni provengono dall'Agenzia delle Entrate del Canada (CRA) e coprono dati dal 1990 in poi. Le associazioni benefiche registrate in Canada sono obbligate per legge a presentare annualmente dichiarazioni informative, insieme ai loro bilanci e documenti correlati.
Il modulo per la dichiarazione fiscale delle associazioni è ampio, contenente numerosi elementi che mostrano le attività finanziarie di un'associazione. Negli anni, la CRA ha apportato modifiche a questi moduli, che possono includere aggiornamenti alle definizioni o ai numeri degli elementi. Ad esempio, le passività totali hanno avuto numeri di elementi diversi dal 1990.
Il dataset sulla compensazione del personale include informazioni su quanti dipendenti lavorano in ciascuna associazione e quali sono le loro compensazioni totali e individuali. I dati sui doni ricevuti provengono da moduli inviati dalle associazioni quando donano ad altre organizzazioni qualificate.
Dati delle Donazioni Politiche
Questo database copre le donazioni effettuate a livello federale, provinciale e territoriale. I primi registri delle donazioni politiche risalgono al 1993 e devono essere riportati per legge. Le diverse giurisdizioni hanno regole diverse riguardo ai tipi di donazioni consentite, gli importi massimi e chi può fare donazioni.
L'IJF ha raccolto questi registri di donazione da vari siti web di agenzie elettorali, con dati memorizzati in formati come fogli di calcolo, PDF o HTML.
Dati sul lobbying
Il database sul lobbying è composto da quattro componenti: registrazioni di lobbying, finanziamenti governativi, comunicazioni sul lobbying e informazioni sui lobbisti che hanno precedentemente ricoperto cariche governative. I lobbisti devono registrarsi e divulgare alcuni dettagli sulle loro attività, che possono variare a seconda della regione.
L'IJF ha estratto informazioni sulle registrazioni dei lobbisti da vari siti web federali, provinciali e territoriali, raccogliendo dettagli sui temi del lobbying e sui precedenti titolari di incarichi pubblici.
Pulizia Iniziale dei Dati
Come mostrato in precedenza, i dati grezzi utilizzati per costruire i database dell'IJF sono arrivati in formati diversi con differenze strutturali. Di conseguenza, è stata necessaria qualche pulizia iniziale per migliorare l'usabilità dei dati senza compromettere la loro autenticità.
L'IJF ha creato fogli di calcolo per tenere traccia delle variazioni nei moduli delle dichiarazioni fiscali delle associazioni nel tempo. Hanno selezionato circa 250 elementi da includere nel loro dataset pubblicato.
Poiché i dati provengono da moduli auto-riferiti e solo una piccola percentuale di associazioni viene controllata annualmente, l'errore umano è comune. L'IJF ha lavorato per pulire e standardizzare i dataset delle associazioni. Hanno rimosso colonne duplicate, rinominato alcune per chiarezza e corretto problemi come incoerenze di capitalizzazione.
Quando i registri delle donazioni erano disponibili solo come PDF statici, è stata necessaria la tecnologia di riconoscimento ottico dei caratteri (OCR) per convertirli in formati utilizzabili. Questo processo può portare a errori, quindi l'IJF ha effettuato controlli manuali per correggere eventuali errori.
Analogamente, i dati sul lobbying richiedevano pulizia, soprattutto a causa delle variazioni nell'uso dei nomi e dei titoli nel tempo.
Sviluppo dei Test
Abbiamo sviluppato il nostro insieme di test basandoci su principi chiave riguardanti la validità, la coerenza interna e la coerenza esterna. Per creare questi test, abbiamo esaminato i moduli di origine dei dati, il formato desiderato dei dati e come questi ultimi sono stati creati a partire dai primi. Questo processo ci ha aiutato a capire come si presenta un dato valido, cosa significa coerenza interna per i nostri dati e come controllare contro benchmark esterni.
Test di Validità
I test di validità si concentrano principalmente sul controllo dei valori mancanti. Ad esempio, abbiamo controllato se ci fossero identificatori univoci e valori di data e ora che dovrebbero essere presenti in tutti i dataset. Abbiamo anche creato test che verificano il formato delle date per assicurarci che corrisponda a uno schema specifico.
Un altro aspetto della validità riguarda il controllo delle classi delle variabili. Ad esempio, una classificazione errata dei tipi di dati può portare a risultati analitici sbagliati. Mentre il sistema di database relazionali controlla le classi delle variabili, è importante includere questi controlli quando si crea un insieme di test.
Test di Coerenza Interna
Abbiamo stabilito aspettative per varie colonne in tutti e otto i database che non dovrebbero avere dati mancanti. Questo tipo di testing esamina da vicino i dati puliti, dove le aspettative potrebbero dipendere da altre caratteristiche dei dati.
Abbiamo anche verificato che le parti dei dati si sommino logicamente. Ad esempio, nei dati delle donazioni politiche, abbiamo valutato se i contributi monetari e non monetari sommati corrispondessero all'importo totale riportato. Abbiamo applicato controlli simili nei database delle associazioni.
Per i database sul lobbying, abbiamo stabilito un'aspettativa che ogni registrazione unica in un database dovrebbe avere una voce corrispondente in un altro.
Infine, ci siamo assicurati che tutti i dati regionali corrispondessero ai nomi ufficiali delle province e dei territori canadesi.
Test di Coerenza Esterna
I test di coerenza esterna richiedono benchmark esterni per verificare i valori dei dati. Per i dati delle donazioni politiche, abbiamo raccolto i limiti legali per le donazioni politiche per regione e pianificato di confrontare gli importi delle donazioni con questi limiti legali.
Processo di Implementazione
Per implementare i nostri test, abbiamo utilizzato la libreria Great Expectations in Python. Questo strumento offre molte funzioni pre-costruite per il testing, rendendo facile controllare varie caratteristiche dei dati.
Prima di eseguire l'insieme di test, abbiamo dovuto preparare i dati rimuovendo caratteri non numerici dalle colonne monetarie e convertendo alcune colonne nei formati appropriati. Questa manipolazione dei dati ci ha permesso di eseguire i nostri test in modo efficace.
Abbiamo iniziato testing su un campione di circa 10.000 righe. Molti test hanno trovato eccezioni nei dati. Ad esempio, abbiamo scoperto un numero significativo di date mancanti nel database dei finanziamenti governativi e alcuni casi di donazioni che superavano i limiti legali.
Quando abbiamo trovato eccezioni, abbiamo valutato se si trattava di veri errori o se fossero necessari aggiustamenti alle nostre aspettative basate sulle caratteristiche uniche dei dati. Questo processo ci ha permesso di esplorare modelli nei dati che informavano come impostavamo le nostre aspettative.
Risultati Preliminari
Fino ad ora, abbiamo applicato i nostri test ai database delle donazioni e del lobbying, con la maggior parte delle aspettative impostate per i database delle associazioni. I primi risultati indicano che le nostre aspettative per i dati delle donazioni si sono rivelate fondate, con la maggior parte dei campi senza voci nulle.
Per le donazioni, abbiamo scoperto che un'alta percentuale dei dati soddisfaceva le aspettative, anche se alcune regioni specifiche superavano i limiti legali delle donazioni. I test sulle registrazioni di lobbying hanno avuto tassi di successo molto elevati, con solo piccole eccezioni.
Quando abbiamo valutato i dati delle associazioni, abbiamo testato un campione casuale di 20.000 registrazioni. Questo testing ha rivelato alcune incoerenze negli elementi che non avrebbero dovuto avere valori in base ai moduli utilizzati.
In generale, molte aspettative sono state soddisfatte quando abbiamo testato i dati in modo programmatico. I test che hanno fallito hanno suscitato ulteriori indagini, permettendoci di adattare le nostre aspettative, migliorare i metodi di pulizia o identificare inesattezze nei dati grezzi.
Lavori Futuri
Ci sono diversi percorsi per lavori futuri legati a questi database.
Per le donazioni politiche, intendiamo creare uno schema completo per controllare le donazioni rispetto ai limiti legali degli anni precedenti al 2022. Questo comporterà la raccolta di informazioni dettagliate su come i limiti legali sono cambiati nel tempo.
Vogliamo anche migliorare i nostri test per i database delle associazioni. Un obiettivo è verificare che vari elementi si sommino ai totali riportati. Automatizzare questi controlli offrirebbe una verifica continua man mano che arrivano nuovi dati.
Un'altra area di focus sarà sviluppare test per dati di testo libero nei database del lobbying, che aiuterebbe a catturare incoerenze nei formati dei nomi e in altre informazioni testuali.
Infine, siamo interessati a utilizzare grandi modelli linguistici per generare test di validazione dei dati, semplificando il processo per chi lavora con dataset complessi.
Conclusione
Validare i dati è cruciale per produrre ricerche affidabili e trasparenti. Implementando test automatizzati di validazione dei dati, siamo riusciti a controllare la qualità e la coerenza dei dati dell'IJF, portando a una comprensione più chiara e analisi più robuste.
Lezioni Chiave Apprese
Conosci i tuoi Dati: Una solida comprensione sia dei database pubblici che interni è essenziale per sviluppare aspettative accurate.
La Manipolazione dei Dati è Necessaria: Regolare i formati dei dati per soddisfare i requisiti di testing è vitale.
Processo Iterativo: Implementare la validazione dei dati è un processo continuo che beneficia dalla suddivisione dei compiti in parti gestibili.
La Conoscenza del Settore Conta: Collaborare con esperti familiari con i dati può aiutare a creare test accurati e evitare fraintendimenti.
Sebbene il lavoro sulla validazione dei dati non sia mai davvero completo, questo sforzo getta le basi per un miglioramento continuo nella comprensione e nell'uso efficace dei dati.
Titolo: Implementing Automated Data Validation for Canadian Political Datasets
Estratto: This paper describes a series of automated data validation tests for datasets detailing charity financial information, political donations, and government lobbying in Canada. We motivate and document a series of 200 tests that check the validity, internal consistency, and external consistency of these datasets. We present preliminary findings after application of these tests to the political donations ($\approx10.1$ million observations) and lobbying ($\approx711,200$ observations) datasets, and to a sample of $\approx380,880$ observations from the charities datasets. We conclude with areas for future work and lessons learnt for others looking to implement automated data validation in their own workflows.
Autori: Lindsay Katz, Callandra Moore
Ultimo aggiornamento: 2023-09-22 00:00:00
Lingua: English
URL di origine: https://arxiv.org/abs/2309.12886
Fonte PDF: https://arxiv.org/pdf/2309.12886
Licenza: https://creativecommons.org/licenses/by/4.0/
Modifiche: Questa sintesi è stata creata con l'assistenza di AI e potrebbe presentare delle imprecisioni. Per informazioni accurate, consultare i documenti originali collegati qui.
Si ringrazia arxiv per l'utilizzo della sua interoperabilità ad accesso aperto.
Link di riferimento
- https://www.theijf.org/databases
- https://greatexpectations.io/
- https://www.canada.ca/en/revenue-agency/services/forms-publications/forms/t3010.html?ref=investigative-journalism-foundation.ghost.io
- https://www.canada.ca/en/revenue-agency/services/forms-publications/forms/t1235.html?ref=investigative-journalism-foundation.ghost.io
- https://www.canada.ca/en/revenue-agency/services/forms-publications/forms/t1236.html?ref=investigative-journalism-foundation.ghost.io
- https://www.canada.ca/en/revenue-agency/services/forms-publications/forms/t2081.html?ref=investigative-journalism-foundation.ghost.io
- https://theijf.org/donations-methodology
- https://legacy.docs.greatexpectations.io/en/latest/reference/glossary_of_expectations.html