超级Champsaur 竞赛
2022年7月,我跑了一场约~30km/~1500m高度的山地比赛。 由于大流行,这是我自 2019 年 10 月以来的第一场比赛,2 1/2几年前。


比赛进行得很顺利。 在比赛的大部分时间里,我都领先于我的队友,直到帕斯卡在还剩 6 公里时加入我,我们一起冲过终点线(多亏了他,他实际上在最后几公里等我完成了这个友好的终点)。 在最后一次爬坡(见下方 20 公里处左侧的山顶)和比赛最后三分之一的下坡时,我感到很累。

导入数据
为了对性能进行基准测试,我决定下载计时运动我使用 JMP 打开的数据(Excel 文件)。

由于某种原因,Excel 文件中的 Piolit 时间(“Piolit 1”列)和到达时间(“Temps”列)的定义方式不同,并且被识别为连续变量(“Temps”与蓝色三角形),而另一个被识别为分类变量(带有红色条的“Piolit 1”)。
别担心,现在是将我正在阅读的 JMP 脚本编写指南中学到的新经验付诸实践的最佳时机...... 别害怕,我不是极客,我闲暇时看小说,工作时间学脚本。
转换数据:列公式编辑器
我想要几分钟的时间。
使用这个公式,将连续变量“Temps = 2:32:43”(不幸的是,这不是我的时间,因为我花了 2 小时 10 分钟才能完成)转换为 153 分钟,这很简单。

分钟内()以分钟为单位变换时间,同样的变换存在数年、数月、数周、……秒。
在 115 分钟内转换分类变量“Piolit 1 = 1:54:57”(仍然不是我的时间,而是获胜者的时间)是一个使用的好机会正则表达式()这是处理复杂分类变量的好方法(我的例子实际上很简单)。

要点是通过使用来识别组成您的输入的各个组
(正则表达式(:皮奥利特 1,“ (\d)(\W)(\d\d)(\W)(\d\d) “))。
:Piolit 1 是列变量。 正则表达式()旨在识别此列变量中的组,每对括号都是一个组。 这里我们正在寻找 5 个组:
- 第 1 组= (\d) = 仅包含 1 位数字的小时数
- 第 3 组 = (\d\d) = 包含 2 位数字的分钟
- 第 5 组= (\d\d) = 包含 2 位数字的秒
- 第 2 组和第 4 组 = (\W) = 时:分和分:秒之间的“:”分隔符(代码(\W)实际上识别非字母数字字符)
完成此操作后,我们将重用第 1、3 和 5 组:
- 第 1 组时间:数量(正则表达式(:皮奥利特 1,” (\d)(\W)(\d\d)(\W)(\d\d) ","\1")) * 60
您将 :Piolit 1 (第 1 行中的 1:54:57)替换为 Group 1(这就是“\1”代表的意思),将其转换为数字(这就是数量)并乘以 60 (这就是 * 60 的作用)。
- 第 3 组分钟:数量(正则表达式(:皮奥利特 1,” (\d)(\W)(\d\d)(\W)(\d\d) ","\3" ) )
您将 :Piolit 1 (第 1 行中的 1:54:57)替换为第 3 组(这就是“\3”代表的意思),将其转换为数字(这就是数量做)。
- 第 5 组秒数:数量(正则表达式(:皮奥利特 1,” (\d)(\W)(\d\d)(\W)(\d\d) ","\5")) / 60
您将 :Piolit 1 (第 1 行中的 1:54:57)替换为第 5 组(这就是“\5”代表的意思),将其转换为数字(这就是数量)并除以 60(这就是 / 60 的作用)。
最后,将 3 个分量相加并四舍五入(这就是圆形的)以获得115分钟(仍然是胜利者,我距离它还很远)。
到达时排名:图表生成器
首先,我评估了我们与其他国家的表现。
a) 所有跑步者 b) 仅限男性 c) 我们的类别(M3H = 50-55 岁)


我以百分比而不是绝对数字进行计算,所以我除以
- 根据到达时间计算的排名使用上校军衔(:“到达(分钟)”n)
- 通过同一列中的事件数量(“到达(分钟)”)使用列号(:“到达分钟)”n)。
对于子类别,我添加了“按变量”,因此通过将另一个变量的级别视为实例来在列内完成计算
- b) “Sx”=“男性”或“女性”
- c) “Cat” = “SEF”、“SHE”、...“M6F”、“M8H”,具体取决于性别和年龄。
好处是您不需要多个公式计算或复杂的 if/then 语句,更重要的是,不存在错误风险,因为考虑到行级别,按列完成计算。
下面在我们的类别中突出显示的图表说明了我们两个人被选中进行详细分析的排名百分比:

最终,百分比反映了我们的立场:
- 与所有跑步者相比为 52%,所以我们是“平均”跑步者
- 与所有男性跑步者相比,为 60%,因此我们的表现低于男性跑步者
- 与50岁到55岁之间的男性跑者相比,提高了40%,这意味着我们的成绩比同龄男性略好
中间表现(在皮奥利特峰)与到达:图表生成器
现在我的数据格式相同(Piolit 和 Arrival 的时间均以分钟为单位),我进行了散点图可视化:

这两个变量之间存在对角关系,表明个体在比赛的最后三分之一中大致保持不变,没有发生重大变化。
我在数据上画一条拟合线(在排除最后一个看起来像异常值的跑步者之后),并保存预测公式和残差,以确定我在最后三分之一期间是否表现不佳(这是我的感觉)和/或帕斯卡是否表现不佳表现过度(我怀疑)。

有趣的是,我是“平均”人,残差 = -0.2,这意味着我的表现“正常”,而帕斯卡的残差为负(-4.4 分钟),这意味着他用的时间更少给最后三分之一的其他跑步者。 “他脚下还有一些东西”(不确定这是否是正确的英语表达,但我想每个人都能理解)并记住他在最后三分之一时等了我,所以他实际上应该做得更好。
我还使用附加列公式评估了排名差异:

并评估我们与其他跑步者相比获得或失去的排名:

毫不奇怪,帕斯卡获得了 10 名排名。
更令人惊讶的是我获得了6个排名。 这意味着
- 在全球范围内,根据整体拟合线的残差,我是“平均”人
- 但在本地(与我一起跑步/比赛的少数跑步者相比),我在最后三分之一期间做得不错。
我希望这篇博文将帮助您了解 JMP 中提供的一些公式编辑器功能,从简单到更复杂(一旦您开始使用正则表达式 ()你可以做伟大的事情)以及一些数据可视化/分析。
老实说,我通常不会过度分析我的“表现”,但我认为这是一个很好的用例,可以利用非工业数据来发挥 JMP 的一些好处,以获得更多乐趣。