泰坦尼克號數據分析

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

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

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

數據源的獲取可後臺回覆:泰坦尼克

一、明確目的

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

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

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

圖片

二、數據處理

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

1、age缺失值處理

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

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

2、fare缺失值處理

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


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

3、embarked缺失值處理

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

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

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


4、cabin缺失值處理

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

三、數據分析

1、艙位維度

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


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

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

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


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

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

2、乘客維度

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

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


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

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



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


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

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

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


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

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

  • 少年(0~15歲)

  • 青年(15~40歲)

  • 中年(41~65歲)

  • 老年(66歲以上)

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


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

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

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

圖片
再對age分組和survived進行透視
圖片
可以看到生還的人中青年、少年的佔比最多,老年佔比最少。
圖片
對各年齡段分組的死亡、生存情況做百分比堆積柱形圖,得到結果,少年獲救的人數比例最高。
圖片





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

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

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



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

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

3、船票維度

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

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

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

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

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

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


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

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

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%)


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