泰坦尼克號數據分析案例實戰

這是一個很經典的案例,很多博主都寫過,對,就是它:泰坦尼克號生存率的分析,它是kaggle上的一道題,通過船上乘客的信息分析和建模,預測哪些乘客得以生還。

我們就非常粗暴地拿這個數據集做一個簡單的分析好了。

使用工具:Excel
(對,就是這麼簡單粗暴)

一、明確目的

1912年泰坦尼克號撞上冰山沉沒,船上2224名乘客和機組人員中有1502人遇難,倖存下來的人是出於運氣還是存在一定的規律?這是我們比較關心的,所以就要提出問題:

那些人士生還的可能性大?

其次瞭解數據,數據集總共有以下的字段,其中name、sex、cabin、embarked、ticket是字符串類型,pclass和survived雖然是數值型,但其含義是標籤,我們分別從艙位、乘客、船票和地域的維度出發來分析。

 

二、數據處理

通過查看,發現Age、fare、embarked、cabin字段都是有缺失的,下面我們一個一個來看。

1、age缺失值處理

篩選age一列爲空的有263條數據,缺失率爲20%,可以全部填充爲年齡的均值或衆數,也可以進一步地分析,發現年齡缺失的數據裏三等艙的最多,佔總缺失值的79%,而三等艙裏的未生還的男性佔比最多,因此也可以用三等艙年齡的平均值來填充。

 

這裏爲了保持數據的真實性,就不做填充處理了。

2、fare缺失值處理

篩選發現fare(票價)只缺失了一個值,我們把它找出來,發現可以用同類型的均值填充掉。

 


因此我們篩選三等艙、年齡大於60歲的,登船港口爲S的男性的均值票價7來填充這個缺失值。

 

3、embarked缺失值處理

embarked登船港口字段也有2個缺失值,篩選出來看下。

 


進一步觀察到,這兩個旅客都是單獨出行,沒有家人(從sibsp和parch列均爲0得知),延續對fare缺失值處理的思路,尋找同類型的進行填充。對第一個旅客,篩選出頭等艙的年齡在35~40歲的女性中,港口最多的值填充進去,結果是S。

 


同樣的方法,對第二個旅客,篩選頭等艙年齡在60~65歲的女性中,登陸港口最多的值,結果也爲S。

 

4、cabin缺失值處理

對於cabin(客艙)字段缺失值達到了77%,缺失太多了,就不做填充處理了,直接保留或刪除,這裏先保留着吧。

 

三、數據分析

1、艙位維度

pclass
對艙位和生還情況分析,插入數據透視表

 


生還的人裏,頭等艙的佔比達到了40%。

 

對每個艙位的生存死亡情況做百分比堆積柱形圖,可以看到,頭等艙生還的人數佔比最多,達到61.92%,三等艙的生還人數佔比最少,僅25.33%,所以還是那句老話,錢雖然不是萬能的,但沒錢@#%&^…

 

carbin
對carbin(客艙號)做透視,可以看到有295個唯一值,基本上是一個客艙只住一個人。

 


但是也發現了有1個客艙對應2個人以上的情況,進一步地把艙位拉進去對比一下,發現三等艙的數值很少,說明carbin缺失值大部分是三等艙缺失的,意思是三等艙的人沒有客艙?大通鋪?這個有待進一步查證。

 

另外發現三等艙有客艙的都是E/F/G開頭的客艙號,而頭等艙A/B/C就較多,猜測客艙號是隨着艙位的降低按字母升序排列的。

 

2、乘客維度

name
name姓名列沒有什麼有價值的信息,不過可以進一步思考的是,姓名裏其實是對應了頭銜的,比如Mr是已婚男士,Mrs是已婚女士等,但是這裏就先刪除了。

sex
對性別和生還情況進行分析

 


生還的人中女性佔比67.8%,遠高於男性的32.2%。

 


女性生還人數佔女性總數的72.75%,遠遠大於男性生還人數佔男性總數的19.10%。

 


 

性別&艙位
可以順便看一下艙位和性別的關係,因爲男性人口基數大,所以不管是哪個艙位,男性人數都是多於女性的,同理,各個艙位都是女性獲救的人數最多。

 


但是呢,頭等艙女性的生還比例爲97%,遠高於其他兩個艙位,且三等艙女性的生還比例只有49%。

 

age
對年齡和生還情況進行分析,這裏因爲年齡有缺失,僅對有數值的進行分析。

首先對年齡做一個簡單的描述統計,用【數據分析】裏的【描述統計】功能,可以看到年齡最大值爲80歲,最小值爲0.17歲,平均值爲29.88歲,年齡中位數爲28歲,衆數爲24歲。

 


進一步地,可以觀察一下年齡的分佈情況,做直方圖,5歲爲一組,可以看到,乘客的年齡主要集中在15-30歲,其中20-25歲的年輕人最多。

 

瞭解了年齡大致的分佈後,就要來看特定人羣的生還情況了,我們將年齡分爲:

  • 少年(0~15歲)
  • 青年(15~40歲)
  • 中年(41~65歲)
  • 老年(66歲以上)

先做一個分組的表,用vlookup的模糊匹配實現分組

 


在age旁新建一列age分組的輔助列,輸入公式

 

=VLOOKUP(E2,Sheet2!$B$18:$C$21,2,1)

Sheet2!18:21這個區域就是上圖預先設置好的分組區域。

 


再對age分組和survived進行透視

 


可以看到生還的人中青年、少年的佔比最多,老年佔比最少。

 


對各年齡段分組的死亡、生存情況做百分比堆積柱形圖,得到結果,少年獲救的人數比例最高。
 

 

sibsp
對sibsp字段(兄弟姐妹妹/配偶的個數)分析,透視後可以看到標籤爲0,也就是說沒有親戚的人是船上乘客的大多數。

 


同樣因爲基數大的緣故,生存下來的人中,親戚數爲0的佔比最多達到了61.8%。

 


對各標籤做百分比堆積柱形圖,這纔是比較有意義的結果,可以看到,有1個親戚數的人羣獲救的比例最高。

 

parch
對parch字段分析(父母/小孩個數),同樣可以看到,沒有父母/小孩的人數是船上總人數的76%,同樣,這部分人羣獲救的數量也最多。

 


 


做百分比堆積柱形圖,可以看到有3個父母/小孩的人羣獲救的比例最大,達到了62.5%。

 

3、船票維度

fare
對Fare(票價)字段分析,首先比較關注的是票價和艙位是否存在相關性,正常的邏輯是艙位越高,票價越高,這裏算出pclass和fare的相關係數是-0.56,還是比較相關。

 


還記得上面我們用vlookup的模糊匹配分組,還可以直接用數據透視表分組。透視以後組合,選擇50步長一組,可以再對票價和艙位透視看看,看到100以上的高票價全都是頭等艙,二等艙和三等艙的票價大部分爲0~50。

 


 

性別&票價
女性的票價均價要高於男性

 

性別&艙位&票價
頭等艙的均價遠高於其他兩個艙,每個艙女性的均價都要高於男性,其中票價的最大值512出自頭等艙的女性。另外一個比較有意思的現象是,票價爲0的居然都是男性。

 

都寫到這兒了,可以再引申出一個問題,票價到底和什麼有關?性別?登陸港口?艙位?客艙?有興趣的小夥伴可以自己再深入探討一下,這裏我們就不探索下去了。

接下來,50一組看一下fare的分佈情況,可以看到票價爲0~50的佔了船上乘客的82%。

 


同時存活數量最多的還是0~50票價的人羣,因爲它的基數本身就很大。

 

從各票價分組的角度來看,做百分比堆積柱形圖,可以看到,500-550票價的人羣存活比例爲100%,而0-50票價的存活比例只有32%。

 

ticket
ticket字段是船票信息/代號,沒有特別大的分析意義,這裏也就直接刪除了。

4、地域維度

embarked
對embarked(登船港口)字段分析,透視後發現S港口登船的人數最多,從堆積柱形圖中可以看到,C扣登船的生成比例最高。

 


 

四、生還率同什麼有關

生還率同什麼相關?這個是我們最關心的,這個問題其實就是survived字段同其他字段的相關係數。

sex列是字符型數據,要映射成數值,我們添加一列命名爲性別的輔助列,male爲1,female爲0.

 


再添加一列f_num字段,是sibsp和parch的和,意思是家庭成員數。

 


embarked字段分解爲3個輔助列,港口-S,港口-C,港口-Q,同時輸入公式:

 

=IF(N2="S",1,0)

如果embarked這個字段是S,那麼港口-S列爲1,港口-C、港口-Q爲0,以此類推。

 


同理對艙位pclass也做同樣的處理

 


用【數據分析】裏的【相關係數】功能,可以看到每個字段的相關係數

 


降序排列一下,就可以看出生還率同什麼相關了

 


所以回到我們最初的問題:

 

哪些人生還的可能性大?

總結一下:

  • 雖然三等艙的人數最多(54%),但頭等艙生還的比例最高(62%)
  • 雖然男性的人數(64%)多於女性,但女性的生還率(72%)遠高於男性(19%)
  • 頭等艙女性的生還比例(97%)遠高於三等艙女性的生還比例(49%)
  • 15-40歲的青年人數最多(53%),生還率最高的是0~15歲的少年(56%)
  • 親戚的個數爲0的人數最多(68%),爲1的生還率最高(51%)
  • 父母/孩子個數爲0的人數最多(76%),爲3的生還率最高(63%)
  • 票價在0-50範圍內的人數最多(82%),但500~550範圍內票價的人生還率爲100%
  • S港口登船的人數最多(70%),但是C港口生還率最高(56%)

猜你喜歡:
數據分析實戰:母嬰商品分析

《吊打分析師》實戰—我要租個好房

簡單的Excel數據分析案例

爲什麼要學統計學:赤裸裸的統計學

成爲數據分析師的第三年,我寫了10W字

@ 作者:可樂
@ 公衆號/知乎專欄/頭條/簡書:可樂的數據分析之路
@ 個人微信:data_cola

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章