R 数据分析示例:通过泰坦尼克号幸存者预测学习数据分析基础知识
1912 年的泰坦尼克号灾难是历史上最著名的海难之一,它一直留在许多人的记忆中。 但是您知道吗,我们有可能分析出泰坦尼克号上的乘客是谁,是什么因素决定了他们的生死?
在本帖中,我们将使用 在 R 数据分析示例中,如何利用泰坦尼克号幸存者数据预测哪些特征会影响存活概率在本篇文章中,我们将带您从数据加载到分析、可视化和预测建模,敬请关注!

预测泰坦尼克号幸存者的重要性
泰坦尼克号数据经常被用作学习数据分析的重要范例。该数据集包含乘客的大量信息,包括他们的性别、年龄、舱位和票价,因此是分析这些特征如何影响乘客是否幸存的绝佳场所。在这个数据分析示例中,我们将根据这些信息建立一个简单的逻辑回归模型来预测存活率。
在本课程中,您将亲身体验从数据预处理、探索性数据分析 (EDA)、可视化到预测建模等全方位的数据分析。
加载和探索数据
让我们先在 R 中导入并探索泰坦尼克号的数据。 Kaggle这是由 Airbnb 公司提供的具有代表性的训练数据集,其中记录了乘客的各种特征。
从 R 中加载数据
导入 # 数据集
install.packages("titanic")
library(titanic)
加载 # 泰坦尼克数据
data("titanic_train")
titanic <- titanic_train
探索 # 数据
str(titanic)
summary(titanic)
head(titanic)上面的代码允许您创建一个 泰坦尼克号列车 您可以将数据导入 R,查看数据结构和基本统计数据。数据存储在 幸存, Pclass, 性别, 年龄, 票价, 上船 等等。



数据结构说明
幸存:存活状态(0 = 死亡,1 = 存活)Pclass:飞行等级(1 = 一等舱,2 = 二等舱,3 = 三等舱)性别:性别(男、女)年龄年龄票价:票价上船登机港(C=瑟堡,Q=皇后镇,S=南安普顿)
通过这些数据,我们可以分析每位乘客的特征对其存活的影响。
数据预处理和可视化
泰坦尼克号的数据包含一些缺失值,其中最明显的是 年龄 该列中有很多缺失值,因此我们需要处理这些缺失值。在做了一些基本的预处理后,让我们按乘客的年龄、性别和航班等级来直观地显示存活率。
数据预处理
处理 # 缺失值(用中位数替换缺失值)
titanic$Age[is.na(titanic$Age)] <- median(titanic$Age, na.rm = TRUE)
检查 # 数据结构
summary(titanic$Age)
# 执行上述代码的结果 #
最小值1st Qu. 中位数 平均值 第 3 季度 最大值
0.42 22.00 28.00 29.36 35.00 80.00 在上面的代码中, 用中位数替换缺失值好的。在对数据进行预处理并检查了年龄的数据结构后,我们看到平均年龄为 29.36 岁,年龄中位数为 28 岁,最大年龄和最小年龄相差 80 岁。 现在,让我们按年龄、性别和航班等级对生存率进行可视化分析。
在 R 中可视化生存
安装并加载 # ggplot2
install.packages("ggplot2") # 如果已经安装,可以删除。
library(ggplot2)
# 按性别和舱位等级直观显示存活率
ggplot(titanic, aes(x=Pclass, fill=as.factor(Survived))) +
geom_bar(position="fill") +
facet_wrap(~Sex) +
labs(title="Survival by sex and cabin class", x="Cabin class", y="Percentage", fill="Survived")通过这个 R 数据分析示例,您可以直观地看到按性别和舱位划分的存活率。例如,我们可以直观地看到,乘坐头等舱的女性乘客的存活率非常高,这表明这是影响她们是否存活的最大因素之一。而对于男性乘客来说,您可以看到舱位对存活率的影响并没有那么大。
使用逻辑回归的生存预测模型
现在,让我们严肃起来,创建一个预测模型,这次我们使用 逻辑回归逻辑回归是一种常用于二元分类问题的技术,我们将用它来建立一个简单的模型,根据数据预测乘客是否会存活。
用 R 建立逻辑回归模型
建立 # 逻辑回归模型
model <- glm(Survived ~ Pclass + Sex + Age + Fare, data=titanic, family=binomial)
总结 # 模型
summary(model)
# 代码执行结果 #
调用
glm(formula = Survived ~ Pclass + Sex + Age + Fare, family = binomial、
data = titanic)
系数:
估计值 Std.
(截距) 4.6553374 0.5085945 9.153 < 2e-16 ***
Pclass -1.1529180 0.1355637 -8.505 < 2e-16 *** Sexmale -2.6072954 0.5085945 9.153 < 2e-16
性别男性 -2.6072959 0.1872514 -13.924 < 2e-16 *** 性别男性 -2.6072959 0.1872514 -13.924 < 2e-16 *** 性别男性
年龄 -0.0331244 0.0073991 -4.477 7.58e-06 *** 票价 0.0005922 0.0073991 -13.924 < 2e-16 ***
票价 0.0005922 0.0020347 0.291 0.771
---.
符号代码 0 '***' 0.001 '**' 0.01 '*' 0.05 '.'0.1 ' ' 1
(二项式族的离散参数取 1)
零偏差:1186.7(890 自由度
残差:805.5,886 自由度
AIC: 815.5
费雪评分迭代次数:5通过这段代码,您可以创建一个逻辑回归模型,通过将舱位等级、性别、年龄和票价设置为自变量来预测存活率。 摘要() 该函数显示了模型的系数,并告诉我们哪些变量对存活率有显著影响。
统计数据说明
(型号说明)
glm(formula = Survived ~ Pclass + Sex + Age + Fare, family = binomial, data = titanic)
幸存至 自变量并将 Pclass、Sex、Age 和 Fare 设置为 独立变量族 = 二项式表示模型是一个 二元分类 这意味着我们正在处理一个问题,即生存被分为 0(死)或 1(活)。
(系数系数说明)
- 截距(y-截距)
估计值4.655
含义: 该值表示所有自变量为零时的存活概率。在逻辑回归中,解释这个值可能有点复杂,但基本上它代表了在没有特定变量的情况下的存活概率。
- Pclass(飞行舱)
估计值-1.153
意思是这意味着随着等级从一等到三等,存活几率降低。由于该系数为负数,因此等级越高(一等),存活几率越高,等级越低(三等),存活几率越低。
- 性别(性别:男)
估计值-2.607
意义:表明如果性别为男性,则生存概率较低。表明男性的生存概率低于女性,这与泰坦尼克号灾难中 "女性优先 "的救援原则是一致的。
- 年龄
估计值-0.033
意思是:存活概率随着年龄的增长而略有下降。年龄系数为负数,意味着存活概率随着年龄的增长而略有下降。
- 票价
估计值0.000592
意思是:票价越高,生存概率越大,但数值很小,在统计上并不显著。事实上,P 值(Pr(>|z|))为 0.771,表明票价对存活率的影响很小。
- p 值(Pr(>|z|)
p 值表示每个变量的统计显著性。 如果 p 值小于 0.05,则表示该变量对存活率的影响具有统计显著性。 在我们的结果中,有三个变量的影响非常显著,其 p 值如下
Pclass: < 2e-16 (高度显著) | Sex: < 2e-16 (高度显著) | Age: 7.58e-06 (高度显著)
而 Fare 的 p 值为 0.771,在统计学上对存活率没有显著影响。
- 零流失和剩余流失
无效偏差: 1186.7
仅预测平均值而不应用模型时的误差。
残差: 805.5
比较这两个值可以看出模型的效果如何。由于误差减小,我们可以说模型的效果显著。
-AIC(根据档案信息):815.5
AIC 表示模型的拟合度,数值越低,模型越好。AIC 在比较不同模型时非常有用。
(综述)
船级、性别和年龄对生还概率都有非常显著的影响,其中船级和性别是影响最大的因素。总体而言,该模型可以很好地预测泰坦尼克号幸存者的情况。
评估预测结果
建立模型后,我们需要对其进行评估。为了评估模型在实践中预测存活率的准确性,我们生成了预测值,并通过混淆矩阵对其进行评估。
生成 # 预测值
pred <- predict(model, type="response")
# 如果为 0.5 或更高,则考虑存活率
pred_class 0.5, 1, 0)
# 生成与真实值比较的混淆矩阵
table(pred_class, titanic$Survived)
# 代码执行结果 #
pred_class 0 1
0 469 98
1 80 244这 数据分析示例混淆矩阵将预测值与实际值进行比较,如果预测值大于或等于 0.5,则将其归类为 "活"(1),否则归类为 "死"(0)。通过混淆矩阵,我们可以评估模型的准确性和预测性能。该模型相当准确(80%),能正确预测大多数乘客的生存状态。它的精确度很高(75.31 TP3T),这意味着当它预测某人将存活时,通常是正确的。 然而,混淆矩阵中的 重现性(此外,还存在一些误报率(14.6%),即错误地预测乘客还活着,但实际上却没有。




数据分析中的常见错误及纠正方法

分析数据时可能会犯很多错误。让我们在这个数据分析示例中看看你可能犯的主要错误以及如何纠正它们。
- 处理缺失值的错误在处理缺失值时,应考虑使用中位值、平均值或建模技术来替代缺失值。
- 缺乏数据扩展:在逻辑回归模型中,数据的大尺度差异可能会导致模型性能不佳。 特别是,诸如体重等变量可能需要缩放处理。
- 过度拟合问题如果创建的模型与训练数据的拟合度太高,那么它在新数据上的表现可能会很差。这就是为什么使用交叉验证来评估模型性能非常重要的原因。
常见问题
问题 1: 在哪里可以下载泰坦尼克号数据?
答:泰坦尼克号数据集可在 Kaggle 上下载。它包含各种数据集,对建模练习非常有用。
问题 2:逻辑回归模型如何工作?
答:逻辑回归用于预测二元变量而非连续变量。它输出一个概率值,可用于预测特定事件发生的可能性。
问题 3: 如何处理数据预处理中的缺失值?
答:如何处理缺失值取决于您的情况。您可以用中位数或平均值代替它们,或者使用包含缺失值的建模技术。
组织起来
在这篇文章中,我们以泰坦尼克号幸存者数据为数据分析示例,建立了一个生存预测模型。 我们对数据进行了预处理,从各种可视化效果中获得了洞察力,并使用逻辑回归模型进行了预测分析。泰坦尼克号数据是数据分析从基础到实际应用的绝佳学习资源。
利用这些示例来培养你的数据分析技能,并用不同的数据集来挑战自己!






