根據中央極限定理: 大量相互獨立隨機變數的均值經適當標準後為常態分佈。RMT不論有無發生地震均會不斷一直計算, 以目前觀察到的Mw為例, 平時多在3.5以下, 當遠方地震傳來時, 經驗上常看到Mw>4的現象. 假設每次解出的Mw是一個隨機變數Xi, 那麼:

X=X1+X2+X3+....

不論原來的Xi是甚麼分佈, X應是常態分佈. 如果無震時的均值Mw0, 有震時的均值Mw1, 那麼長時間統計下來, 應該會看到兩個以Mw0與Mw1為均值的常態分佈混和體, 分別代表有震與無震的分佈情形 (實際分佈當然是跟地震生發生的情形有關). 以今年5月的資料為例, 出現的次數圖形如下:

undefined

看起來的確是這麼一回事. 要如何確認呢? 最近流行AI技術, 所以也來玩玩看. 假設Y1代表無震時的分佈, Y2代表有震時的分佈, 且Y1與Y2皆為常態分佈, 兩個分佈有不同的最大值,平均值與標準差, 那麼Y=Y1+Y2應該可以找到兩個常態分佈和的方程式來fit. 從fit後的情形,  可以評估符合模型的準確度.

首先是讀取檔案:

undefined

建立 tensorflow graph: y1_pred與y2_pred為兩個常態分佈, 參數a1/u1/s1與a2/u2/s2, 一般來說都會用亂數去產生, 但這種方式常常難以收斂, 因為我們用眼睛就可以看到這兩個分佈的長相, 所以這裡直接給個大概的數字, 然後再讓tensorflow的optimizer去找, 這樣可以省掉很多時間:

undefined

執行session:這裡設定loss<0.018或太久沒有降低loss就跳出

undefined

 

最後輸出結果與圖形:

undefined

執行過程:

undefined

執行結果:

undefined

共執行4416次, a1_final= 0.99921775 ,  u1_final= 2.6671188 , s1_final= 0.25635517, a2_final= 0.761186 ,  u2_final= 3.5796206 , s2_final= 0.32652023

最後跳出時的誤差為 0.017999463, 資料48筆, 平均每筆誤差 0.00037498880798618, 看起來還不錯, 可以把Mw分佈視為由兩個常態分佈混合而成.

在這裡如果取2個標準差, 讓95%觀測值落在此範圍, 可以知道無震時均值為2.67, 主要分佈範圍是2.15~3.28, 有震時均值為3.58, 主要分佈範圍是2.93~4.23, 跟觀察經驗相符.

求出這些參數後,未來可以用於分類問題的最佳門檻值計算。假設兩個類別的分佈:

undefined

undefined

若取樣之樣本應屬於第1類而被歸類為第2類,或是應屬於第2類而被歸類為第1類,此兩種分類錯誤的機率,如下圖的綠色區域所示,求 x ̃ 使得 f1 (x ̃)=f2 (x ̃), x ̃ 是使系統分類錯誤機率最小的門檻值。若觀察到的Mw值大於 x ̃ ,且落在第2類(有出震)分佈的2σ範圍內,則有較高的機率是屬於已發生或即將發生之地震訊號。 

undefined

把datafile改成 RMT_Mw_201802, 重新跑一次, 可以看到206花蓮地震時大量群震對分佈的影響:

undefined

程式跟資料在這裡下載

 

 

 

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 ghostyguo 的頭像
    ghostyguo

    No More Codes

    ghostyguo 發表在 痞客邦 留言(0) 人氣()