Come posso convincere le persone a gestire meglio i dati?


42

Il mio posto di lavoro ha dipendenti provenienti da una vasta gamma di discipline, quindi generiamo dati in molte forme diverse. Di conseguenza, ogni squadra ha sviluppato il proprio sistema per l'archiviazione dei dati. Alcuni usano database Access o SQL; alcuni team (con mio orrore) fanno affidamento quasi interamente su fogli di calcolo Excel. Spesso, i formati dei dati cambiano da progetto a progetto. In alcuni casi chiamarlo "sistema" è troppo gentile.

I problemi che ciò comporta sono che devo scrivere un nuovo codice per pulire i dati per ogni progetto, che è costoso; le persone che modificano manualmente i fogli di calcolo rendono quasi impossibile la riproducibilità e il controllo dei dati; e ancora peggio, c'è la possibilità che i dati vengano persi o resi errati.

Mi è stata data l'opportunità di discutere questi problemi con un membro del consiglio di amministrazione dell'azienda e ho bisogno di capire cosa dirgli. Penso di averlo già convinto che abbiamo un problema e che farlo bene consentirà una scienza migliore e un risparmio di denaro. La domanda è: a cosa dovremmo puntare e come ci arriviamo?

Più specificamente:

Come dovremmo archiviare i dati, in modo da consentirci di tracciarli dalla creazione alla pubblicazione in un documento? (Database memorizzati su un server centrale?)

Come si fa a standardizzare i formati di database?

Ci sono buone risorse per educare le persone su come prendersi cura dei dati? (Come regola generale, gli igienisti del lavoro e gli ingegneri degli esplosivi non sono secchioni di dati, quindi sono preferibili i contenuti non tecnici.)


La domanda del titolo è diversa dalla domanda sostanziale nel post. Il primo chiede come convincere le persone a prendersi cura dei dati e il secondo chiede il meglio per archiviare i dati. A quale domanda vuoi rispondere?
Ripristina Monica il

Risposte:


16

Vale la pena prendere in considerazione idee dal mondo del software. In particolare potresti pensare di impostare: un repository di controllo versione e un server di database centrale.

Il controllo della versione probabilmente ti aiuta con file fluttuanti altrimenti liberi, come Excel e file di testo, ecc. Ma questo potrebbe includere anche file associati a dati, come R, SAS, ecc. L'idea è che esiste un sistema che tiene traccia delle modifiche a i tuoi file che ti consentono di sapere cosa è successo quando e di ripristinare un punto nel passato, se necessario.

Laddove disponi già di database SQL, la cosa migliore che puoi fare è configurare un server centrale e assumere un DBA capace . Il DBA è la persona incaricata di garantire e mantenere l'integrità dei dati. Parte della descrizione del lavoro riguarda cose come backup e ottimizzazione. Ma un'altra parte è più pertinente qui: controllare il modo in cui i dati entrano nel sistema, garantire che vengano rispettati i vincoli, esistono politiche di accesso per prevenire danni ai dati, impostare viste per esporre formati di dati personalizzati o semplificati, ecc. In breve, implementare una metodologia attorno al processo dei dati. Anche se non assumi un vero DBA (quelli buoni sono molto difficili da reclutare), avere un server centrale ti consente comunque di iniziare a pensare a istituire una sorta di metodologia attorno ai dati.


3
Assolutamente d'accordo sul controllo della versione. Lo uso; così come una parte sostanziale di sviluppatori e statistici. (Mi piacerebbe vedere l'adozione al 100%, ma per ora è un altro sogno irrealizzabile.) La cosa difficile è far sì che i non tecnici lo usino. Qualche idea apprezzata.
Richie Cotton,

2
@Richie Cotton: non so perché, ma il controllo della versione sembra essere un concetto difficile da comprendere per i non tecnici. Le persone continuano ad apportare solo alcune modifiche a un file, rinominarlo e inviarlo via e-mail. Come odio quei file "PaperDraftCorrectedByJohnRevision3RewroteByLeslie-NewVersion3.doc" ...
nico,

12

1
Link eccellenti. Penso che due messaggi importanti da trasmettere siano: abbiamo bisogno di un controllo più automatizzato dei dati e devo iniziare a spiegare come separare l'inserimento e la presentazione dei dati.
Richie Cotton,

6

Penso che prima di tutto devi chiederti: perché le persone usano Excel per svolgere attività per cui Excel non è stato creato?

1) Sanno già come usarlo 2) Funziona. Forse in modo goffo ma funziona ed è quello che vogliono

Copio una serie di numeri, premo un pulsante e ho una trama. Facile come quello.

Quindi, far loro capire quali vantaggi possono avere usando set di dati centralizzati, database adeguati (notare che Access NON è uno di quelli) e così via. Ma ricorda i due punti sopra: devi impostare un sistema che funzioni ed è facile da usare.

Ho visto troppe volte sistemi mal realizzati che mi hanno fatto venire voglia di tornare non su Excel ma su carta e penna!

Ad esempio, abbiamo un sistema di ordinazione orribile in cui lavoro.

Prima dovevamo compilare un modulo d'ordine che era un foglio di calcolo Excel in cui inserire il nome del prodotto, la quantità, il costo ecc. Aggiungeva tutto, aggiungeva TVA ecc. Ecc., Lo stampava, lo dava a il segretario che avrebbe fatto l'ordine e basta. Inefficiente, ma ha funzionato.

Ora abbiamo un sistema di ordinazione online, con un DB centralizzato e tutto il resto. È un orrore. Non dovrei impiegarmi 10 minuti per compilare un modulo maledetto a causa delle scorciatoie da tastiera unituitive e delle varie stranezze del software. E nota che sono abbastanza esperto di informatica, quindi immagina cosa succede alle persone a cui non piacciono i computer ...


Concordato che le cose devono essere facili da usare. Dal momento che le persone diventano molto protettive rispetto alle loro pratiche di lavoro, eventuali cambiamenti devono rendere la vita delle persone più facile o falliranno.
Richie Cotton,

5

Sottolineo già tutte le risposte fornite, ma chiamiamo un gatto un gatto: in molte aree di lavoro è quasi impossibile convincere il management che è necessario l'investimento in software "esotici" (esotici per loro), per non parlare dell'assunzione di qualcuno che potrebbe impostare su e mantenerlo. Ho detto ad alcuni clienti che trarrebbero grandi benefici dall'assumere uno statistico con un background approfondito su software e database, ma "no can do" è la risposta generale.

Quindi finché non accadrà, ci sono alcune semplici cose che puoi fare con Excel che renderanno la vita più facile. E il primo di questo è senza dubbio il controllo della versione. Ulteriori informazioni sul controllo delle versioni con Excel sono disponibili qui .

Alcune cose sull'uso di Excel

Le persone che usano EXCEL molto spesso apprezzano le caratteristiche della formula di EXCEL. Tuttavia, questa è la fonte più importante di errori all'interno dei fogli EXCEL e di problemi quando provo a leggere nei file EXCEL per quanto riguarda la mia esperienza. Mi rifiuto di lavorare con fogli contenenti formule.

Inoltre costringo tutti coloro con cui lavoro a consegnare i fogli EXCEL in un formato semplice, nel senso che:

  • La prima riga contiene i nomi delle diverse variabili
  • Il foglio di calcolo inizia nella cella A1
  • Tutti i dati vengono inseriti in colonne, senza interruzioni e senza formattazione.
  • Se possibile, i dati vengono salvati anche in formato .csv. Non è difficile scrivere uno script VBA che estrarrà i dati, lo riformatterà e lo inserirà in un file .csv. Ciò consente anche un migliore controllo della versione, in quanto è possibile effettuare un dump .csv dei dati ogni giorno.

Se esiste una struttura generale che i dati hanno sempre, potrebbe essere utile sviluppare un modello con macro VB sottostanti per aggiungere dati e generare il set di dati per l'analisi. Questo in generale eviterà che ogni dipendente abbia il proprio sistema "geniale" di archiviazione dei dati e ti permetterà di scrivere il tuo codice in funzione di ciò.

Detto questo, se riesci a convincere tutti a usare SQL (e un front-end per l'immissione di dati), puoi collegare R direttamente a quello. Ciò aumenterà notevolmente le prestazioni.

Struttura e gestione dei dati

Come regola generale, i dati memorizzati nei database (o fogli EXCEL se insistono) dovrebbero essere il minimo assoluto, il che significa che qualsiasi variabile che può essere calcolata da alcune altre variabili non dovrebbe essere contenuta nel database. Intendiamoci, a volte può essere utile memorizzare anche quelle variabili derivate o trasformate, se i calcoli sono noiosi e richiedono molto tempo. Ma questi dovrebbero essere archiviati in un database separato, se necessario collegato a quello originale.

Il pensiero dovrebbe essere dato anche a quello che viene considerato come un caso (e quindi una riga). Ad esempio, le persone tendono a produrre serie temporali creando una nuova variabile per ogni punto temporale. Sebbene ciò abbia senso in un EXCEL, la lettura di questi dati richiede una certa rotazione della matrice di dati. Lo stesso vale per i gruppi di confronto: dovrebbero esserci un indicatore di gruppo e una variabile di risposta, non una variabile di risposta per ciascun gruppo. In questo modo è possibile standardizzare anche le strutture di dati.

Un'ultima cosa che incontro di frequente è l'uso di metriche diverse. Le lunghezze sono espresse in metri o centimetri, le temperature in Celcius, Kelvin o Farenheit, ... Si dovrebbe indicare in qualsiasi front-end o modello quale unità è in cui viene misurata la variabile.

E anche dopo tutte queste cose, vuoi comunque avere una fase di controllo dei dati prima di iniziare effettivamente con l'analisi. Ancora una volta, questo può essere qualsiasi script che viene eseguito quotidianamente (ad es. Durante la notte) su nuove voci e che segnala immediatamente i problemi (fuori intervallo, tipo errato, campi mancanti, ...) in modo che possano essere corretti il ​​più rapidamente possibile. Se devi tornare a una voce che è stata fatta 2 mesi fa per scoprire cosa c'è che non va e perché, è meglio ottenere alcune buone "abilità di Sherlock" per correggerlo.

i miei 2 centesimi


Alcuni punti molto interessanti qui. Convincere le persone a semplificare e standardizzare i loro fogli di calcolo probabilmente avrà più successo che indurli ad abbandonarli. Inoltre non avevo idea che il controllo della versione potesse integrarsi con Excel. Bello sapere.
Richie Cotton,

2
Per quanto riguarda il consiglio di non memorizzare variabili ridondanti: questo è appropriato per i RDBMS ma vorrei suggerire che il contrario dovrebbe essere incoraggiato per i fogli di calcolo. Questi ultimi sono così inclini all'errore che i meccanismi per rilevare e correggere gli errori sono preziosi. Uno dei migliori è costituito da informazioni ridondanti, come campi calcolati e riepiloghi statistici. Ad esempio, se la colonna C è il rapporto tra le colonne A e B, allora un errore in una singola colonna in una determinata riga può essere rilevato e generalmente risolto.
whuber

1
@whuber: questo è ciò che controlliamo nella fase di controllo dei dati. Puoi usare quella colonna in più per controllare velocemente, ma non dovresti tenerlo nel foglio finale. Le formule nei fogli di calcolo sono horror e più grande è il foglio di calcolo, più è difficile ottenere i dati da esso. Inoltre, nel caso di Excel dovrai comunque combattere le differenze tra .xls e .xlsx. Assicurati che la decisione di un gestore di aggiornare Microsoft Office possa rompere tonnellate di codice se fai molto affidamento sui file Excel. Quindi: salva come csv e mantieni questi file csv il più piccoli possibile.
Joris Meys,

Dopo aver trascorso una parte significativa degli ultimi 24 anni della mia carriera, affrontando i dati trasmessi in fogli di calcolo e gestendo database sostanziali, devo essere in disaccordo con rispetto. Non esiste un "controllo" sui fogli di calcolo (che siano .xls, .xlsx, .wks, .wb *, ecc.) O persino file CSV. La presenza di informazioni ridondanti in tali file - anche quando sono disponibili solo in forma stampata - ha risorto molte volte alcuni database abbastanza grandi (100k + record). Ogni volta che ciò accade, io (e i miei clienti) siamo stati grati per i licenziamenti.
whuber

@whuber: facciamo il controllo dei dati con script extra, cercando valori impossibili / valori anomali / casi dispari. Questo è ciò che intendo con il passaggio di controllo dei dati. Questo è lo standard del settore tra aziende come SGS e altri che fanno analisi di studi clinici ecc. Le informazioni ridondanti necessarie sono conservate in database separati. Se uno di loro fallisce, l'altro è necessario per la risurrezione. Nel caso in cui non si disponga di un sistema di backup decente, ovvero ...
Joris Meys,

3

VisTrails: un flusso di lavoro scientifico e sistema di provenienza basati su Python . Questo discorso tenuto a PyCon 2010 ha alcune buone idee. Vale la pena ascoltarlo anche se non sei interessato all'utilizzo di VisTrails o Python. Alla fine penso che saresti in grado di richiedere che ci sia un modo chiaro per riprodurre i dati. E richiedono un po 'di convalida che possono.

citando:

"In questo discorso, forniremo una panoramica di VisTrails ( http://www.vistrails.org ), un flusso di lavoro scientifico open source basato su Python che acquisisce in modo trasparente la provenienza (cioè la discendenza) dei prodotti di dati e dei processi utilizzati per derivare questi prodotti. Mostreremo come VisTrails può essere utilizzato per semplificare l'esplorazione e la visualizzazione dei dati. Usando esempi reali, dimostreremo le caratteristiche chiave del sistema, inclusa la capacità di creare visivamente pipeline di elaborazione delle informazioni che combinano più strumenti e Iibrary come VTK, pylab e matplotlib. Mostreremo anche come VisTrails sfrutta le informazioni sulla provenienza non solo per supportare la riproducibilità dei risultati, ma anche per semplificare la creazione e il perfezionamento delle condotte. "


Python non è molto diffuso nella nostra organizzazione ma sembra un progetto interessante. Vedrò se riesco a prendere alcune idee su come le cose dovrebbero essere fatte dalla loro documentazione.
Richie Cotton,

2

Ho appena trovato questa pagina web ospitata dall'ICPSR sui piani di gestione dei dati . Sebbene ritenga che gli obiettivi dell'ICPSR siano in qualche modo diversi rispetto alla tua azienda (ad esempio, sono fortemente interessati a rendere prontamente in grado di diffondere i dati senza violare la riservatezza), immagino che abbiano informazioni utili per le aziende. In particolare, i consigli sulla creazione di metadati mi sembrano universali.


2

Nel caso di scale molto più piccole, ho sperimentato l'uso di dropbox per condividere / sincronizzare una copia dei file di dati (e script e risultati) con altri ricercatori / collaboratori (ne ho scritto qui ).

L'altro strumento che ho usato è Google Documenti per la raccolta e la condivisione di dati (di cui ho scritto qui )


0

Dropbox + packrat è utile per la condivisione di file con backup / versioning.

Quindi si caricano quei file (dopo la canonicalizzazione / massaggio automatizzati) in un database e si eseguono le analisi dei dati ripuliti. Metti gli script per automatizzare il ciclo Estrai-Trasforma-Carica sotto il controllo della versione (o almeno una cartella dropbox separata con l'opzione packrat ...).

Quando il tuo server di database alla fine si arresta in modo anomalo (o deve essere frammentato o altro), hai una pipeline per spostare i dati da persone amichevoli (Excel, moduli web, ecc.) A favore dell'analisi (in genere normalizzati e vincolati, sempre ripuliti).

Quella fase "ETL" proviene dal data warehousing. E se non stai costruendo un sistema di elaborazione delle transazioni online, probabilmente stai costruendo un data warehouse. Abbraccialo e approfitta di ciò che la gente ha imparato costruendo quelli negli ultimi 30 anni.

Divertiti.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.