Как заставить людей лучше заботиться о данных?


42

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

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

Мне дали возможность обсудить эти проблемы с членом совета директоров компании, и мне нужно решить, что ему сказать. Я думаю, что я уже убедил его, что у нас есть проблема и что правильное решение этой проблемы позволит улучшить науку и сэкономить деньги. Вопрос в том, к чему мы должны стремиться и как туда добраться?

Более конкретно:

Как мы должны хранить данные таким образом, чтобы мы могли отслеживать их от создания до публикации на бумаге? (Базы данных хранятся на центральном сервере?)

Как вы относитесь к стандартизации форматов баз данных?

Есть ли хорошие ресурсы для обучения людей тому, как заботиться о данных? (Как правило, специалисты по гигиене труда и взрывчатке не являются любителями данных; поэтому предпочтение отдается нетехническому контенту.)


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

Ответы:


16

Стоит рассмотреть идеи из мира программного обеспечения. В частности, вы можете подумать о настройке: хранилища управления версиями и центрального сервера баз данных.

Контроль версий, вероятно, поможет вам с другими свободно плавающими файлами, такими как Excel и текстовые файлы и т. Д. Но это может также включать файлы, связанные с данными, такими как R, SAS и т. Д. Идея состоит в том, что существует система, которая отслеживает изменения в ваши файлы, позволяющие вам знать, что произошло, и откатиться к точке в прошлом, если это необходимо.

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


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

2
@Richie Cotton: я не знаю почему, но контроль над версиями кажется трудной для понимания нетехническими специалистами. Люди продолжают вносить некоторые изменения в файл, переименовывать его и отправлять по электронной почте. Как я ненавижу эти файлы "PaperDraftCorrectedByJohnRevision3RewroteByLeslie-NewVersion3.doc" ...
Нико

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
Что касается рекомендации не хранить избыточные переменные: это подходит для РСУБД, но я хотел бы предложить, что для электронных таблиц следует поощрять обратное. Последние настолько подвержены ошибкам, что механизмы обнаружения и исправления ошибок неоценимы. Одна из лучших состоит из избыточной информации, такой как вычисляемые поля и статистические сводки. Например, если столбец C - это соотношение столбцов A и B, то ошибка в одном столбце в любой данной строке может быть обнаружена и обычно исправлена.
whuber

1
@whuber: это то, что мы проверяем на этапе контроля данных. Вы можете использовать этот дополнительный столбец для быстрой проверки, но вы не должны держать его на последнем листе. Формулы в электронных таблицах ужасны, и чем больше таблица, тем сложнее извлечь из нее данные. Кроме того, в случае с Excel вы все равно будете бороться с различиями между .xls и .xlsx. Будьте уверены, что решение менеджера об обновлении Microsoft Office может сломать тонны кода, если вы сильно полагаетесь на файлы Excel. Итак: сохраните как csv и сделайте эти csv файлы как можно меньше.
Джорис Мейс

Проведя значительную часть последних 24 лет моей карьеры, справляясь с данными, передаваемыми в электронных таблицах, и управляя существенными базами данных, я с уважением не согласен. Не существует такого понятия, как «контроль» над электронными таблицами (будь то .xls, .xlsx, .wks, .wb * и т. Д.) Или даже csv-файлами. Наличие избыточной информации в таких файлах - даже когда они доступны только в печатном виде - много раз воскрешало некоторые довольно большие базы данных (более 100 тыс. Записей). Каждый раз, когда это происходит, я (и мои клиенты) были благодарны за увольнение.
whuber

@whuber: мы осуществляем контроль данных с помощью дополнительных сценариев, ища невозможные значения / выбросы / нечетные случаи. Это то, что я имею в виду с шагом контроля данных. Это отраслевой стандарт, например, в таких компаниях, как SGS и других, которые проводят анализ клинических испытаний и т. Д. Необходимая избыточная информация хранится в отдельных базах данных. Если один из них терпит неудачу, другой нужен для воскресения. Если у вас нет приличной системы резервного копирования, то есть ...
Joris Meys

3

VisTrails: научный рабочий процесс и система Provenance на основе Python . В этом выступлении на PyCon 2010 есть несколько хороших идей. Стоит послушать, даже если вы не заинтересованы в использовании VisTrails или Python. В конце я думаю, что если бы вы могли требовать, чтобы существовал четкий документальный способ воспроизведения данных. И требуют подтверждения, что они могут.

Цитирование:

«В этом выступлении мы дадим обзор VisTrails ( http://www.vistrails.org ), основанного на Python научного рабочего процесса с открытым исходным кодом, который прозрачно отражает происхождение (т. Е. Происхождение) как продуктов данных, так и используемых процессов. чтобы получить эти продукты. Мы покажем, как VisTrails можно использовать для оптимизации исследования и визуализации данных. На реальных примерах мы продемонстрируем ключевые функции системы, в том числе возможность визуально создавать конвейеры обработки информации, которые объединяют несколько инструментов и библиотек, таких как VTK, pylab и matplotlib. Мы также покажем, как VisTrails использует информацию о происхождении не только для поддержки воспроизводимости результатов, но и для упрощения создания и уточнения конвейеров ».


Python не широко распространен в нашей организации, но выглядит как интересный проект. Я посмотрю, смогу ли я уловить некоторые идеи о том, как это сделать, из их документации.
Ричи Коттон

2

Я только что наткнулся на эту веб-страницу, организованную ICPSR, о планах управления данными . Хотя я думаю, что цели ICPSR будут несколько отличаться от вашего бизнеса (например, они очень заинтересованы в том, чтобы данные могли легко распространяться без нарушения конфиденциальности), я полагаю, что у них есть полезная информация для бизнеса. В частности, советы по созданию метаданных кажутся мне универсальными.


2

В случае гораздо меньших масштабов я столкнулся с использованием Dropbox для совместного использования / синхронизации копии файлов данных (а также сценариев и результатов) с другими исследователями / сотрудниками (я писал об этом здесь ).

Другой инструмент, который я использовал, это Google Docs для сбора и обмена данными (о которых я писал здесь )


0

Dropbox + packrat хорош для обмена файлами с резервным копированием / контролем версий.

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

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

Эта фаза "ETL" происходит из хранилища данных. И если вы не строите систему обработки транзакций в Интернете, вы, вероятно, создаете хранилище данных. Так что примите это и воспользуйтесь тем, чему люди научились, создавая их за последние 30 лет.

Повеселись.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.