湯姆·布雷迪普遍被認為是NFL史上最偉大的四分衛。他保持的生涯傳球碼數紀錄只是他眾多輝煌紀錄之一。為了取得如此成就,他始終保持著極高的年傳球碼數,傳球次數和成功次數都位居榜首,避免了賽季報銷的傷病,並且擁有漫長的職業生涯。
本次演講將帶領我們進行數據探索和視覺化之旅,揭示湯姆布雷迪如何在NFL賽場上成為如此強大的存在。隨後,我們將分析哪些現役四分衛最有希望挑戰他的紀錄,以及這項挑戰可能在何時發生。
我們涵蓋了整個分析工作流程:從網站抓取資料的 JSL 腳本;準備用於分析的資料的資料清理工作流程;資料探索和視覺化;以及最終發布的 JMP Live 報告,該報告將在整個賽季中持續更新。
大家好,我是 Scott Allan,JMP 的系統工程師。很高興能和我的同事 Yasmin Hajar 一起來到這裡,在卡里舉行的 2024 年 Discovery Summit 大會上展示我們的海報。今年早些時候,我和 Yasmin 討論了 Discovery Summit 大會,以及我們希望展示的資料視覺化和分析工作流程,該流程涵蓋從資料存取到在 JMP Live 中發布資料的完整過程。我們每天都與客戶合作,並發現他們對實現該工作流程的完全自動化越來越感興趣,包括從資料匯入、分析到發布結果的整個過程。
本次演示將涵蓋 JMP 的諸多功能性。我們將展示如何從網站匯入數據,如何使用工作流程建立器自動更新和清理數據,如何使用各種 JMP 平台來視覺化、探索甚至建模數據,以及如何將結果發佈到 JMP Live。此外,我們還將示範如何使用自訂插件,只需點擊一個按鈕即可完成上述操作。
在這個專案中,我們決定以NFL前四分衛湯姆·布雷迪為原型來設計工作流程。當時,我們正在構思創意。我讀過一篇文章,講述了他職業生涯的統治力,以及他的紀錄將會持續很長時間。我開始思考,到底多長才算「很長」?下一個打破紀錄的四分衛是否已經上場?如果是,他們什麼時候會挑戰這些紀錄?
湯姆·布雷迪保持著多項NFL紀錄。為了本次演示的目的,我們將重點放在其中一項:他的職業生涯傳球碼數。但同樣的流程也適用於他的其他任何紀錄。我和亞斯敏都不是NFL的鐵桿球迷。我們一開始並不確定誰有資格競爭,或候選人是誰,甚至不知道最終會是誰。當我們開始深入研究這些數據時,我們了解到湯姆布雷迪的職業生涯是多麼的與眾不同,也很容易理解為什麼他被認為是史上最偉大的球員之一。資料探索之旅的真正起點是取得這些資料。現在,我把這項工作交給亞斯敏,讓我們開始吧。
謝謝你,斯科特。我們首先要做的就是創建1940年至2023年所有統計資料的歷史資料。你可以看到,我們需要造訪Pro Football Reference網站。我們編寫了自己的JSL腳本,將這裡的子年份變數替換為相應的年份,並將所有這些統計數據合併到一個包含過去幾年所有年份的原始資料表中。這就是我們的第一步。
然後我們使用工作流程建立器創建了一個工作流程,首先打開歷史數據,然後添加本週的統計數據。 2024年賽季開始後,我們就可以使用這些每週統計數據並將其添加到歷史數據中。可以看到,我們還需要執行多個額外步驟,例如標準化一些列屬性、添加職業生涯年份、添加活躍年份以及添加累計碼數列,以便我們可以對所有碼數進行求和。
但我想指出的是,其中一些步驟,例如導入本周和歷史數據,旁邊有一個加號,這意味著這是一個自定義步驟,我們必須在 JSL 中創建它,並將其作為自定義步驟粘貼到工作流程中。
創建好這個工作流程後,我們就能得到一份最新的足球數據統計表,其中包含截至本週的所有資訊。我們開始使用現有的視覺化工具。我們創建的第一個圖表是累積碼數隨年份變化的曲線,其中所有退休四分衛以灰色表示,湯姆布雷迪用紫色表示,現役四分衛用橙色表示。
我們可以立即看出,有些四分衛過早退役,如果他們繼續打下去,他們就能打破湯姆·布雷迪的紀錄,或者說,如果他們繼續打下去,湯姆·布雷迪就無法打破他們的紀錄。在現役球員方面,我們可以看到一些球員的累積碼數已經呈現出明顯的上升趨勢。我們只選取了現役球員,並將他們的累積碼數與其職業生涯年份繪製成函數圖。然後,我們將數據標準化到職業生涯年份。
然後我們開始分析這些球員中誰領先。可以看到,阿隆羅傑斯目前領先。然而,他去年表現不佳,誰也不知道他本季會如何。但另一方面,例如馬修·斯塔福德和拉塞爾·威爾遜,如果按職業生涯單季數據比較,他們的總碼數已經超過了湯姆·布雷迪。
如果只比較同一季的表現,他們已經領先其他球員了。德里克·卡爾(Derek Carr)的排名在這裡。他表現不錯,但職業生涯還處於早期階段。我們決定換個角度來分析。我們來看平均每年的傳球碼數,這些四分衛的平均每年傳球碼數如何?我們發現賈斯汀·赫伯特(Justin Herbert)的傳球碼數非常驚人,達到了每年4300碼,遠超其他球員;即使和湯姆·布雷迪(Tom Brady)相比,赫伯特的傳球碼數也明顯偏低。
但如果我們看一下這張動態關聯圖表,就能看到這些球員在職涯中所處的階段。我們可以看到,賈斯汀·赫伯特的職業生涯還處於早期,目前只有四年經驗。接下來,斯科特將向大家展示我們創建的更高級的報告和模型。
拿到新數據後的第一步,就像亞斯敏展示的那樣,就是進行一些數據探索。另一種思考哪些候選人可能挑戰這些記錄的方法是進行其他資料探索,例如聚類分析。我們在這裡所做的,是找到在各個方面都很相似的四分衛,不僅僅是累計碼數或年均碼數這一統計數據,而是綜合考慮他們的所有特徵,我們運用了層次聚類分析。
在這種情況下,我們對所有四分衛進行了聚類分析。我認為這個數據表中大約有 800 名四分衛,我們根據他們的統計數據(例如過往傳球次數、傳球成功次數、被攔截次數等等)對他們進行了聚類。我們現在看到的是星座圖的結果。這個星座圖展示了在所有統計數據上都具有相似特徵的四分衛群體。
我們可以看到這裡有一些主要的分類分支,它們開始區分不同組別或類型的四分衛。我們可以看到湯姆·布雷迪在這個分類中的位置。但這並不能告訴我們他們的統計數據或能力。它只是表明,這些四分衛在各項統計數據上都比較相似。
我們可以放大查看包含湯姆布雷迪的那條分支。我們當然可以看到一些熟悉的名字,一些你可能在之前的圖表中看到過的名字,還有一些可能會讓你感到驚訝。我們也保留了退休或不再活躍的四分衛,他們就是圖中的灰色小點。
你可以看到,如果他們職業生涯處於不同的階段,他們的職業生涯或許會更長一些,或許還能挑戰一些紀錄,但他們現在已經退休了,挑戰這些紀錄的機會也隨之消失了。我們可以看到湯姆布雷迪的現狀,也開始展望未來,看看還有哪些四分衛可能正在逐漸縮小差距,甚至挑戰他保持的紀錄。
接下來,我們要做的就是對這些數據進行建模。前兩種方法,即數據探索和聚類,實際上都是為了探索數據,找出最有可能挑戰紀錄的四分衛。但為了確定這些紀錄何時可能被挑戰,我們需要建立一個模型。有很多不同的模型可以用於此目的,我們選擇建立一個混合模型。
我們使用混合模型平台來擬合模型,以累計碼數作為反應變數(Y變數),職業生涯碼數作為自變數(X變數),然後以球員姓名作為隨機效應,並將這些係數嵌套起來。本質上,我們得到的是每個四分衛的簡單線性回歸,以每年累積碼數為因變數。每個迴歸方程式都有各自的斜率和截距。基於這些信息,我們得到了各種不同的迴歸方程,從而可以進行反向預測。
我們利用湯姆·布雷迪81294碼的紀錄進行反向預測。透過反向預測,我們可以得出四分衛達到這累積碼數所需的年數。我們根據這份報告創建了一個數據表,然後根據每位四分衛的新秀賽季數據對該數據表進行了標準化處理。右側的圖表展示了每位四分衛的情況。圖表以達到該紀錄所需的年數升序排列。
你可以看到,圖中我們之前提到的兩位球員,阿隆·羅傑斯和馬特·斯塔福德,分別用兩個橙色點表示。你可以看到湯姆布雷迪的位置在紫色點上,他是在職業生涯的第24個賽季(2000年)完成這一壯舉的。我記不清具體是哪一年了,大概是2022年左右。但我們在這裡也看到了其他四分衛的身影。當然,阿隆羅傑斯和馬特斯塔福德將是第一批挑戰這項紀錄的人,但他們還需要六到七年的時間才能做到。預計他們會在2031年或2032年賽季挑戰這項紀錄。如果他們繼續打下去,他們或許能夠接近自己的職業生涯總碼數紀錄。
還有一批更早的四分衛可能會在更遠的年代開始挑戰這項紀錄。也許要等到2030年代末或2040年代初。別抱太大希望,這不會很快發生。不過令人欣慰的是,目前還沒有四分衛明顯在衝擊這項紀錄,但未來可能會有不少四分衛做到這一點。現在我們已經探索並分析了數據,接下來我們將轉而展示如何發布和分享這些數據,以及如何實現整個工作流程的自動化。
我會把它轉交給亞斯敏來幫我們處理。
謝謝你,斯科特。正如斯科特所說,我們的目標是將部分報告發佈到 JMP Live 上,以便大家能夠隨著賽季的進行追蹤這些報告的變化。為此,我們只需選擇「發布」>「將報告發佈到 JMP Live」即可。我們選擇了所需的報告。在這個例子中,我有一個包含幾張圖片或幾張圖表的儀錶盤,然後將 JMP Live 上的資料表替換為來自該職業橄欖球網站的、已更新統計資料的資料表。
為了進一步簡化操作,我們將所有步驟(包括發佈到 JMP Live)整合到一個外掛程式中。這裡我們展示創建插件的步驟,因為創建插件非常簡單,我們也想與大家分享。具體操作方法是:點選「檔案」>「新建」>「插件」。在要點擊的按鈕下方,我們複製並貼上了從工作流程建構器匯出的 JSL 腳本。在工作流程建構器中建立工作流程後,您可以匯出 JSL 腳本,然後我們將其複製並貼上到這裡。
為了更進一步,我們把這個插件從插件選單中移到了自訂選單,這樣用戶點擊按鈕就更方便了。接下來,我快速示範步驟。這就是我們的自訂選單。點擊“運行統計”,可以看到當前年份的更新。這是一個標準化的表格,列等等都符合規範。
它會建立一個包含頂層資料的表子集。它在這裡創建了儀表板。我快速展示一下 JMP Live,它正在自動重新加載,顯示最新的平均每年碼數和球員碼數統計資料。這就是我們發布和添加的全部內容。現在把話題轉回 Scott,聽他做最後的總結。
這涵蓋了從資料存取、清理、圖表繪製、建模到發布的整個工作流程。如果您想跟著操作,我們也會將此儀表板發佈到 JMP Public,可能還會添加一些我們覺得有趣的其他圖表。請隨時關注,我們會在 JMP Public 網站上線後發布鏈接,並在社區中分享。
如果您想更深入地了解您在這裡看到的所有內容,我們實際上只是對我們的工作進行了概覽。我們只是快速瀏覽了一下腳本和分析。但如果您想了解更多,請在社區發布。我們很樂意回答這些問題。在此,我要感謝 JMP 給我們這次製作海報和進行演示的機會。我要感謝 Yasmin 與我一起完成這個專案。我非常享受這個過程,也學到了很多。
謝謝。