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

本文主要是介绍R语言多变量(多元)多项式曲线回归线性模型分析母亲吸烟对新生婴儿体重影响可视化,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

最近我们被客户要求撰写关于多项式曲线回归的研究报告,包括一些图形和统计输出。本文使用的数据集记录了 1236 名新生婴儿的体重,以及他们母亲的其他协变量。

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

相关视频:非线性模型原理与R语言多项式回归、局部平滑样条、 广义相加模型GAM分析

非线性模型原理与R语言多项式回归、局部平滑样条、 广义相加模型GAM分析

,时长05:41


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

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号婴儿显示为异常值......这可以继续下去,直到我们都满意为止。你还会做哪些转化?将吸烟和妊娠期交互作用会更好吗?


这篇关于R语言多变量(多元)多项式曲线回归线性模型分析母亲吸烟对新生婴儿体重影响可视化的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/228110

相关文章

C语言中位操作的实际应用举例

《C语言中位操作的实际应用举例》:本文主要介绍C语言中位操作的实际应用,总结了位操作的使用场景,并指出了需要注意的问题,如可读性、平台依赖性和溢出风险,文中通过代码介绍的非常详细,需要的朋友可以参... 目录1. 嵌入式系统与硬件寄存器操作2. 网络协议解析3. 图像处理与颜色编码4. 高效处理布尔标志集合

Go语言开发实现查询IP信息的MCP服务器

《Go语言开发实现查询IP信息的MCP服务器》随着MCP的快速普及和广泛应用,MCP服务器也层出不穷,本文将详细介绍如何在Go语言中使用go-mcp库来开发一个查询IP信息的MCP... 目录前言mcp-ip-geo 服务器目录结构说明查询 IP 信息功能实现工具实现工具管理查询单个 IP 信息工具的实现服

C 语言中enum枚举的定义和使用小结

《C语言中enum枚举的定义和使用小结》在C语言里,enum(枚举)是一种用户自定义的数据类型,它能够让你创建一组具名的整数常量,下面我会从定义、使用、特性等方面详细介绍enum,感兴趣的朋友一起看... 目录1、引言2、基本定义3、定义枚举变量4、自定义枚举常量的值5、枚举与switch语句结合使用6、枚

Java程序进程起来了但是不打印日志的原因分析

《Java程序进程起来了但是不打印日志的原因分析》:本文主要介绍Java程序进程起来了但是不打印日志的原因分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java程序进程起来了但是不打印日志的原因1、日志配置问题2、日志文件权限问题3、日志文件路径问题4、程序

Java字符串操作技巧之语法、示例与应用场景分析

《Java字符串操作技巧之语法、示例与应用场景分析》在Java算法题和日常开发中,字符串处理是必备的核心技能,本文全面梳理Java中字符串的常用操作语法,结合代码示例、应用场景和避坑指南,可快速掌握字... 目录引言1. 基础操作1.1 创建字符串1.2 获取长度1.3 访问字符2. 字符串处理2.1 子字

Python 迭代器和生成器概念及场景分析

《Python迭代器和生成器概念及场景分析》yield是Python中实现惰性计算和协程的核心工具,结合send()、throw()、close()等方法,能够构建高效、灵活的数据流和控制流模型,这... 目录迭代器的介绍自定义迭代器省略的迭代器生产器的介绍yield的普通用法yield的高级用法yidle

Go 语言中的select语句详解及工作原理

《Go语言中的select语句详解及工作原理》在Go语言中,select语句是用于处理多个通道(channel)操作的一种控制结构,它类似于switch语句,本文给大家介绍Go语言中的select语... 目录Go 语言中的 select 是做什么的基本功能语法工作原理示例示例 1:监听多个通道示例 2:带

C++ Sort函数使用场景分析

《C++Sort函数使用场景分析》sort函数是algorithm库下的一个函数,sort函数是不稳定的,即大小相同的元素在排序后相对顺序可能发生改变,如果某些场景需要保持相同元素间的相对顺序,可使... 目录C++ Sort函数详解一、sort函数调用的两种方式二、sort函数使用场景三、sort函数排序

C语言函数递归实际应用举例详解

《C语言函数递归实际应用举例详解》程序调用自身的编程技巧称为递归,递归做为一种算法在程序设计语言中广泛应用,:本文主要介绍C语言函数递归实际应用举例的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录前言一、递归的概念与思想二、递归的限制条件 三、递归的实际应用举例(一)求 n 的阶乘(二)顺序打印

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA