
工程邮袋
第 1 集:雪犁服务的经济学
我们 JMP 系统工程师时不时会遇到一些有趣的问题,这些问题会超出正常范围。 JMP用法。 这些应用程序通常很聪明,并且带回家如何使用数据不仅仅用于业务或技术问题。
这是我从纽约州的一位用户(也叫迈克)那里收到的一个问题示例,他和我认为分享这个问题会很有趣。
问题
迈克 [JMP],
我正在使用去年发现的降雪总量数据来研究 JMP。 今年夏天我搬到了一所新房子里,现在我有一条 387 英尺长的车道需要开垦。 我最近在和一个扫雪机承包商谈话,他试图说服我签订一份季节性合同。 通常,当他每次推送收费时,只要我们有 3 英寸或更多英寸的雪,每次推送收费 75 美元就可以完成。 他提供了 2,000 美元的价格,只要我们有雪,他就在那里犁地。 去年,他告诉我,我们大约有 20 次降雪 3 英寸或更多,所以如果今年再次发生这种情况,我最终将支付 1,500 美元(75 美元 x 20)。 所以每次下雪我只需要多付 500 美元就可以让他犁地。

从我的数据中可以看出,去年只有 5 次降雪 3 英寸或更多。 当然,我告诉这个承包商我不感兴趣。 我最终雇佣了另一个人,他会以 50 美元的价格完成这项工作。 我的问题是,为什么 JMP 将 15 英寸的总积雪量放在 2.5 英寸和 3.0 英寸之间? 既然总数是按降序排列的,为什么 15 英寸不是一直向右?
谢谢,
迈克 [用户]
我的回复
嗨,迈克!
在回答您的问题时,我想您会发现“Greenfield Center 1.6 W”列的数据类型设置为“字符”。除了明显的字母顺序之外,排序与字符数据令人费解。 当您将其与 Graph Builder 中的 Count-descending 选项配对时,预测变得更具挑战性。
这就是我认为正在发生的事情:Graph Builder 首先按“Count Descending”排序。 因此,行数最多的类别将出现在左侧,并随着您向右移动而减少。 当您有多个具有相同数量数据点的组时,即 1 & 2、1.5 & 2.5 和 15 – 9.5,Graph Builder 将使用正常的排序规则。 由于该列是字符,这意味着它将遵循伪字母顺序。 这意味着最后一组的排序将是 15、3、5.5、6、9.5,因为字母顺序是按字符从左到右排列的。 使用更可控的示例,JMP 如何对 1 到 20 之间的数字进行排序取决于数据类型是字符还是数字。 从数字上看,它会是 1,2,3, ..., 20,就像你所期望的那样。按字母顺序,它将是 1, 10, 11,12, 13, ..., 19, 2, 20, 3, 4, 5, 6, 7, 8, 9。
解决此问题的一种方法是使用 Value Order 列属性。 您可以定义希望 JMP 使用的顺序,它会覆盖默认值。 对于用户定义的值顺序,Graph Builder 中使用的层次结构将是计数降序,然后是值顺序,然后是值顺序列属性中未定义的任何内容的默认值。
最好的,
米
更多想法
在考虑了这一点之后,我意识到还有一些其他的方法可以解决这个问题,还有更多的可视化可以用来证明这一点。 首先,让我们处理一些数据清理。 Mike 使用的数据来自NOAA 的网站.该站点设置为一次下载一个月,因此需要一些连接工作。 查看数据,每个站点的其他数字降水数据中使用了一些字符代码。 M 和 T 分别用于“丢失”和“跟踪”。 这意味着两件事。 首先,我们有幽灵数据.
其次,我们有一些阈值,低于该阈值,NOAA 认为不需要报告特定值。 我们将不得不以某种方式处理这些问题。 此外,数据以 JMP 认为是字符的日月格式提供,并且缺少一年。 这意味着,如果我们要生成时间序列散点图,排序将不正确。 这也需要纠正。
首先,更正日期是一系列使用“-”作为“查找”和“/mm/yy”作为“替换”的查找和替换操作。 在实践中,这看起来像这样:

更正日期后,堆叠数据可能是个好主意。 这为分析提供了更多选择。 随着数据的堆积,我现在可以分配一个缺失值列属性,让 JMP 将“M”视为缺失。 我还可以使用 recode 将“T”更改为数值。 这NOAA 的常见问题说它认为痕迹是“少量的降水会弄湿雨量计,但小于 0.01 英寸的测量极限。”在这种情况下,我只是要将其重新编码为 0.01。
我要做的最后一件事是创建一个新列“降水组”。我实际上用过Brady Brady 的交互式分箱 (V2) 插件,但在公式编辑器中执行逻辑非常简单。 如果“降水”大于 3 英寸,则返回“犁”;小于 3 英寸为“无犁”;如果数据丢失,则返回“Missing”。

设置此列后,我隐藏并排除了所有缺失值。
在这种情况下,我想到了三种类型的可视化。 分布图、条形图和气泡图。 由于数据是堆叠的,因此每一个都将使用本地数据过滤器来选择感兴趣的站点。 基于我之前创建的指标列的分布非常清楚地表明,在 2016-17 赛季需要进行五次耕作。

在 Graph Builder 中创建的条形图使用参考线并根据是否需要犁地进行着色,显示了类似的故事。
泡泡图很有趣,为故事制作动画是提高信息影响力的好方法。 有几种方法可以接近可视化,具体取决于品味和信息。 气泡图也可以导出到交互式 HTML5(通过运行附加数据表中的脚本然后使用适合您的操作系统的正确导出选项来导出)。
第一个气泡图是动画时间图。 动画时,它会跟踪每日降水量,并根据降水量与耕作关键 3 英寸水位的接近程度为线着色。

第二个示例显示了数据集中的所有站点,同样在 y 轴上显示了每日记录的降水量。在此示例中,我将降水值作为大小变量包含在内,因此标记会随着 y 轴的爬升而变大。

地图示例是通过在数据来源相同的站点上定位 NOAA 站坐标列表创建的。 我创建了一个查找表并使用虚拟连接根据站点名称为每个站点引入纬度和经度。 与第二个气泡图一样,标记的大小由给定站点的每日记录降水量决定。 这张地图对于最初的问题并不是特别重要,但在制作动画时,它提供了一个有趣的视觉效果,显示了 2016-17 年冬季纽约暴风雪的时间、地点和严重程度。 为了找点乐子,看看你是否能找到让人们在纽约市时代广场滑雪的风暴(提示:那是在 2017 年)。

您是否有有趣的问题或数据集想让系统工程师查看?给我留言或留言。 也许我们会把它变成一个运行的东西。
作者的注释
对于那些再次阅读本文的人,不,你不是疯了,标题确实发生了一些变化。我收到了更新标题的请求,以便我们的搜索引擎更容易找到。我只能猜测这是因为一些搜索引擎是 19 世纪参考图书馆员的现代化身,没有幽默感。对任何不便表示歉意。-M
编者注:这是一个名为的系列中的第一个
工程邮袋由 JMP 系统工程师撰写,他们解决了有关 JMP 的各种技术问题。