延續上一篇的話題,關於 λ 的修正計算,如何更準確的預估或是計算出 λ 呢?

理論上 λ 應由「外部基準」決定,以下是三條可行的校準路徑:

PATH 1:對照官方建照數據

最直接的方法——以政府公布的「年度核發建照數」作為 ground truth,反推 λ:

λ* = log(N_t/N_0 / G_real) / log(C_t/C_0)

其中 G_real 為官方建照累計增長率。台中建管處(CPA)有公開資料,可據此反算出城市特定的 λ 值。

PATH 2:跨城市穩定性檢驗

若同一個 λ 值應用於台北、高雄、台中均能與官方數據對齊,則可視其為 OSM 系統性偏差的穩健估計,與個別城市無關。

PATH 3:保守採用 λ = 0.5

在缺乏 ground truth 校準的情況下,以 0.5 作為「未知條件下假設各佔一半」的保守選擇。報告中務必附上靈敏度分析表,讓讀者知悉結論在 λ ∈ [0.25, 0.75] 範圍內的穩健性。


批次修正多項指標

以下一鍵完成所有指標的偏差修正:

# osm/bias_correction.py:146-179
def run_bias_correction(osm_metrics, target_cols=None, base_year=BASE_YEAR, lambda_=DEFAULT_LAMBDA):
    if target_cols is None:
        target_cols = ["building_count", "amenity_count", "shop_count", "poi_diversity"]

    community_proxy = compute_total_elements(osm_metrics)
    yearly_means = osm_metrics.groupby("year")[target_cols].mean()

    all_results = []
    for col in target_cols:
        series = yearly_means[col].dropna()
        df = bias_correction_index(series, community_proxy, base_year, lambda_)
        df.insert(0, "indicator", col)
        all_results.append(df)

    return pd.concat(all_results, ignore_index=True)

輸出兩份結果檔:

  • output/osm_bias_corrected.csv——各指標各年的原始與修正後增長指數
  • output/osm_bias_sensitivity.csv——λ 靈敏度分析結果

修正前後各 OSM 指標的 8 年總增長率對比(λ = 0.5):

指標 原始增長 修正後增長 差距幅度
building_count +393% +140% 巨大
amenity_count +44% −30% 中等
shop_count +61% −22% 中等
poi_diversity +37% −33% 中等

為何 amenity / shop / poi_diversity 修正後呈現負增長?

這個結果頗具啟示性——它說明:設施、商店、POI 多樣性的增長速度,低於社群整體活躍度的增長速度。以白話解讀:

  • 社群志願者在 8 年間新增了 4.23 倍的「總元素」
  • 其中建築物增長最為顯著(4.93 倍),佔新增貢獻的絕大部分
  • 設施、商店類元素雖有增長,但比例上未能跟上社群整體活躍度的提升

修正後的負值意味著:這些指標的「真實增長」可能接近零,幾乎全數源於社群回填效應

這一發現本身即具有獨立的研究價值——它告訴規劃者一個有悖直覺的事實:從 OSM 觀察到的「商店設施大量增加」,很可能並非真實現象


八、方法論的局限

誠實面對這套修正方法的潛在問題:

1. 假設「真實建設增長」與「社群活躍度」相互獨立

此假設未必成立。當城市快速擴張時,社群往往也更有動力更新 OSM(例如建商人員主動補登自家樓盤)。兩者之間實際存在正相關。

即便如此,修正的方向仍是正確的——只是修正幅度可能略有過度。

2. C_t 以「總元素數」代理過於粗略

更精細的做法:以 OSM changeset 數量、活躍編輯者數,或某類「不會新增的歷史地物」(如山脈、河川的 way)作為更純粹的社群活躍度代理。但 changeset 資料須從 OSM Planet 下載,工程量較大。

3. λ 不宜跨指標共用

修正建築物所用的 λ,未必適用於設施類指標。理論上每個指標都應有其專屬 λ,但此舉會使校準工作量大幅增加。

4. 全域 λ 假設的侷限

目前 λ 假設在整座城市中均一。實際上市中心與郊區的「社群覆蓋率」差異顯著——市中心早已被 OSM 完整標記,郊區則在後期才陸續補登。空間異質性 λ(x, y) 是更嚴謹的作法,但需要更多前提假設。


九、本篇小結

概念 重點說明
問題 OSM 數據增長 = 真實建設 + 社群回填,兩者混雜難以區分
代理變數 C_t = 建築 + 設施 + 商店 + 休閒 總數,作為社群活躍度代理
修正公式 G_corr = (N_t/N_0) × (C_0/C_t)^λ
λ 選擇 預設 0.5,並進行 λ ∈ [0, 1] 靈敏度分析
校準方式 以官方建照數據或跨城市穩定性反推真實 λ
意外發現 設施、商店類指標修正後增長為負,暗示真實增長接近零

無標籤

關注作者:

新增評論