立場新聞 Stand News

以地理計算模擬 2019 年的七一遊行

2020/8/22 — 16:56

前言 Foreword

在新冠肺炎和國安法的陰霾下,香港的集會自由嚴重倒退,2020 年的七一遊行在警方的反對下舉行,遊行人士自由行。本文重新檢視 2019 年的遊行人流和人數,憑弔香港碩果僅存的自由集會。

去年的七一遊行,不同陣營分別有不同估算,由 19 萬至 55 萬人不等(表一)。筆者與香港大學葉兆輝教授和君宇人工智能(C&R Wise AI Limited)有限公司合作,初步點算參與遊行人數為 26.5 萬人。去年的估算採用了基於傳統統計方法的 Capture-Recapture 與現場調查的綜合方法,其特點在於以 AI 與人手計算調整總人數。本文筆者嘗試運用嶄新的地理計算模擬(Geocomputation)方法,非以傳統的定點數算而是以整個二維空間的模型去模擬遊行人流,以遊行所需時間和不同地點的人流點算數據來檢視估算人數的虛實。

長文慎入,可按照以下小標題跳到不同部分:

  • 方法學 Methodology
  • 結果 Results
  • 結論 Conclusion

表一:2019 年七一遊行的人數估算

來源遊行人數估算方法學
警方19 萬不詳
雷鼎鳴21.5 萬不詳
路透社22.7 萬一個地點抽樣,每 15 分鐘人手數算 30 秒
HKUPOP(現為 HKPORI)26 萬兩個地點抽樣每 4 分鐘人手數算 2 分鐘,配以電話問卷調整誤差
葉兆輝、筆者和 C&R 團隊26.5 萬三個地點抽樣,全時間 AI 數算配以每 5 分鐘人手數算 1 分鐘,現場問卷和部分地鐵巴士站人手數算再調整誤差
民陣55 萬不詳

方法學 Methodology

廣告

這個遊行模型模擬每一個遊行人士為二維空間裏的一點,可以在維園至中環的街道上選擇不同的路徑前往遊行目的地,包括政府總部或遮打花園,也可以中途離開。每一個模擬遊行人士的每一步都可以根據最短距離(shortest distance),可用空間(available capacity)或隨機(random)來決定,模型空間被分割為 4 平方米的細小空格,理論上每一空格最多可容納 5.4人 ,步行速度按每一空格的人口密度而定,每三秒反覆運算每一個模擬遊行人士,每人的遊行步速和路線不一而足(圖一)。有關筆者的電腦遊行模擬,可以參詳此影片前文

圖一:模擬 26.5 萬人的遊行模型(模型影片: https://youtu.be/yRq5-hmMQas )。

圖一:模擬 26.5 萬人的遊行模型(模型影片: https://youtu.be/yRq5-hmMQas )。

廣告

根據傳媒報導,筆者調整遊行模型的模擬空間和參數以模擬人流動向,包括維園外中途加入,東角道至駱克道的短暫開放,不同的人潮出入口位置等。「自己遊行自己數」計劃招募了大量義工,一批義工為七一遊行人士提供了 233 個 GPS 軌跡數據。由於 GPS 在高樓大廈和萬人空巷的環境下空間誤差很大,筆者用 smoothing algorithm 去蕪存菁,「拉直」遊行軌跡,以此釐定模擬平均步行速度(圖二)。另一批義工亦於 3 時許至晚上 8 時許,即遊行隊頭和隊尾經過期間,在銅鑼灣和灣仔各地鐵閘口以及巴士站點算遊行人士裝束的離開人數。

圖二:(a)「自己遊行自己數」計劃裏收集的 233 個 GPS 遊行軌跡數據,(b) 空間處理前的其中一個軌跡,(c) 空間處理後的同一個軌跡。

圖二:(a)「自己遊行自己數」計劃裏收集的 233 個 GPS 遊行軌跡數據,(b) 空間處理前的其中一個軌跡,(c) 空間處理後的同一個軌跡。

在七一遊行中,遊行人數及其人流動向,如提早離開和中途加入,均直接影響遊行人流和所需時間,是遊行模型的決定性因素。由於缺少人流動向的數據,筆者嘗試用不同的離開率(由 10% 至 90%),加入率(由每分鐘 200 人至 4,000 人),以及模擬遊行人數(表一)作為不同模型的參數。這次研究模擬不同的遊行人數,包括 19 萬、21 萬、23 萬、25 萬、26.5 萬、30 萬和 55 萬,合共模擬了 819 個不同的遊行模型。由於模擬需時,即使以 3.3 GHz Core i7 processor 來運算,每個模型大約運算 4 至 12 小時不等,筆者運用雲端計算,大大縮短運算時間。

結果 Results

在 819 個遊行模型當中,合理的模擬遊行時間必須和現實的遊行時間吻合。2019 年的七一遊行提早於下午 2 時 45 分開始,至晚上 9 時 15 分結束,歷時大約 6.5 小時。有見及此,每個可以在 6.5 小時的時間內(可接納誤差為正負 5%)完成模擬整個遊行的模型都是可以接納的。由圖三可見,可接納的模型以 19 萬為最多(26 個),30 萬只有 2 個,模擬人數越大,可以在合理時間內完成模擬的模型越少。由於 55 萬的模型未能達致合理時間範圍,該等模型未能納入以下的分析。

圖三:每一點代表一個不同參數的模型,紅色的點代表這個模型的模擬遊行時間在六個半小時的合理時間內(可接納誤差為正負 5%)。

圖三:每一點代表一個不同參數的模型,紅色的點代表這個模型的模擬遊行時間在六個半小時的合理時間內(可接納誤差為正負 5%)。

在 84 個合理時間內完成模擬的模型中,它們的平均模擬人數為 220,892,標準偏差為 28,593,所以模擬結果顯示遊行人數應介乎 19 萬和 25 萬之間。建基於 2019 年七一遊行實地收集的數據,筆者進一步驗證在合理時間內完成模擬的模型的人流動向,包括:

  • 不經波斯富街天橋的中途加入人數(N Late Arrival after Percival ):8%
  • 軍器廠街天橋前離開的人數(Departure Before Arsenal ):3%
  • 於灣仔和銅鑼灣離開的人數比例 (Departure Wan Chai / Causeway Bay ):8

在指定的模擬遊行人數,筆者計算所有在合理時間內完成模擬的模型的人流動向平均值(表二)。一般而言,在維園出發的約有 3 至 4 萬人,中途加入的人較多,在各處平均每分鐘有二千人以上加入,以銅鑼灣最多,灣仔次之。與實地收集的數據對比,在灣仔加入的比率相差不遠,19 萬和 21 萬的模型最接近 31.8%。

表二:合理時間內完成模擬的模型的人流動向平均值

表二:合理時間內完成模擬的模型的人流動向平均值

要在指定時間下完成遊行,模型模擬了平均 54.2% 至 85% 的提早離開率。在所有模型中,大約有 2 萬至 3 萬多的人士在銅鑼灣離開。在 23 萬以下的模型,較多人選擇在金鐘離開;在 23 萬以上的模型則較多人在灣仔離開。然而,模擬遊行的離開人流和實地數據有較多出入,特別是在軍器廠街天橋前和灣仔/銅鑼灣的比例,都有頗大的差別。同樣,要在 6.5 小時完成遊行,模型顯示越多人參與的遊行只能有較少的人到達終點。

結論 Conclusion

  1. 究竟 2019 年的七一遊行有多少人參與?
    根據模型結果,19 萬至 30 萬皆有可能,模擬人數較低的模型有較多的模型參數均可達標。然而,這並不代表模擬人數較高的模型沒有可能。在這次研究中使用的參考數據中,遊行時間應是最準確可靠的。中途加入和離開數據都依靠樣本採集,因此有時空的局限性和誤差。所以雖然模擬結果和實地數據有點差別,特別是離去人流不太吻合,但這些模型都符合可接納的的遊行時間。
  2. 在這個模擬實驗中,人數較多(如 55 萬)的遊行模型並未能達致合理的模擬遊行時間,這有可能跟遊行模型的定義有關。這次研究定義模擬遊行人士為任何人士在遊行的二維空間以遊行終點為目的地行走一段距離,此空間以銅鑼灣至中環的遊行行車線為主(如軒尼詩道和駱克道),但並不包括行人路及傳媒報道以外的街道,所以模擬結果跟採用不同定義的估算有所不同。事實上,這次遊行前已有部份示威者衝擊立法會,警方建議延期並反對遊行終點,加上網上謠言鼓勵遊行人士必須經過人手點算的兩個定點才會被數算,遊行中部分遊行路段沒有不反對通知書、遊行人士加入起步地點不同,及因應示威者衝擊立會事宜警方勸籲金鐘一帶的遊行人士離開,最後終點臨時更改,這些都會影響遊行人士的人流走向以及數據的準確性,遊行模型並未能完全模擬和量化這些影響。
  3. 筆者和研究夥伴初步點算 2019 年的七一遊行人數為 26.5 萬,此數字有其科學基礎。曾身歷多次遊行的筆者在反覆模擬前曾樂觀認為數字有上調的空間,但此研究的模擬結果似乎指向 22 萬這個較低的數字。在芸芸有詳細交代方法學的人數估算中,模擬遊行數字較接近路透社估算的 22.7 萬。雖然模擬結果視乎模型參數,未能明確肯定或否定單一數字,但綜合筆者兩次不同方法的計算,當日應該有二十多萬(22 萬至 26.5 萬)市民願意上街和平表達其意願,這個估算範圍應該非常接近真實數字。
  4. 遊行人流異常複雜,模型需要很多的數據和小心校準(calibration)和驗證(verification)才能較好地模擬這個複雜現象。人越多,人流動向加倍複雜。筆者曾模擬 2018 年的七一遊行,規模只有數萬人,很多模型細節在數十萬人的規模下造成很多不現實的模擬。但是模型可以反覆模擬不同的遊行狀況,對了解人流動向和驗證人數都有幫助。這次模擬結果是首次量化遊行中的人流時空動向,包括銅鑼灣,灣仔和金鐘的小區域人數。
  5. 結果也顯示這個模型在模擬大型遊行可改善的地方,歡迎有興趣的朋友下載和改良放在 GitHub 的遊行模型,希望假以時日可以更準確和快捷。

如想知道更多研究細節,可參閱此簡報

筆者由衷向每一位遊行人士以及參與「自己遊行自己數」的義工致以萬二分謝意。

發表意見