超級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 的一些好處,以獲得更多樂趣。