Як змусити людей краще піклуватися про дані?


42

На моєму робочому місці працюють співробітники з дуже широкого спектру дисциплін, тому ми генеруємо дані в безлічі різних форм. Отже, кожна команда розробила власну систему зберігання даних. Деякі використовують бази даних Access або SQL; деякі команди (на моє жах) майже повністю залежать від електронних таблиць Excel. Часто формати даних змінюються від проекту до проекту. У деяких випадках називати це «системою» занадто доброзичливо.

Проблеми, які це спричиняє, полягають у тому, що мені потрібно написати новий код для очищення даних для кожного проекту, що дорого; люди, що редагують електронні таблиці вручну, унеможливлюють відтворення та аудит даних; і ще гірше, є ймовірність, що дані втрачаються або робляться неправильними.

Мені дали можливість обговорити ці проблеми з членом правління компанії, і мені потрібно розробити, що йому сказати. Я думаю, я вже переконав його, що у нас є проблеми і що отримання цього права дозволить кращій науці та заощадити гроші. Питання в тому, що ми повинні прагнути і як ми туди потрапимо?

Більш конкретно:

Як слід зберігати дані таким чином, щоб ми могли відслідковувати їх від створення до публікації на папері? (Бази даних, що зберігаються на центральному сервері?)

Як ви ставитесь до стандартизації форматів баз даних?

Чи є хороші ресурси для навчання людей щодо того, як доглядати за даними? (Зазвичай правило, гігієністи та інженери вибухотехніки не є придурками даних; тому перевагу надає нетехнічний зміст.)


Заголовок питання відрізняється від змістовного питання в дописі. Перший запитує про те, як переконати людей піклуватися про дані, а другий запитує про найкраще зберігати дані. На яке запитання ви хочете відповісти?
Відновіть Моніку

Відповіді:


16

Варто розглянути ідеї з програмного світу. Зокрема, ви можете подумати про налаштування: сховище контролю версій та центральний сервер баз даних.

Контроль версій, ймовірно, допомагає вам використовувати плаваючі файли в іншому випадку, такі як Excel та текстові файли тощо. Але це також може включати файли, пов’язані з даними, такими як R, SAS тощо. Ідея полягає в тому, що існує система, яка відстежує зміни в ваші файли, що дозволяють вам знати, що сталося під час і, якщо потрібно, відкат до певного моменту.

Там, де у вас вже є бази даних SQL, найкраще, що ви можете зробити, це налаштувати центральний сервер і найняти дієздатну DBA . DBA - це особа, яка має завдання забезпечити та підтримувати цілісність даних. Частина опису завдання включає такі речі, як резервне копіювання та налаштування. Але тут важливіша інша частина - контроль над тим, як дані потрапляють у систему, забезпечення дотримання обмежень, встановлення політики доступу для запобігання шкоди даним, налаштування представлень для викриття користувацьких або спрощених форматів даних тощо. Коротше кажучи, впровадження методології навколо даних. Навіть якщо ви не наймаєте реальну DBA (хороших наймати дуже важко), наявність центрального сервера все ще дозволяє почати думати про запровадження якоїсь методології навколо даних.


3
Абсолютно погоджено контроль версій. Я ним користуюся; як і значна частина розробників та статистиків. (Я хотів би бачити 100% прийняття, але це ще одна мрія на даний момент.) Важкий біт - це отримання нетехнологів для його використання. Будь-які ідеї високо оцінені.
Річі Коттон

2
@ Richie Cotton: Я не знаю чому, але контроль версій, здається, є непростим поняттям для нетехнологів. Люди продовжують лише вносити деякі зміни у файл, перейменовувати його та надсилати електронною поштою. Як я ненавиджу ті файли "PaperDraftCorrectedByJohnRevision3RewroteByLeslie-NewVersion3.doc" ...
nico

12

1
Відмінні посилання. Я думаю, що для мене важливі два повідомлення: нам потрібна більш автоматизована перевірка даних, і мені потрібно почати пояснювати розділення введення даних та подання даних.
Річі Коттон

6

Думаю, перш за все, ви повинні запитати себе: чому люди використовують Excel для виконання завдань, для яких Excel не був створений?

1) Вони вже знають, як ним користуватися 2) Це працює. Можливо, незграбно, але це працює, і саме цього вони хочуть

Я копіюю серію чисел у, натискаю кнопку і у мене є графік. Так просто, як це.

Отже, дайте їм зрозуміти, якими перевагами вони можуть користуватися за допомогою централізованих наборів даних, належних баз даних (зауважте, що Access НЕ є однією з таких) тощо. Але пам’ятайте два вище пункти: вам потрібно створити систему, яка працює і вона проста у використанні.

Я занадто багато разів бачив погано зроблені системи, які змусили мене повернутися не до Excel, а до ручки та паперу!

Як приклад, у нас є жахлива система замовлення, де я працюю.

Нам раніше потрібно було заповнити форму замовлення, яка була електронною таблицею Excel, де ви ввели назву товару, кількість, вартість і т. Д. Це додало б усе, додало TVA тощо тощо, ви надрукували його, надали секретаря, який зробив би наказ, і це було все. Неефективна, але вона спрацювала.

Зараз у нас є система онлайн-замовлень, з централізованою БД і все. Це жах. Щоб заповнити прокляту форму, мені не потрібно 10 хвилин через непридатні комбінації клавіш та різні дивацтва програмного забезпечення. І зауважте, що я досить інформатичний, тому уявіть, що відбувається з людьми, які не люблять комп'ютери ...


Погодилися, що речі повинні бути зручними для користувачів. Оскільки люди стають дуже захисними щодо своєї робочої практики, будь-які зміни повинні полегшити життя людей, або вони не зможуть.
Річі Коттон

5

Я підкреслюю всі відповіді, що вже були, але давайте назвемо кота кішкою: у багатьох робочих просторах навряд чи неможливо переконати керівництво, що інвестиції в «екзотичні» програмні засоби (екзотичні для них, тобто) необхідні, не кажучи вже про те, щоб найняти когось, хто міг би встановити його і підтримувати. Я сказала досить багатьом клієнтам, що вони отримають велику користь від найму статистики з ретельним досвідом роботи з програмним забезпеченням та базами даних, але загальна відповідь "не може".

Тому поки це не відбудеться, є кілька простих речей, які ви можете зробити з Excel, які полегшать життя. І перше з цього - без сумніву, контроль над версіями. Більше інформації про контроль версій за допомогою Excel можна отримати тут .

Деякі речі щодо використання excel

Людям, які використовують EXCEL, дуже часто подобаються функції формули EXCEL. Тим не менш, це найважливіше джерело помилок на аркушах EXCEL та проблем при спробі читання у файлах EXCEL, наскільки мій досвід. Я відмовляюся працювати з аркушами, що містять формули.

Я також змушую всіх, з ким працюю, доставити аркуші EXCEL у простому форматі, тобто:

  • Перший рядок містить назви різних змінних
  • Електронна таблиця починається в комірці A1
  • Всі дані складаються у стовпці, без перерв і без форматування.
  • Якщо можливо, дані також зберігаються у форматі .csv. Не важко написати сценарій VBA, який буде витягувати дані, переформатувати їх і поміщати у файл .csv. Це також дозволяє краще контролювати версії, оскільки ви можете робити скидання .csv даних щодня.

Якщо є загальна структура, яку завжди мають дані, то, можливо, було б добре розробити шаблон із основними макросами VB для додавання даних та генерування набору даних для аналізу. Це взагалі дозволить уникнути того, що кожен працівник придумає власну "геніальну" систему зберігання даних, і це дозволяє вам написати свій код у відповідності до цього.

Це означає, що якщо ви можете переконати всіх використовувати SQL (і передній кінець для введення даних), ви можете зв’язати R безпосередньо з цим. Це значно підвищить продуктивність.

Структура даних та управління ними

Як правило, дані, що зберігаються в базах даних (або аркушах EXCEL, якщо вони наполягають), повинні бути абсолютним мінімумом, тобто будь-яка змінна, яка може бути обчислена за деякими іншими змінними, не повинна міститися в базі даних. Зауважте, іноді може бути корисним і зберігання цих похідних чи перетворених змінних, якщо розрахунки є втомливими і потребують тривалого часу. Але вони повинні зберігатися в окремій базі даних, при необхідності пов'язуватися з початковою.

Необхідно також думати про те, що вважається одним випадком (а отже, і одним рядом). Як приклад, люди прагнуть виробляти часові ряди, вносячи нову змінну для кожного моменту часу. Хоча це має сенс у EXCEL, читання цих даних вимагає певного перегортання матриці даних. Те ж саме для порівняння груп: повинен бути один індикатор групи та одна змінна відповіді, а не змінна відповіді для кожної групи. Таким чином можна також стандартизувати структури даних.

Останнє, з чим я часто стикаюся, - це використання різних показників. Довжини задаються в метрах або сантиметрах, температури в Цельцій, Кельвін або Фаренгейт, ... У будь-якому передньому кінці або будь-якому шаблоні слід вказати, якою є одиниця, в якій вимірюється змінна.

І навіть після всіх цих речей ви все ще хочете зробити крок контролю даних, перш ніж розпочати фактично аналіз. Знову ж таки, це може бути будь-який скрипт, який працює щодня (наприклад, протягом ночі) над новими записами, і що прапори негайно виникають (поза діапазоном, неправильний тип, відсутні поля ...), щоб їх можна було виправити якомога швидше. Якщо вам доведеться повернутися до запису, який було зроблено 2 місяці тому, щоб з’ясувати, що не так і чому, вам краще отримати кілька хороших «навичок Шерлока», щоб виправити це.

мої 2 копійки


Тут дуже цікаві моменти. Переконання людей спростити та стандартизувати свої електронні таблиці, ймовірно, буде більш успішним, ніж змусити їх відмовитися. Також я не здогадувався, що управління версіями може інтегруватися з Excel. Добре знати.
Річі Коттон

2
Щодо поради щодо не зберігання зайвих змінних: це підходить для RDBMS, але я хотів би запропонувати, що для електронних таблиць слід заохочувати протилежне. Останні настільки схильні до помилок, що механізми виявлення та виправлення помилок є безцінними. Одне з найкращих складається із зайвої інформації, такої як обчислювані поля та статистичні зведення. Наприклад, якщо стовпець C є співвідношенням стовпців A і B, то помилка в одному стовпчику в будь-якому даному рядку може бути виявлена ​​і зазвичай виправлена.
whuber

1
@whuber: це те, що ми перевіряємо на кроці контролю даних. Ви можете використовувати цей додатковий стовпець для швидкої перевірки, але не слід зберігати його в остаточному аркуші. Формули в електронних таблицях - жах, і чим більша електронна таблиця, тим складніше отримати дані з неї. Крім того, у випадку Excel ви все одно будете боротися з різницями між .xls та .xlsx. Будьте впевнені, що рішення менеджера щодо оновлення Microsoft Office може порушити тони коду, якщо ви сильно покладаєтесь на файли Excel. Отже: збережіть як csv і збережіть ці файли csv якомога менше.
Хоріс Майс

Провівши значну частину останніх 24 років моєї кар’єри, справляючись з даними, що передаються в електронних таблицях та керуючи істотними базами даних, я повинен з повагою не погодитися. Не існує такого поняття, як "контроль" за електронними таблицями (будь то .xls, .xlsx, .wks, .wb * тощо) і навіть файлами csv. Наявність зайвої інформації в таких файлах - навіть коли вони доступні лише у друкованому вигляді - багато разів воскрешала деякі досить великі бази даних (100 К + записів). Кожного разу, коли це відбувається, я (і мої клієнти) були вдячні за скорочення.
whuber

@whuber: Ми контролюємо дані за допомогою додаткових сценаріїв, шукаючи неможливі значення / випадковість / непарні випадки. Це я маю на увазі під кроком контролю даних. Це галузевий стандарт btw у таких компаніях, як SGS та інших, які роблять аналіз клінічних випробувань тощо. Необхідна зайва інформація зберігається в окремих базах даних. Якщо одна з них провалюється, інша потрібна для воскресіння. Якщо у вас немає пристойної системи резервного копіювання, тобто ...
Joris Meys

3

VisTrails: система наукових робочих процесів та управління на основі Python . Ця розмова, проведена на PyCon 2010, має кілька хороших ідей. Варто слухати, навіть якщо ви не зацікавлені у використанні VisTrails або python. Врешті-решт, я думаю, якщо ви зможете вимагати, щоб був чіткий спосіб відтворення даних. І вимагають певної перевірки, яку вони можуть.

Цитування:

"У цій розмові ми дамо огляд VisTrails ( http://www.vistrails.org ) - наукового робочого процесу з відкритим кодом, заснованого на пітоні, який прозоро фіксує походження (тобто лінійку) як продуктів даних, так і використовуваних процесів. Для отримання цих продуктів ми покажемо, як VisTrails можна використовувати для впорядкування дослідження та візуалізації даних. Використовуючи реальні приклади, ми продемонструємо основні особливості системи, включаючи можливість візуального створення трубопроводів для обробки інформації, що поєднують в собі безліч інструментів та іібрарій, таких як VTK, pylab та matplotlib. Ми також покажемо, як VisTrails використовує інформацію про походження не лише для підтримки відтворюваності результатів, але і для спрощення створення та вдосконалення трубопроводів ".


Python не широко поширений в нашій організації, але це виглядає як цікавий проект. Я побачу, чи можу я чіпнути деякі ідеї щодо того, як слід робити їх документацію.
Річі Коттон

2

Щойно я натрапив на цю веб-сторінку, на якій розміщено ICPSR, щодо планів управління даними . Хоча я думаю, що цілі ICPSR будуть дещо іншими, ніж у вашому бізнесі (наприклад, вони сильно зацікавлені в тому, щоб дані могли легко поширюватися, не порушуючи конфіденційність), я думаю, що вони мають корисну інформацію для бізнесу. Особливо поради щодо створення метаданих мені здаються універсальними.


2

У випадку набагато менших масштабів я відчував використання спільного доступу / синхронізації копії файлів даних (та сценаріїв та результатів) з іншими дослідниками / співробітниками (про це я писав тут ).

Інший інструмент, який я використав, - це документи Google для збору та обміну даними (про які я писав тут )


0

Dropbox + packrat приємний для обміну файлами з резервною копією / версією.

Потім ви завантажуєте ці файли (після автоматизованої канонізації / масажу) в базу даних і робите аналізи очищених даних. Покладіть сценарії для автоматизації циклу Extract-Transform-Load під контролем версій (або, принаймні, окремою папкою dropbox з опцією packrat ...).

Коли сервер вашої бази даних зрештою виходить з ладу (або його потрібно розфарбувати або будь-що інше), у вас є конвеєр для переміщення даних від зручних для людей (Excel, веб-форм тощо) до зручних для аналізу (як правило, нормалізованих і обмежених, завжди очищених).

Ця фаза "ETL" відбувається із зберігання даних. І якщо ви не будуєте систему онлайн-обробки даних, ви, ймовірно, будуєте сховище даних. Тож прийміть це та скористайтеся тим, чого люди навчилися будувати ті за останні 30 років.

Весело.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.