对泰坦尼克号沉没事件幸存者数据分析和预测

news/2025/3/1 8:39:28/

一、分析目的

       探究决定泰坦尼克号沉没事件中什么因素决定着船上人的生死,并对实例进行判别和预测。

二、数据介绍

       Titanic.csv数据中包含了891个样本,记录了泰坦尼克号遇难时的891个乘客的基本信息,其中包括以下信息:

PassengerId: 乘客编号

Survived: 生还情况,生还为1,死亡为0

Pclass: 舱位,分为1,2,3等,1为最高的,3为最低等

Name: 姓名

Sex: 性别

Age: 年龄

SibSp: 同船的兄弟姐妹或配偶

Parch: 同船的父母或子女

Ticket: 船票信息

Fare: 乘客票价

Cabin: 客舱编号

Embarked: 登船地点,C,S,Q分别代表三个不同的地点

数据集:
链接: https://pan.baidu.com/s/1YpT8Pjg35fe_0lrpl7wClw 提取码: 9uq2http://通过网盘分享的文件:泰坦尼克号 链接: https://pan.baidu.com/s/1YpT8Pjg35fe_0lrpl7wClw 提取码: 9uq2

三、实现与结果解读

1.数据处理

先导入数据,对其进行缺失值情况的查看:

d1<-read.csv('D:/R Course/data/Titanic.csv')d1str(d1)install.packages(c('VIM','mice'))library('VIM')library('mice')map<-matrixplot(d1)map

运行结果:

颜色代表变量值大小,浅色值小,深色值大,而红色代表缺失值,由此发现年龄缺失值较多,在进行数据分析前需要先进行数据缺失值处理,这里我们直接将缺失数据的行剔除,得到新的数据集进行接下来的分析。

d2<-na.omit(d1) #数据处理d2

接下来采用两种方法实现对上述处理过的数据集的分析和预测。

2. 多元逻辑回归分析

先对数据进行全变量逻辑回归分析:

多元逻辑回归logit.glm<-glm(factor(Survived)~factor(Pclass)+factor(Sex)+Age,family=binomial,data=d2)summary(logit.glm)

       可以看出,船舱等级(Pclass)、性别(Sex)、年龄(Age)、同船的兄弟姐妹或配偶(SibSp)四个因素对生还情况的影响较为显著。选取这四个特征进行分析绘图,观察生还情况和这四个因素的具体关系。

(1)舱位等级因素:

#船舱等级——存活图Pclass_S<-table(d2$Survived,d2$Pclass)Pclass_SPclass_S_prop<-prop.table(Pclass_S,2)Pclass_S_propggplot(data=d2,aes(x=Pclass,fill=factor(Survived)))+geom_bar(stat = 'count',position = 'dodge')+scale_x_continuous(breaks=(1:3))+labs(x='Pclass')

运行结果:

       在三个不同等级的船舱中,3等船舱的人数最多,并且可以明显看出随着船舱等级升高,乘客的生还率上升,推断船舱等级越高,救生措施可能完善,且乘客地位高,分配到的救生资源多,乘客生还的可能性越大。

(2)性别因素:

#性别——存活图Sex_S <- table(d2$Survived, d2$Sex)Sex_SSex_S_prop <- prop.table(Sex_S, 2)Sex_S_propggplot(data = d2, aes(x = Sex, fill = factor(Survived)))+geom_bar(stat='count', position='dodge')

运行结果:

       进入现代社会后,女士优先已经不再是男士们表现绅士的行为,而是已经成为了一种类似于道德标准的社会行为准则,在百年前的泰坦尼克号上是否也一样呢?从以上数据可看出,女性生还率要大于男性,推断可能是男士们把更多的生存机会给了女性,也可能是与救援时女性优先的原则有关,且查阅资料可知,女性在寒冷环境中体温下降较慢,当时多数人从船上跳入海中逃生,在海水低温条件下,女性在保存体温生存下去等待救援方面有天然优势,以上生还结果与此也应有关联。

(3)年龄因素:

#年龄——存活图Agedata <- as.numeric(unlist(d2$Age))Age_S <- table(d2$Survived, cut(Agedata, breaks = c(0, 15, 30, 45, 60, 75, 90),labels = c('kids', 'teenagers', 'prime', 'middle', 'agedness', 'senium' )))Age_SAge_S_prop <- prop.table(Age_S, 2)Age_S_propggplot(data = data.frame(d2$Survived, Agedata), aes(x = cut(Agedata, breaks = c(0, 15, 30, 45, 60, 75, 90)),fill = factor(d2.Survived)))+geom_bar(stat='count', position='dodge') +labs(x = 'Age') + scale_x_discrete(labels = c('kids', 'teenagers', 'prime', 'middle', 'agedness', 'senium'))

运行结果:

可见儿童生还率较高,与救援时妇幼优先原则应该有关,且在危难关头,父母为了保全孩子,可能会让出紧缺的救援名额,因此儿童生还率较其他年龄段高出不少。

(4)同船的兄弟姐妹或配偶数因素

#家庭人数——存活图Fsize<-data$SibSp +data$Parch#家庭人数=兄弟姐妹或配偶+父母儿女ggplot(data, aes(x = Fsize, fill = factor(Survived))) +geom_bar(stat='count', position='dodge')+   #stat='count'表示统计出现次数,position='dodge'表示柱状图分开摆放scale_x_continuous(breaks=c(1:11)) +#坐标轴刻度labs(x = '家庭人数',y='数量')

运行结果:

可见大致情况为配偶数量越少,生还率越高,但不绝对影响,推测遇难时同行人数多并不会增大生还的可能。

3. 判别分析:

(1)Fisher判别法

#Fisher判别法library(MASS)ld=lda(Survived~Sex+Pclass+SibSp+Parch);ldlp=predict(ld)Survived1=lp$classtab1=table(Survived,Survived1);tab1sum(diag(prop.table(tab1)))

对于Fisher判别法的结果图,乘客遇难的先验概率为0.616,生还的先验概率为0.384,这证明在此次事故中遇难人数是生还人数的两倍;观察判别矩阵可以看出,遇难的有472人被判对,生还的有233人被判对,判对率为0.787,概率较高。

(2)距离判别法

#距离判别法qd=qda(Survived~Sex+Pclass+SibSp+Parch);ldqp=predict(qd)Survived2=qp$classtab2=table(Survived,Survived2);tab2sum(diag(prop.table(tab2)))

对于距离判别法的结果图,乘客遇难的先验概率为0.616,生还的先验概率为0.384,观察判别矩阵可以看出,遇难的有473人被判对,生还的有231人被判对,判对率为0.79,概率较高。

因为距离判别法的判对率略大于Fisher判别法,因此对新样本预测时采用距离判别法。

(3)对新样本进行预测

#预测predict(qd,data.frame(Pclass=1,sex='female',Sibsp=0,Parch=0))

输入新样本对其是否可以生还进行判断,通过结果可以看出生还的概率为0.996,因此判别结果为“生还”。


http://www.ppmy.cn/news/1575725.html

相关文章

白话React第九章React 前沿技术与企业级应用实战

大白话React第九章React 前沿技术与企业级应用实战 1. React Server Components&#xff08;RSC&#xff09; 想象一下&#xff0c;以前做网页就像厨师在餐厅里一边炒菜一边上菜&#xff0c;客人得等着。而 React Server Components 就像是有个后厨提前把菜炒好&#xff0c;客…

达梦数据库阻塞死锁及解锁

达梦数据库阻塞死锁及解锁 达梦数据库业务背景模拟阻塞产生查询阻塞语句解决阻塞避免死锁 达梦数据库 达梦数据库管理系统是由达梦公司推出的具有完全自主知识产权的高性能数据库管理系统&#xff0c;简称DM&#xff0c;其最新版本为8.0版本&#xff08;DM8&#xff09;。达梦…

KubeSphere 企业版 v4.1.3 发布!可观测性深度优化,管理策略更灵活更安全

KubeSphere 企业版始终致力于为企业提供安全、稳定、高效的云原生全栈管理能力。在 4.1.3 版本中&#xff0c;KubeSphere 聚焦可观测性深度优化、策略管理灵活升级与安全隔离能力增强&#xff0c;推出多项新特性与优化&#xff0c;进一步释放企业云原生基础设施的潜力&#xff…

【安卓】BroadcastReceiver 动态声明为 RECEIVER_NOT_EXPORTED 后无法接收任何 Intent 的问题

一、问题起因 自 Android 14 (API 级别 34) 起&#xff0c;使用 context.registerReceiver(receiver, filter, flags) 动态注册广播接收器时&#xff0c;必须显式地声明 RECEIVER_NOT_EXPORTED 或 RECEIVER_EXPORTED 。 如果声明为 RECEIVER_EXPORTED &#xff0c;任何第三方应…

IDEA相关配置

1、IDEA基础调试方法 1.1、创建文件实现自动增加注释 /** * Created with IntelliJ IDEA. * Description: * User: ${USER} * Date: ${YEAR}-${MONTH}-${DAY} * Time: ${TIME} */接下来在 src 文件夹下新创建文件后自动会出现 如果想修改名字&#xff0c;那可以直接在上边插入…

大模型在脑梗死预测及治疗方案制定中的应用研究报告

目录 一、引言 1.1 研究背景与意义 1.2 研究目的与方法 1.3 国内外研究现状 二、脑梗死概述 2.1 脑梗死的定义与分类 2.2 脑梗死的发病机制与病理生理过程 2.3 脑梗死的临床表现与诊断方法 三、大模型技术原理与应用现状 3.1 大模型的基本概念与技术架构 3.2 大模型…

测试用例详解

一、通用测试用例八要素   1、用例编号&#xff1b;    2、测试项目&#xff1b;   3、测试标题&#xff1b; 4、重要级别&#xff1b;    5、预置条件&#xff1b;    6、测试输入&#xff1b;    7、操作步骤&#xff1b;    8、预期输出 二、具体分析通…

微服务面试题及原理

1. Springcould spring could五大组件 注册中心 负载均衡 网关 远程调用 服务熔断 Eureka&#xff1a;注册中心Ribbon&#xff1a;负载均衡Feign &#xff1a;远程调用Hystrix&#xff1a;服务熔断Zuul/Gateway&#xff1a;网关 1.1 注册中心 1.1.1 eureka eureka是spring…