黑狐家游戏

泰坦尼克号数据集分析r语言,泰坦尼克号数据集分析python

欧气 2 0

《泰坦尼克号数据集的深度分析:基于R语言的视角》

一、引言

泰坦尼克号的沉没是历史上最著名的海难之一,关于泰坦尼克号乘客的数据集包含了众多信息,如乘客的年龄、性别、舱位等级、是否幸存等,通过对这个数据集使用R语言进行分析,我们可以揭示出许多隐藏在数据背后的故事,这些故事不仅有助于我们更好地理解这场灾难,还能展示数据分析在实际历史事件研究中的应用价值。

泰坦尼克号数据集分析r语言,泰坦尼克号数据集分析python

图片来源于网络,如有侵权联系删除

二、数据获取与初步探索

1、数据获取

- 我们可以从公开的数据仓库(如Kaggle)获取泰坦尼克号数据集,数据集以CSV格式提供,包含多个变量列和行记录,每一行代表一位乘客的相关信息。

2、数据导入

- 在R语言中,使用read.csv()函数可以轻松地将CSV格式的泰坦尼克号数据集导入到R的工作环境中。

```R

titanic_data <- read.csv("titanic.csv")

```

3、初步查看数据

- 使用head()函数查看数据集的前几行,了解数据的结构和变量名称。

```R

head(titanic_data)

```

- 使用str()函数查看每个变量的数据类型,这有助于我们发现数据中的潜在问题,如字符型变量应该是数值型变量等情况。

```R

str(titanic_data)

```

三、数据清洗

1、处理缺失值

- 在泰坦尼克号数据集中,可能存在很多缺失值。“Age”(年龄)列可能有部分乘客的年龄信息缺失,我们可以使用多种方法处理缺失值。

- 对于数值型变量“Age”,一种简单的方法是使用均值填充,首先计算年龄的均值:

```R

mean_age <- mean(titanic_data$Age, na.rm = TRUE)

```

然后将缺失值替换为均值:

```R

titanic_data$Age[is.na(titanic_data$Age)] <- mean_age

```

- 对于分类变量,如“Embarked”(登船港口),如果有缺失值,可以考虑使用出现频率最高的类别进行填充。

```R

most_common_embarked <- names(which.max(table(titanic_data$Embarked)))

titanic_data$Embarked[is.na(titanic_data$Embarked)] <- most_common_embarked

```

2、数据转换

泰坦尼克号数据集分析r语言,泰坦尼克号数据集分析python

图片来源于网络,如有侵权联系删除

- 某些变量可能需要进行转换以便于分析。“Sex”(性别)变量是字符型,我们可以将其转换为因子型变量:

```R

titanic_data$Sex <- as.factor(titanic_data$Sex)

```

- 对于“Pclass”(舱位等级)变量,也可以转换为因子型并设置合适的标签,以便更好地理解和分析不同舱位等级乘客的情况。

```R

titanic_data$Pclass <- factor(titanic_data$Pclass, labels = c("First", "Second", "Third"))

```

四、数据分析

1、生存情况与性别关系

- 我们可以使用table()函数来统计不同性别乘客的生存情况:

```R

sex_survival_table <- table(titanic_data$Sex, titanic_data$Survived)

sex_survival_table

```

- 为了更直观地展示这种关系,可以绘制柱状图,使用barplot()函数:

```R

barplot(sex_survival_table, beside = TRUE, legend.text = TRUE)

```

- 从结果和图中可以明显看出,女性乘客的幸存比例远高于男性乘客,这反映了当时在灾难发生时“妇女儿童优先”的救援原则。

2、生存情况与舱位等级关系

- 同样,构建舱位等级与生存情况的表格:

```R

pclass_survival_table <- table(titanic_data$Pclass, titanic_data$Survived)

pclass_survival_table

```

- 绘制堆积柱状图来展示这种关系:

```R

barplot(pclass_survival_table, beside = FALSE, legend.text = TRUE)

```

- 结果显示,头等舱乘客的幸存比例相对较高,三等舱乘客的幸存比例最低,这可能与头等舱乘客更容易接近救生设备和救援资源有关。

3、年龄与生存情况关系

- 为了分析年龄与生存情况的关系,我们可以先将年龄进行分组,分为儿童(0 - 12岁)、青少年(13 - 19岁)、成年人(20 - 60岁)和老年人(60岁以上)。

```R

泰坦尼克号数据集分析r语言,泰坦尼克号数据集分析python

图片来源于网络,如有侵权联系删除

titanic_data$AgeGroup <- cut(titanic_data$Age, breaks = c(0, 12, 19, 60, Inf), labels = c("Child", "Teenager", "Adult", "Elderly"))

agegroup_survival_table <- table(titanic_data$AgeGroup, titanic_data$Survived)

agegroup_survival_table

```

- 绘制马赛克图来展示这种关系:

```R

library(vcd)

mosaic(agegroup_survival_table)

```

- 从图中可以看出,儿童的幸存比例相对较高,这也符合当时的救援情况。

五、模型构建与预测

1、逻辑回归模型

- 我们可以构建一个逻辑回归模型来预测乘客的生存情况,选择性别、舱位等级和年龄等变量作为预测变量。

```R

model <- glm(Survived ~ Sex + Pclass+ Age, data = titanic_data, family = binomial)

summary(model)

```

- 从模型的摘要中,我们可以看到每个变量的系数、标准误、z值和p值等信息,性别变量的系数表明女性乘客比男性乘客更有可能幸存。

2、模型评估

- 使用混淆矩阵来评估模型的准确性,使用模型对数据集进行预测:

```R

predicted <- ifelse(predict(model, type = "response")>0.5, 1, 0)

confusion_matrix <- table(predicted, titanic_data$Survived)

confusion_matrix

```

- 计算准确率:

```R

accuracy <- sum(diag(confusion_matrix))/sum(confusion_matrix)

accuracy

```

六、结论

通过对泰坦尼克号数据集使用R语言进行全面的分析,我们深入了解了这场灾难中乘客的生存情况与各种因素(如性别、舱位等级、年龄等)之间的关系,数据清洗是数据分析的重要步骤,确保了数据的质量,通过构建逻辑回归模型并进行评估,我们可以看到这些因素对生存情况有着显著的影响,这种分析不仅有助于我们回顾历史事件,还为在类似的灾难场景下的救援策略和资源分配提供了参考,也展示了R语言在数据分析中的强大功能,从数据处理、可视化到模型构建等方面都能提供有效的解决方案。

标签: #泰坦尼克号 #Python

黑狐家游戏
  • 评论列表

留言评论