
工程邮袋
第一集:除雪服务的经济学
我们 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”列的数据类型设置为“字符”。除了明显的字母顺序之外,字符数据的顺序也变得复杂起来。 当您将其与图形生成器中的计数降序选项配对时,预测会变得更具挑战性。
我认为正在发生的事情是这样的:图形生成器首先按“计数降序”排序。 因此,行数最多的类别将显示在左侧,并随着向右移动而减少。 当您有多个具有相同数据点数量的组时,即 1 和 2、1.5 和 2.5 以及 15 – 9.5,图形生成器将使用正常的排序规则。 由于该列是字符,这意味着它将遵循伪字母顺序。 这意味着最后一组的顺序为 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。
解决此问题的一种方法是使用“值顺序”列属性。 您可以定义希望 JMP 使用的顺序,它会覆盖默认值。 对于用户定义的值顺序,图形生成器中使用的层次结构将是计数降序,然后是值顺序,然后是“值顺序”列属性中未定义的任何内容的默认值。
最好的,
中号
更多想法
经过思考之后,我意识到还有一些其他方法可以解决这个问题,并且可以使用更多可视化来证明这一点。 首先,让我们进行一些数据清理。 迈克使用的数据来自美国国家海洋和大气管理局的网站。该网站设置为一次下载一个月,因此需要一些串联工作。 查看数据,每个站点的其他数字降水数据中使用了一些字符代码。 M和T分别用于“缺失”和“踪迹”。 这意味着两件事。 首先,我们有幽灵数据。
其次,我们有一个阈值,低于该阈值,NOAA 认为没有必要报告特定值。 我们必须以某种方式处理这些问题。 此外,数据以日-月格式提供,JMP 将其视为字符,并且缺少年份。 这意味着如果我们要生成时间序列散点图,顺序将不正确。 这也需要纠正。
首先,更正日期是一系列查找和替换操作,使用“-”作为“查找”,“/mm/yy”作为“替换”。 实际上,这看起来像这样:

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

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

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

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

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

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