從鐵達尼號看數據分析-數據分析翻轉教室

蔡承睿
UCLITE | 柏克萊時報
7 min readFeb 14, 2020

授課老師:Ming Chen

Ming Chen 畢業於Berkeley資料科學相關科系,目前在一間數據分析公司工作,主要分析生物、財政、商業相關數據。

這堂數據分析課跟台灣主流的中學、大學數理課程非常的不一樣,沒有密密麻麻的公式推導,課堂中大部分的時間留給學員們思考和討論。講師Ming Chen並不直接給出答案,而是透過提問與反思的方式讓學生們自己探索。要向只有一點點機率統計基礎的高中生講授數據分析絕非易事,Ming Chen用淺顯易懂的案例教學搭配重點式的提問與引導,讓這群優秀的高中生馬上掌握核心概念,對數據分析有了大致的認識。

序章:

課程的一開始,Ming Chen 就帶來了福利:只要猜的數字最靠近她包的紅包金額,就能帶走她的紅包。在猜之前,每一組有兩次提問機會,而Ming Chen 會選擇性地回答一些提問,釋出適當的訊息量。每一小組組員無不絞盡腦汁想從她那裡得到更多線索。包括是否為質數、是否為偶數、是否為三的倍數、大於還是小於五十等等,而各個小組根據這些訊息給出大略的估計值。Ming Chen稍後向我們解釋到,這個活動的目的是要讓大家模擬一個簡單的資料分析流程:根據給定條件,找到最有可能的答案。數據分析師的工作正是把這樣的步驟撰寫成電腦可以理解、執行的語言。

案例討論:鐵達尼號不同人群生存機率分析

數據描述:

鐵達尼號上總人數:2224人,倖存總人數:710人,倖存者中,男性338人,女士:316人,兒童56人。船上共分3個級別的艙位,其中頭等艙乘客325名,二等艙乘客285名,三等艙乘客706名。另外還有908名船員,其中23名為女性船員。

總共從中提取1309名乘客的數據,其中328名乘客的數據作為訓練集(擬合出各項變量的係數以生成model)、891名乘客的數據作為測試集(評估模型預測準確率)

數據集中包含以下變量:

PassengerId: 乘客的ID

Survived:獲救。 1代表倖存,0代表遇難

Pclass:船票等級:可以理解為1等艙​​,2等艙,3等艙 。1代表Upper,2代表Middle,3代表Lower

Name:姓名

Sex:性別

Age:年齡

SibSp:兄弟姐妹及配偶的個數

Parch:父母或子女的個數

Ticket:船票號

Fare:船票價格

Cabin:艙位

Embarked:登船地點。C = Cherbourg(瑟堡), Q = Queenstown(queenstown), S = Southampton(南安普敦)

資料處理:

進行數據分析時,資料處理可以說是最繁重的工作了,原始資料可能會有缺失、錯誤或者標準不一致的情況,在處理過程中,得一一進行調整。Ming Chen藉由問題討論的方式,介紹了一些常見的資料處理內容。

  1. 哪些變量可以不被預測放在模型裡呢?

這相當於在問哪些變量在模型中是不顯著的,或者因為變量間的共線性問題而應該被剔除。高中生對於這個問題的理解會是甚麼呢?這群敏銳的高中生馬上指出乘客ID號碼跟生存機率應該不會有太大的關係。針對登船地點學生們也有不同意見,有人覺得不會有太大關聯,卻也有人認為不同登船地點對應到不同的上船時間以及船上的住宿位置分配等問題,對於逃生路線是會產生影響的

2. 如果資料產生缺失應該怎麼處理?

處理missing value是一個比較技術的環節,同學們提出直接剔除的作法。針對這一點Ming Chen 認為要視樣本量而定,如果樣本量不夠大的話直接剔除很可能會降低統計效力。她接著解釋到,在實務上數據缺失的部分常常補上該項目的平均值。有意思的是,在討論過程中,雖然和這個題目沒什麼關聯,卻有同學提到了可以設定一個可接受的誤差範圍,將我們的錯誤率與該誤差界線進行比較,這個概念非常類似統計上顯著水平和p值的觀念。討論的過程讓學生們自主的去發現許多解決事情、分析數據的方法。

3. 有哪些變量可以用數字表示?

這個概念其實就是統計上的dummy variable,只要是可以歸成不同類別的資料(如不同區間、不同性別等等)都可以使用dummy variable。

實際操作:

Ming Chen非常貼心的將分析數據的程式碼分享給大家,執行該程式碼就能直接檢視分析結果。使用的程式語言是python,並匯入(import)數據分析常用的pandas、numpy模組。

鐵達尼號乘客資料數據表的前五列

上圖是經過處理後的資料矩陣,各項資料都已經轉換為可以運算和分析的數據。

不同年齡層的生存率

透過數據分層的方式,可以看到各年齡層生存率的結果,64歲以上的老人生存率明顯低於其他年齡層。

不同性別的生存率

女性生存率高於男性,可能與當時的逃生優先順序有關

擁有不同家人數目的乘客的生存率

家庭成員數目與生存率並非簡單的直線關係,其中有多種因素交向作用,比如家庭成員間的互助或拖累。

不同上船地點乘客的生存率

模型介紹:羅吉斯回歸(logistic regression)

羅吉斯回歸是一種常見的用於分類的回歸形式,因變量Y是離散的,而在最一般的情況下,Y通常只有兩種可能性,分別記做Y=1和Y=0。回歸模型的輸出值界在0到1之間,可以理解成在給定自變量下因變量發生的機率,也因此在生物統計上,羅吉斯回歸可以被用來估計相對風險和勝算比。由於直線形式的分割太過絕對,所以羅吉斯回歸中包含了一個對數函數,使得模型更有彈性。

上圖為給定自變量(X=x)情況下,Y=1的機率,並使用乙狀函數表達該機率。因為Y通常只有0和1兩種可能,所以一般情況下,P(Y=0|X)=1-P(Y=1|X)成立,將P(Y=1|X)除以P(Y=0|X)再取對數,可以得到以下形式。

這就是羅吉斯回歸大致的樣貌,一般來說,當P(Y=1|X)>0.5時,我們會把該點的Y值判定成1,反之則判定成0。

提問與反思:

數據科學是AI時代的顯學。隨著運算能力和資料量的不斷上升,數據分析越顯重要,掌握數據的經濟體或大公司更能預測趨勢以因應對策。提問環節中學員們問了Ming Chen很多關於相關科系與後續發展的問題:

Ming Chen強調數據分析是建構在統計學和演算法的基礎上,所以對於想走數據科學方向的學員們來說,想要有更扎實的功底的話,大學階段還是先就讀數理統計、資訊工程等科系比較好。

生物統計和醫學資訊也是最近很熱門的方向,Ming Chen在課程中就有提到一篇刊載在Nature上的論文應用機器學習方法預測DNA片段上的鹼基對訊息。有同學問到如果要往該領域發展的話是不是還得去修一些生物相關科系:

Ming Chen目前的工作就涉及一些生物實驗室的數據分析,她認為只要具備一點基本生物常識即可,生物實驗室在請她幫忙分析數據時會先給她一份完整的數據說明,這樣的分工模式讓資料科學能有效的輔助生物學研究發展。

這堂數據分析課除了學到很多硬知識外,頻繁的討論也讓大家見識到東西方教育很大的不同。聽一些高中之後就來美國讀書的朋友們說,這裡的教育非常重視討論,就連標準答案非常明確的數學課也會用小組討論的方式去思考應該使用哪種解法比較好,這樣的學習模式或許在一開始效率不如台灣填鴨式的教學,但在日後的學習上學生們更能夠主動地去發現問題、思考問題背後的原因、跳出既定框架進行創意發想。長遠來看,更能夠帶動學術研究的動力。

--

--