如何让人们更好地保护数据?

机器算法验证 数据集 可重复研究 质量控制
2022-01-20 13:28:30

我的工作场所拥有来自非常广泛的学科的员工,因此我们以许多不同的形式生成数据。因此,每个团队都开发了自己的数据存储系统。有些使用 Access 或 SQL 数据库;一些团队(令我恐惧)几乎完全依赖 Excel 电子表格。通常,数据格式会因项目而异。在某些情况下,称它为“系统”太客气了。

这带来的问题是我必须编写新代码来清理每个项目的数据,这很昂贵;人们手动编辑电子表格使数据的可重复性和审计几乎不可能;更糟糕的是,数据有可能丢失或不正确。

我有机会与公司的一位董事会成员讨论这些问题,我需要弄清楚该告诉他什么。我想我已经说服他我们有一个问题,并且把它做好将有助于更好的科学和省钱。问题是:我们应该瞄准什么,我们如何到达那里?

进一步来说:

我们应该如何存储数据,以便我们跟踪从创建到在论文中发表的过程?(存储在中央服务器上的数据库?)

您如何标准化数据库格式?

有没有什么好的资源来教育人们如何关心数据?(作为一般规则,职业卫生师和爆炸物工程师不是数据书呆子;因此首选非技术内容。)

4个回答

值得考虑来自软件世界的想法。特别是您可能会考虑设置:版本控制存储库和中央数据库服务器。

版本控制可能会帮助您处理其他自由浮动文件,例如 Excel 和文本文件等。但这也可能包括与数据相关的文件,例如 R、SAS 等。这个想法是有一个系统可以跟踪更改您的文件使您可以知道何时发生了什么,并在需要时回滚到过去的某个时间点。

如果您已经拥有 SQL 数据库,那么您能做的最好的事情就是设置一个中央服务器并聘请有能力的DBADBA 是负责确保和维护数据完整性的人员。部分工作描述涉及备份和调整等内容。但另一部分在这里更相关——控制数据如何进入系统,确保满足约束条件,制定访问策略以防止对数据造成损害,设置视图以公开自定义或简化的数据格式等。简而言之,围绕数据处理实施方法论。即使您没有聘请真正的 DBA(优秀的 DBA 很难招聘),拥有中央服务器仍然可以让您开始考虑围绕数据建立某种方法。

我认为首先你必须问自己:为什么人们使用 Excel 来完成 Excel 不适合的任务?

1)他们已经知道如何使用它 2)它有效。也许以一种笨拙的方式,但它有效,这就是他们想要的

我复制了一系列数字,按下一个按钮,我就有了一个情节。就这么简单。

因此,让他们了解通过使用集中式数据集、适当的数据库(注意 Access 不是其中之一)等可以带来哪些优势。但请记住以上两点:您需要设置一个可以运行且易于使用的系统。

我见过太多次糟糕的系统让我不想回到 Excel 而是回到笔和纸!

举个例子,我工作的地方有一个糟糕的订购系统。

我们过去必须填写一份订单表格,这是一个 Excel 电子表格,您可以在其中输入产品名称、数量、成本等。它将所有内容加起来,添加 TVA 等,您打印出来,交给下订单的秘书就是这样。效率低下,但它奏效了。

现在我们有了一个在线订购系统,有一个集中的数据库和一切。这是一个恐怖。由于统一的键盘快捷键和软件的各种奇怪之处,我不应该花费 10 分钟来填写该死的表格。请注意,我非常精通信息学,所以想象一下不喜欢计算机的人会发生什么......

我强调了已经给出的所有答案,但让我们称猫为猫:在许多工作场所,几乎不可能说服管理层对“异国情调”软件工具(对他们来说是异国情调)进行投资是必要的,更不用说雇用可以设置的人了它起来并维护它。我告诉过很多客户,他们会从聘请一位对软件和数据库具有全面背景的统计学家中受益匪浅,但普遍的回答是“不能做”。

因此,只要不会发生这种情况,您就可以使用 Excel 做一些简单的事情,让生活更轻松。首先毫无疑问是版本控制。可以在此处找到有关使用 Excel 进行版本控制的更多信息。

关于使用excel的一些事情

使用 EXCEL 的人非常喜欢 EXCEL 的公式功能。然而,就我的经验而言,这是 EXCEL 表格中最重要的错误来源,也是尝试读取 EXCEL 文件时出现的问题。我拒绝使用包含公式的表格。

我还强迫与我一起工作的每个人都以普通格式提供 EXCEL 表格,这意味着:

  • 第一行包含不同变量的名称
  • 电子表格从单元格 A1 开始
  • 所有数据都放在列中,没有中断,也没有格式化。
  • 如果可能,数据也会以 .csv 格式保存。编写一个 VBA 脚本来提取数据、重新格式化并将其放入 .csv 文件中并不难。这也允许更好的版本控制,因为您可以每天对数据进行 .csv 转储。

如果数据始终具有一般结构,那么最好开发一个带有底层 VB 宏的模板来添加数据并生成数据集以供分析。这通常会避免每个员工都想出自己的“天才”数据存储系统,并且它允许您编写代码来实现此功能。

这就是说,如果您可以说服所有人使用 SQL(以及用于输入数据的前端),您可以将 R 直接链接到那个。这将大大提高性能。

数据结构与管理

作为一般规则,存储在数据库(或 EXCEL 表,如果他们坚持的话)中的数据应该是绝对最小值,这意味着可以从其他一些变量计算的任何变量都不应该包含在数据库中。请注意,如果计算繁琐且需要很长时间,有时存储这些派生或转换的变量也是有益的。但是这些应该存储在一个单独的数据库中,如有必要,可以链接到原始数据库。

还应考虑被视为一种情况(因此是一行)的情况。例如,人们倾向于通过为每个时间点创建一个新变量来生成时间序列。虽然这在 EXCEL 中是有意义的,但读取这些数据需要对数据矩阵进行相当多的翻转。比较组也一样:应该有一个组指标和一个响应变量,而不是每个组的响应变量。这样数据结构也可以标准化。

我经常遇到的最后一件事是使用不同的指标。长度以米或厘米为单位,温度以摄氏度、开尔文或华氏度为单位,......人们应该在任何前端或任何模板中指出测量变量的单位是什么。

即使在所有这些事情之后,您仍然希望在实际开始分析之前有一个数据控制步骤。同样,这可以是每天(例如通宵)在新条目上运行的任何脚本,并且可以立即标记问题(超出范围、错误类型、缺少字段……),以便可以尽快更正它们。如果您必须返回 2 个月前创建的条目以找出问题所在以及原因,您最好获得一些好的“Sherlock 技能”来纠正它。

我的 2 美分