多变量(多元)多项式曲线回归线性模型分析母亲吸烟对新生婴儿体重影响可视化

简介: 多变量(多元)多项式曲线回归线性模型分析母亲吸烟对新生婴儿体重影响可视化

原文链接:http://tecdat.cn/?p=26147 


本文使用的数据集记录了 1236 名新生婴儿的体重查看文末了解数据获取方式,以及他们母亲的其他协变量。

本研究的目的是测量吸烟对新生儿体重的影响。研究人员需要通过控制其他协变量(例如母亲的体重和身高)来隔离其影响。这可以通过使用多元回归模型来完成,例如,通过考虑权重  Y_i  可以建模为

str(babis)

数据集的描述如下:

  • bwt 是因变量,新生儿体重以盎司为单位。数据集使用 999 作为缺失值。
  • gestation 是怀孕的时间,以天为单位。999 是缺失值的代码。
  • parity 第一胎使用 0,否则使用 1,缺失值使用 9。
  • age 是母亲的年龄,整数。99 是缺失值。
  • height 是母亲的身高。99 是缺失值。
  • weight 是母亲的体重,以磅为单位。999 是一个缺失值。
  • smoke 是一个分类变量,表示母亲现在是否吸烟 (1) (0)。9 是缺失值。

这个问题的研究人员想要判断以下内容:

  • 吸烟的母亲会增加早产率。
  • 吸烟者的新生儿在每个胎龄都较小。
  • 与母亲的孕前身高和体重、产次、既往妊娠结局史或婴儿性别(这最后两个协变量不可用)相比,吸烟似乎是出生体重的一个更重要的决定因素。

我们将专注于第二个判断:

从str()命令中注意到,所有的变量都被存储为整数。我将把缺失值转换为NAs,这是R中缺失值的正确表示。

bwt == 999\] <- NA
# 有多少观察结果是缺失的?
sapply(babies, couna)

每当您在 R 中使用函数时,请记住,默认情况下它可能有也可能没有 na-action。例如,该 mean() 函数没有,并且 NA 在将缺少值的参数传递给它时简单地返回:

sapply(babies, mean)

您可以通过检查 mean() 函数帮助来纠正它,通过一个参数 na.rm=TRUE,它删除了 NAs。

sapply(babies, mean, na.rm = TRUE)

另一方面, 默认情况下summary() 会删除 NAs,并输出找到的 NAs 数量,这使其成为汇总数据时的首选。

summary(babies)

我们可以看到转换因子显示了不同的摘要,因为 summary() 操作根据变量类型而变化:

parity <- factor(parity, levels )

绘制数据是您应该采取的第一个操作。我将使用 lattice 包来绘制它,因为它的最大优势在于处理多变量数据。

require(lattice)
xyplot

为了拟合多元回归模型,我们使用命令 lm()


点击标题查阅往期内容


使用R语言进行多项式回归、非线性回归模型曲线拟合


01

02

03

04


model <- lm(bwt ~ ., data = babies)

这是总结:

summary(model)

注意R的默认动作是删除信息缺失的行。不过,如何解释这些系数呢?

如果j协变量xj是实值,那么系数βj的值就是在其他协变量不变的情况下,将xij增加1个单位对Yi的平均影响。

如果j协变量xj是分类的,那么系数βj的值是对Yi从参考类别到指定水平的平均增量影响,而其他协变量保持不变。参考类别的平均值是截距(或参考类别,如果模型中有一个以上的分类协变量)。

为了验证这些假设,R有一个绘图方案。

残差中的曲率表明,需要进行一些转换。尝试取bwt的对数,以获得更好的拟合(与妊娠期相比)。

summary(model.log)

为了简单起见,我会保留线性模型。给妊娠期增加一个二次项可能有用。公式通常保存^作为交互作用的快捷方式,所以(妊娠期+烟)^2与妊娠期*烟或妊娠期+烟+妊娠期:烟相同。

改进仍然很小,但它现在确实将观察样本 261 显示为异常值。这个观察有什么问题?

babies\[261, \]

我们可以看到,而母亲的身高、年龄等都非常合理;这个婴儿异常早产。因此,将他/她剔除出模型。

拟合度有所提高,但现在870号婴儿显示为异常值......这可以继续下去,直到我们都满意为止。你还会做哪些转化?将吸烟和妊娠期交互作用会更好吗?

相关实践学习
函数计算部署PuLID for FLUX人像写真实现智能换颜效果
只需一张图片,生成程序员专属写真!本次实验在函数计算中内置PuLID for FLUX,您可以通过函数计算+Serverless应用中心一键部署Flux模型,快速体验超写实图像生成的魅力。
相关文章
|
安全 数据安全/隐私保护 Ruby
5分钟带你重置Gitlab管理员账户密码
5分钟带你重置Gitlab管理员账户密码
4659 1
|
机器学习/深度学习 资源调度 算法
【机器学习基础】多元线性回归(适合初学者的保姆级文章)
【机器学习基础】多元线性回归(适合初学者的保姆级文章)
1168 0
|
前端开发 JavaScript
React 标签组件 Tag
在现代Web开发中,标签(Tag)是常见的UI元素,用于分类、标记或表示状态。本文基于React框架,介绍如何创建和管理标签组件,涵盖基础使用、样式处理及常见问题与易错点。通过函数式组件定义标签,并使用CSS或CSS-in-JS进行样式处理。常见问题包括样式冲突、事件绑定错误和可关闭标签逻辑错误,提供解决方案如命名空间、CSS模块化和正确事件绑定方法。掌握这些内容有助于提高开发效率和代码质量。
450 27
|
机器学习/深度学习 数据采集 分布式计算
基于spark的大数据分析预测地震受灾情况的系统设计
基于spark的大数据分析预测地震受灾情况的系统设计
529 1
|
存储 运维 监控
带你从概念、指标、标准这3方面了解所谓的数据中心。
带你从概念、指标、标准这3方面了解所谓的数据中心。
1434 0
|
数据采集 机器学习/深度学习 人工智能
算法金 | 一个强大的算法模型,多项式回归!!
```markdown # 多项式回归简述 - 多项式回归是线性回归扩展,用于处理非线性关系。 - 通过添加高次项来拟合复杂模式,但可能引发过拟合。 - 示例中展示了如何用Python创建模拟数据,使用`PolynomialFeatures`生成多项式特征,训练线性回归模型并可视化结果。 - 优点:灵活捕捉非线性关系,易于理解。 - 缺点:易过拟合,计算复杂度高。 - 相关概念:正则化(岭回归、Lasso回归)及其他非线性模型(如支持向量回归)。 - 注意事项:选择合适阶数,避免过拟合,重视数据预处理和模型评估。 ```
503 0
算法金 | 一个强大的算法模型,多项式回归!!
|
运维 监控 Docker
使用Docker进行微服务架构的部署
【5月更文挑战第18天】本文探讨了如何使用Docker进行微服务架构部署,介绍了Docker的基本概念,如容器化平台和核心组件,以及它与微服务的关系。通过Docker,每个微服务可独立运行在容器中,便于构建、测试和部署。文章详细阐述了使用Docker部署微服务的步骤,包括定义服务、编写Dockerfile、构建镜像、运行容器、配置服务通信、监控和日志管理以及扩展和更新。Docker为微服务提供了可移植、可扩展的解决方案,是现代微服务架构的理想选择。
|
数据中心
校园二手交易系统 毕业设计 JAVA+Vue+SpringBoot+MySQL(二)
校园二手交易系统 毕业设计 JAVA+Vue+SpringBoot+MySQL
376 2
|
安全 Linux 网络安全
Linux/centos上如何配置管理samba服务器?
Linux/centos上如何配置管理samba服务器?
528 0
|
JSON JavaScript 前端开发
JS解决跨域问题
JS解决跨域问题
277 0