基于統計回歸的地震破壞性分析模型及東?本?地震仙臺市災情分析中的應?

東北大學 2017 年大學生數學建模競賽 A 題一等獎成果。
在 GitHub 上:https://github.com/lalxyy/NEU-2017-MCM-A
由于不能顯示行內公式,部分 LaTeX 公式以原形式展現。

摘要

東京時間 2011 年 3 ? 11 ? 14 時 46 分,?本東北地?太平洋海域發??? 9.0 級地震,并伴隨有 7.0 到 7.4 級的多次強余震。9.0 級地震也造成了歷史記錄以來罕見的?達 39 ?的巨?海嘯。截?到 2011 年 5 ?,超過 2.4 萬?被官?報告為死亡或失蹤;另外,福島第?核電站因此發?的嚴重核事故也導致了千余?的?直接死亡,這些?并發?的重?事故也給?本及周邊國家帶來了嚴重的損失。本?通過評估磐城、仙臺、宮古與橫須賀的地震破壞及損失情況,利?多元線性回歸的?式,建?了災害有關因素(地震強度、海嘯等)與災害造成的后果(?員傷亡、經濟損失)的模型。

本?根據互聯?中能夠查得的數據進?提取,并獲得了沿岸海浪最??度、與震中距離、地震??烈度、經濟?平(GDP)等數據,以及?員傷亡、財產損失的數據。根據繪制的散點圖確定多元擬合中每個分量對應的多項式次數,之后將?次單項式換元轉化為?次單項式,使?多元線性擬合來得出多項式系數。利?所得出的模型,本?又簡要分析了仙臺市的災情情況,并且指出數據點較少帶來的模型的不?之處。

關鍵詞: 多項式擬合; 地震破壞性評估; 東?本?地震

1 問題背景與分析

1.1 背景

2011 年 3 ? 11 ??本福島發??? 9.0 級?地震,強震引發海嘯,導致當時全球最?的在役核電站——福島核電站放射性物質外泄。該事故根據國際核事件分級被評為最?級 7 級,與切爾諾貝利核電站泄漏事故等級相同。截? 2014 年 2 ?,“3.11”東?本?地震和?海嘯死亡的?數達到 15884 ?。 截? 2014 年 5 ?,受東?本?地震和福島第?核電站事故影響,?直接死亡的?數已經達到 1699 ?,超過了在事故中直接死亡的 1603 ?。

建?數學模型,在以下?本沿海城市:磐城、仙臺、宮古和橫須賀 中。?較各種規模??的地震破壞以及所造成的后果,并為當地報紙準備?篇?章,解釋根據你的模型關于其中?個城市的發現。

1.2 問題分析

該問題本質為求解?個地震因?向量 x = (x_1 , x_2 , ..., x_m) 到影響程度向量 y = (y_1 , y_2 , ..., y_n) 的函數 F(可能包含多個線性變換),表示為

,怎樣得出 F(x) 也是本?討論的核?內容。

由于災害產?的影響與?類?產??平的發展情況和???的主觀能動性有很?的關聯,所以單純憑借歷史以來的地震傷亡?數、財產損失情況不能作為衡量當今災害情況與財產損失的直接依據,但是?類??因素又是衡量地震帶來的破壞性的必要考慮因素,且關系極其復雜。為了簡化模型、提?模型準確性與說服?,我們將磐城、仙臺、宮古和橫須賀四個地區在同?時間橫向對?,不需控制時間的變量,?是通過與震中的距離來衡量地震的影響規模。

題?所給出的四個地區的建設、經濟發展?平不盡相同。圖 1 是 Google Maps 的數據,給出了四城的地理位置與震中坐標,最右側海域中的是本次地震的震中,其余點從上到下依次為宮古、仙臺、磐城、橫須賀;

圖 1:Google Maps 數據

以及四城 2010 年當時的國民?產總值(GDP)[1][2][3][4]:

城市 國民生產總值
仙臺 61.7
橫須賀 12.2882
磐城 16.5905
宮古 5.19

表 1: 2010 年四城國民?產總值(單位:億美元)

由此我們將經濟因素(代表抗災、救災?平)納?到考慮因素中。除此之外,根據常識,地震破壞性本?又與震中位置、震源深度以及城市與震中的距離相關,也是模型中必要的考慮因素。Google Maps 分別提供了四城市中?到震中的直線距離(表 2);

城市 與震中距離 / km
宮古 186.45
仙臺 176.75
磐城 207.31
橫須賀 423.28

表 2: 震中直線距離

此外,連帶因素還包括由于?本部分區域近海?產?的由地震引發的海嘯影響、以及福島核電站放射性物質外泄造成的事故。四個城市的海嘯浪?度最?值可以在?象數據中查得 [5][6](表 3); 以及從各城市與所屬縣政府查得的?員傷亡與財產損失情況(表 4)[7][8][9][10]。

城市 海嘯沿岸最??度 / ?
宮古 8.5
仙臺 8.6
磐城 6.51
橫須賀 2.06

表 3: 觀測到的海嘯?度
注:部分觀測點不以城市命名,選取對應最近的觀測點。

城市 傷亡?數 經濟損失(億美元)
宮古 611 22.4775
仙臺 904 119.0022
橫須賀 0 0.92
磐城 466 0.1478

表 4: 四城傷亡?數與經濟損失
注:橫須賀市政府沒有說明有任何?員傷亡情況(參考?獻 10),擬合過程中暫計為 0。(附錄 B.2)

2 模型假設與說明

2.1 符號說明

符號 代表意義與說明
A_1 仙臺市
A_2 橫須賀市
A_3 宮古市
A_4 磐城市
X 表示地震整體因素的向量
x_1, ..., x_m 影響地震破壞性的各個因素
Y 表示地震破壞性結果的向量
y_1, ..., y_n 地震破壞程度的不同衡量特征(財產損失等)
F 最終求解的地震破壞性衡量函數
d_1, ..., d_4 對應 A_1 , ..., A_4 到震中的直線距離,單位為千?

表 5: 本?所使?的符號說明

2.2 模型假設

假設 1:?本本?海岸線在地震中沒有?規模(超過 10 ?的顯著)偏移;[11]
假設 2:?類的能動性(主觀性與?產?)與發展時間相關且滿?映射關系;
假設 3:?類在地震中的抗災防災?平與經濟發展程度正相關;
假設 4:?個城市區域內的建筑物強度可以??個平均值來表示,且可以?建筑物的強度、破壞程度作為衡量城市破壞程度的主要因素。

3 模型建立

3.1 知識背景

3.1.1 地震影響場

采?的地震烈度影響場衰減公式:
沿長軸?向,


沿短軸?向,

其中 d 表示城市與震中的直線距離。[12]

3.1.2 海嘯等級

采?太平洋地區普遍適?的今村-飯?強度分級來評定海嘯的強度等級,其中 H_av 表示沿最近海岸的平均海嘯?度,I 為輸出強度值。[13]

3.2 具體問題參數引入

由問題分析所述,已經基本可以確定 XY 各分量的表?含義。將 x_1 , x_2 , y_1 , ... 等分量指派為表 6、7 中所示的含義;四城中每個城市都與且僅與?組向量對應。

維度 表示含義與單位說明
x_1 地震震級(??)
x_2 國民?產總值(億美元)
x_3 輸?值在 d_1 , ..., d_4 范圍內,與震中直線距離(千?)
x_4 海嘯沿岸最??度(?)

表 6: 地震影響因?向量 x 各分量表示含義

維度 表示含義與單位說明
y_1 傷亡?數
y_2 經濟損失(億美元)

表 7: 影響結果 y 各分量表示含義

并通過 Python 語?與 Matplotlib 庫繪制 y 各分量與 x 各分量散點圖:

圖 2: 震中距離與傷亡?數
圖 3: 震中距離與經濟損失
圖 4: GDP 與傷亡?數
圖 5: GDP 與經濟損失
圖 6: 海浪?度與傷亡?數
圖 7: 海浪?度與經濟損失

3.3 基本模型

根據現有散點圖及統計回歸模型,認為 y_1 , y_2 為被解釋變量,x_1 , ..., x_4 為解釋變量。觀察散點圖,認為 y_1x_3y_2x_3 滿??次多項式擬合的圖像特征,且函數對應單調遞減:



其中 a_{ij}, b_{ij} 為需要求出的多項式系數,i = 1, 2, 3, 4j = 0, 1, 2,而且擬合曲線應當單調遞減。類似方法可得 y_1x_2y_2x_2 線性關系,



以及 y_1x_4, y_2x_4 的圖像特征也可用二次多項式來擬合:



y_1y_2 的取值受到以上因素的影響。所以可以得出關于 x_2, x_3, x_4 的兩個三元多項式擬合函數

,其中 c_1c_2 為該多項式擬合模型中的常數,也就是


4 模型求解

引?擬合?法中的最??乘法,使?多元線性回歸的?法求解該模型。令

,此時原函數變為五元線性擬合。

對于任意一個取值點 (x_{ij}, y_{kj}),其中 j = 0, ..., 3i = 1, ..., 6k = 1, 2(已知四個城市對應的數據點),有

,對于 y_1,也就是

此時令

,就有

兩側同時左乘 A^T,得

,整理得

,求出 c_1, a_{21}, a_{31}, a_{41}, a_{32}, a_{42}

使用計算機求出的最后結果為

5 模型評價與改進

該模型可以根據已有的?然災害數據較為準確地求得財產損失與?員傷亡的程度,能夠給出范圍內的合理值,可?于防災減災與災害造成后果的快速估計與判斷。然?本模型利?的數據點較少,如果使??量的數據來進?擬合則會使模型更有說服?。

6 推廣與應用:仙臺市

仙臺市是?本東北地?的區域中?,也是本題?已知條件中離震中最為接近的城市。從之前繪制的圖像和模型預估的情況來看,仙臺的情況并不容樂觀:常識上講,?個發達區域的經濟發展?平越?,防災減災能?也應該越強,這也是本?在模型建?時考慮 GDP(國民?產總值)作為防災減災因素的原因;但是由此看來,仙臺及?本東北地?城市仍然需要加強對于防災減災?采取的措施,例如削弱海嘯因素帶來的影響,可以體現在本模型中的擬合曲線更為平滑,?且海嘯是導致此次地震及連帶事故中?員傷亡與財產損失的?個主要的原因。

參考文獻

[1] 宮古市役所. 平成 23 年度 財政狀況資料集 [EB/OL]. 2011. http://www.city.miyako.iwate.jp/data/open/cnt/3/5677/1/H23zaiseijoukyou.pdf.
[2] 橫須賀市. 財政?書(平成 23 年度決算)[EB/OL]. 2012. http://www.city.yokosuka.kanagawa.jp/1610/finas/documents/hakusyo23.pdf.
[3] KANEMOTO Y. Metropolitan Employment Area (MEA) Data[EB/OL]. 2011. http://www.csis.u-tokyo.ac.jp/UEA/uea_data_e.htm.
[4] いわき市役所. 平成 23 年度決算 [EB/OL]. 2012. http://www.city.iwaki.lg.jp/www/contents/1001000003486/simple/H23_kessann.pdf.
[5] ?本気象庁. 國內の津波観測施設で観測された津波の観測値 [EB/OL]. 2011. http://www.data.jma.go.jp/svd/eqev/data/2011_03_11_tohoku/tsunami_jp.pdf.
[6] ?本気象庁. 気象庁|津波観測點(東北地?)[EB/OL]. 2017. http://www.data.jma.go.jp/svd/eqev/data/tsunamimap/.
[7] 宮古市役所. The Great East Japan Earthquake and Tsunami Records of Miyako City[EB/OL]. 2015. http://www.city.miyako.iwate.jp/data/open/cnt/3/5971/1/records_of_miyako_city. pdf.
[8] 仙臺市役所. 東?本?震災における本市の被害狀況等 [EB/OL]. 2017. https://www.city.sendai.jp/okyutaisaku/shise/daishinsai/higai.html.
[9] いわき市役所. いわき市災害対策本部週報 [EB/OL]. 2015. http://www.city.iwaki.lg.jp/www/contents/1449132951986/simple/higai0524.pdf.
[10] 橫須賀市. 東?本?震災関連情報 [EB/OL]. 2011. http://www.city.yokosuka.kanagawa.jp/shinsai311/index.html.
[11] NASA. Japan’s Coastline Before and After the Tsunami[EB/OL]. 2011. https://www.nasa.gov/multimedia/imagegallery/image_feature_1893.html.
[12] 傅再揚, 危福泉, 林巖釗. 福建地震災害損失計算分析與思考 [J]. 災害學, 2007, 22(1) : 90 – 93.
[13] PAPADOPOULOS G A, IMAMURA F. A proposal for a new tsunami intensity scale[C] // ITS 2001 proceedings. 2001 : 569 – 577.

附錄

A 程序源碼

帶有運?結果的源碼與部分互動界?可以通過 Jupyter Notebook 打開根?件夾中的 /j-note ?件 夾內的 ipynb ?件來查看。

以下代碼均為 Python 語?(Python 3)。

import numpy as np
import matplotlib.pyplot as plt

import sklearn.linear_model
import sklearn.preprocessing

from pylab import *  
mpl.rcParams['font.sans-serif'] = ['SimSun'] # 在其他機器上可能需要修改字體名
mpl.rcParams['axes.unicode_minus'] = False
mpl.rcParams['savefig.dpi'] = 108

A.1 數據引入

# GDP、震中直線距離、沿岸海浪高度、震級
# x2, x3, x4, x1
miyako_x = np.array([5.19, 186.45, 8.5, 9.0]) # 宮古
iwaki_x = np.array([16.5905, 207.31, 6.51, 9.0]) # 磐城
yokosuka_x = np.array([12.2882, 423.28, 2.06, 9.0]) # 橫須賀
sendai_x = np.array([61.7, 176.75, 8.6, 9.0]) # 仙臺

matrix_x = np.array([miyako_x, iwaki_x, yokosuka_x, sendai_x])

# 人員傷亡、財產損失
miyako_y = np.array([611, 22,4775])
iwaki_y = np.array([466, 0.1478])
yokosuka_y = np.array([0, 0.92])
sendai_y = np.array([904, 119.9022])

matrix_y = np.array([miyako_y, iwaki_y, yokosuka_y, sendai_y])

A.2 散點圖繪制

def draw_scatter_pic(x, y, description, x_label, y_label):
    """
    繪制散點圖的(統一方式)函數
    """
    fig = plt.figure(dpi=600)
    ax1 = fig.add_subplot(111)
    ax1.set_title(description)  
    plt.xlabel(x_label)
    plt.ylabel(y_label)
    ax1.scatter(x, y, c = 'r', marker = 'o')
    # plt.legend('x1')
    plt.show()

# x_gdp = np.array([miyako_x[0], iwaki_x[0], yokosuka_x[0], sendai_x[0]])
x_gdp = matrix_x[:, 0:1]
y_person = np.array([miyako_y[0], iwaki_y[0], yokosuka_y[0], sendai_y[0]])

draw_scatter_pic(x_gdp, y_person, '散點圖:人員傷亡與 GDP', 'GDP', '人員傷亡')

x_distance = np.array([miyako_x[1], iwaki_x[1], yokosuka_x[1], sendai_x[1]])

# fig = plt.figure(dpi=600)
# ax1 = fig.add_subplot(111)
# ax1.set_title('散點圖:震中直線距離與傷亡人數')
# plt.xlabel('直線距離')
# plt.ylabel('人員傷亡')
# ax1.scatter(x_distance, y_person, c='r', marker='o')
# plt.show()

draw_scatter_pic(x_distance, y_person, '散點圖:震中直線距離與傷亡人數', '直線距離', '人員傷亡')

x_tsunami_height = np.array([miyako_x[2], iwaki_x[2], yokosuka_x[2], sendai_x[2]])

fig = plt.figure(dpi=600)
ax1 = fig.add_subplot(111)
ax1.set_title('散點圖:沿岸海浪高度與傷亡人數')
plt.xlabel('海浪高度')
plt.ylabel('人員傷亡')
ax1.scatter(x_tsunami_height, y_person, c='r', marker='o')
plt.show()

y_loss_economy = y_person = np.array([miyako_y[1], iwaki_y[1], yokosuka_y[1], sendai_y[1]])

draw_scatter_pic(x_gdp, y_loss_economy, '散點圖:GDP 與經濟損失', 'GDP', '經濟損失')

draw_scatter_pic(x_distance, y_loss_economy, '散點圖:震中直線距離與經濟損失', '直線距離', '經濟損失')

draw_scatter_pic(x_tsunami_height, y_loss_economy, '散點圖:沿岸海浪高度與經濟損失', '海浪高度', '經濟損失')

miyako_x_extended = np.array([1, miyako_x[0], miyako_x[1], miyako_x[2], miyako_x[1] * miyako_x[1], miyako_x[2] * miyako_x[2]])
iwaki_x_extended = np.array([1, iwaki_x[0], iwaki_x[1], iwaki_x[2], iwaki_x[1] * iwaki_x[1], iwaki_x[2] * iwaki_x[2]])
yokosuka_x_extended = np.array([1, yokosuka_x[0], yokosuka_x[1], yokosuka_x[2], yokosuka_x[1] * yokosuka_x[1], yokosuka_x[2] * yokosuka_x[2]])
sendai_x_extended = np.array([1, sendai_x[0], sendai_x[1], sendai_x[2], sendai_x[1] * sendai_x[1], sendai_x[2] * sendai_x[2]])

np_x = np.array([miyako_x_extended, iwaki_x_extended, yokosuka_x_extended, sendai_x_extended])
np_y = np.array([miyako_y[0], iwaki_y[0], yokosuka_y[0], sendai_y[0]])

A = np.matmul(np.linalg.inv(np.matmul(np.transpose(np_x), np_x)), np.matmul(np.transpose(np_x), np_y))

print(A)

np_y = np.array([miyako_y[1], iwaki_y[1], yokosuka_y[1], sendai_y[1]])

B = np.matmul(np.linalg.inv(np.matmul(np.transpose(np_x), np_x)), np.matmul(np.transpose(np_x), np_y))

print(B)

B 關于數據及其來源的說明

本?使?的所有數據均來源于各城市政府官?或其他學者分析報告,在參考?獻中都已經注明。然?數據中還有?些不夠準確之處:

B.1 概念理解

很多數據載體(?頁、報表等)只提供??版,故依據機器翻譯,數據理解上可能存在部分出?。
有些城市不提供 GDP 的精確數據,只提供了總收?、總?出。模型中的這部分數據根據國際通?的 GDP 計算?式計算得出。

B.2 橫須賀市

橫須賀市政府沒有說明有任何?員傷亡情況(參考?獻 10),擬合過程中暫計為 0。

B.3 仙臺市

仙臺市的?些災難結果數據(?員傷亡、財產損失)?較違背常理,在第六節針對仙臺的分析中已提及。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 回想2011年3月11日的“3·11日本大地震(東日本大地震/ひがしにほんだいしんさい)”距離今天已經快6年的時間...
    袁小肚閱讀 927評論 8 12
  • 藝術是什么?你說:是詩,是歌。 止乎此耳?我說:還有舞。 如今國內大大小小的廣場,一到夜晚,必定是被大媽大爺們占據...
    文君1閱讀 785評論 24 9
  • 我第一眼就看上了他!我要上了他!在大學開學的第一天,我的后四年的目標竟成了這個! 他穿著有點寬松的襯衫,有點泛舊的...
    渠梁雨閱讀 333評論 0 0
  • 關注了維安記不知不覺也有一年的時間了,每個毫不相干的文字卻被思想左右著變得妙趣橫生,引人深思。"飛鳥與島"在三月末...
    龍貓的鄰居閱讀 447評論 0 0
  • 前幾天進入低谷期,感覺整個人都不好了,于是到網上找各種心靈雞湯來安慰自己。于是有幸目睹了一件事情的發生。 網上有一...
    我以前是學渣閱讀 218評論 0 0