R语言使用surveyCV包对NHANES数据(复杂调查加权数据)进行10折交叉验证

美国国家健康与营养调查( NHANES, National Health and Nutrition Examination Survey)是一项基于人群的横断面调查,旨在收集有关美国家庭人口健康和营养的信息。
地址为:https://wwwn.cdc.gov/nchs/nhanes/Default.aspx

在这里插入图片描述
既往咱们通过多篇文章对复杂加权数据的线性模型、逻辑回归模型、生存分析模型进行了分析。我们在建立数据模型后通常希望在外部数据验证模型的检验能力。然而当没有外部数据可以验证的时候,交叉验证也不失为一种方法。交叉验验证(交叉验证,CV)则是一种评估模型泛化能力的方法,广泛应用中于数证据采挖掘和机器学习领域,在交叉验证通常将数据集分为两部分,一部分为训练集,用于建立预测模型;另一部分为测试集,用于测试该模型的泛化能力。
咱们既往文章《基于R语言进行K折交叉验证》介绍了普通数据交叉验证,今天咱们来介绍一下使用surveyCV包进行复杂加权数据交叉验证,
该包通过在创建 CV 折叠以及计算测试集损失估计时考虑分层、聚类、FPC 的调查权重MSE(均方误差),对复杂的调查数据实现交叉验证 (CV)。模型,或逻辑模型的二元交叉熵)。
咱们先导入R包和数据

library(surveyCV)
library(survey)
library(ISLR)
data("api")

在这里插入图片描述
这次使用survey自带的加州学生的数据,包含有学生的成绩和其他数据。这个数据集带有6个数据,咱们使用的是apistrat数据
假设咱们想了解api00和ell线性关系,nfolds代表你想用多少折,其他都是一些调查函数的参数。
咱们先写出它的函数,这是一个默认线性函数

a<-"api00~ell"
cv.svy(apistrat, a,
       nfolds = 10, strataID = "stype", weightsID = "pw", fpcID = "fpc")

在这里插入图片描述
这样结果就出来了,这里的mean相当于MSE的平均值,表示误差的平均值,它可以有助于改善我们的模型,它和单用svymean函数这种算法是完全不一样的
如果咱们想了解多个模型

cv.svy(apistrat, c("api00~ell",
                   "api00~ell+meals",
                   "api00~ell+meals+mobility"),
       nfolds = 10, strataID = "stype", weightsID = "pw", fpcID = "fpc") 

在这里插入图片描述
这样就轻松出结果了,非常方便好用。我们可以看到添加协变量以后,MSE出现明显变化,变小了,表明添加协变量有助于改善MSE。
如果我们想指定集群而不是分层,更改一下clusterID这个变量,也非常方便

cv.svy(apiclus1, c("api00~ell",
                   "api00~ell+meals",
                   "api00~ell+meals+mobility"),
       nfolds = 10, clusterID = "dnum", weightsID = "pw", fpcID = "fpc")

在这里插入图片描述
如果咱们是有调查函数的,咱们需要用到cv.svydesign这个函数,指定一下就可以了

dstrat <- svydesign(id = ~1, strata = ~stype, weights = ~pw, data = apistrat, fpc = ~fpc)
cv.svydesign(formulae = c("api00~ell",
                          "api00~ell+meals",
                          "api00~ell+meals+mobility"),
             design_object = dstrat, nfolds = 10)

在这里插入图片描述
如果是已经生成了svyglm模型的,咱们需要使用cv.svyglm这个函数指定

glmstrat <- svyglm(api00 ~ ell+meals+mobility, design = dstrat)
cv.svyglm(glmstrat, nfolds = 10)

在这里插入图片描述
如果咱们是逻辑回归而不是线性回归,先生成一个调查函数

library(splines)
NSFG.svydes <- svydesign(id = ~SECU, strata = ~strata, nest = TRUE,
                         weights = ~wgt, data = NSFG_data)

生成结果

NSFG.svyglm.logistic <- svyglm(LBW ~ ns(age, df = 3), design = NSFG.svydes,
                               family = quasibinomial())
cv.svyglm(glm_object = NSFG.svyglm.logistic, nfolds = 4)

在这里插入图片描述
在这种情况下,平均列显示二进制交叉熵损失的平均值。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/113962.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

上海物理、化学高考命题趋势及2024年上海物理、化学高考备考建议

在上海高考时&#xff0c;物理、化学虽然不像语文、英语和数学那样分数高&#xff0c;但是仍然很重要。那么&#xff0c;从这几年的上海物理、化学的高考题目来看&#xff0c;我们互发现什么命题趋势和考题特点呢&#xff1f;如何备考接下来的2024年高考物理和化学呢&#xff1…

vue3视频大小适配浏览器窗口大小

目标&#xff1a;按浏览器窗口的大小&#xff0c;平铺视频&#xff0c;来适配屏幕的大小。 考虑使用 DPlayer.js、video.js、vue-video-player等视频插件&#xff0c;但报了各种各样的错&#xff1b;试过使用 js 对视频进行同比例放大&#xff0c;再判断其与窗口的大小取最小值…

什么是IPA,和RPA有啥区别和联系?

∵ IPA中包含了RPA的“PA”&#xff0c;AI的“I” ∴IPARPAAI&#xff0c;等式成立&#xff01; AI&#xff1a;或人工智能&#xff0c;是一种复杂的计算机技术&#xff0c;旨在模仿人类智能行为和决策的能力。它涵盖了多种技术和方法&#xff0c;包括&#xff1a;机器学习&am…

【基带开发】AD9361 复乘 com_cmpy_a12_b12

IP核 tb_com module tb_com();reg ad9361_l_clk,rst; initial beginad9361_l_clk0;forever #4.545 ad9361_l_clk~ad9361_l_clk; end initial beginrst1;#9.09 rst0; end wire [63 : 0] m_fll_phase_shift_dout; // fll 输出 dout // FLL Phase Shift com_cmpy_a12_b12 FLL_P…

二叉树问题——前/中/后/层遍历问题(递归与栈)

摘要 博文主要介绍二叉树的前/中/后/层遍历(递归与栈)方法 一、前/中/后/层遍历问题 144. 二叉树的前序遍历 145. 二叉树的后序遍历 94. 二叉树的中序遍历 102. 二叉树的层序遍历 103. 二叉树的锯齿形层序遍历 二、二叉树遍历递归解析 // 前序遍历递归LC144_二叉树的前…

springboot+vue基于hive旅游数据的分析与应用【内含源码+文档+部署教程】

博主介绍&#xff1a;✌全网粉丝10W,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业毕业设计项目实战6年之久&#xff0c;选择我们就是选择放心、选择安心毕业✌ &#x1f345;由于篇幅限制&#xff0c;想要获取完整文章或者源码&#xff0c;或者代做&am…

LeetCode1518 换水问题

题目描述 超市正在促销&#xff0c;你可以用 numExchange 个空水瓶从超市兑换一瓶水。最开始&#xff0c;你一共购入了 numBottles 瓶水。 如果喝掉了水瓶中的水&#xff0c;那么水瓶就会变成空的。 给你两个整数 numBottles 和 numExchange &#xff0c;返回你 最多 可以喝…

【工具】【IDE】Qt Creator社区版

Qt Creator社区版下载地址&#xff1a;https://download.qt.io/archive/qt/ 参考&#xff1a;https://cloud.tencent.com/developer/article/2084698?areaSource102001.8&traceIduMchNghqp8gWPdFHvSOGg MAC安装并配置Qt&#xff08;超级简单版&#xff09; 1.安装brew&…

使用vue3+vite+elctron构建小项目介绍Electron进程间通信

进程间通信 (IPC) 是在 Electron 中构建功能丰富的桌面应用程序的关键部分之一。 由于主进程和渲染器进程在 Electron 的进程模型具有不同的职责&#xff0c;因此 IPC 是执行许多常见任务的唯一方法&#xff0c;例如从 UI 调用原生 API 或从原生菜单触发 Web 内容的更改。 在 …

分享66个工作总结PPT,总有一款适合您

分享66个工作总结PPT&#xff0c;总有一款适合您 66个工作总结PPT下载链接&#xff1a;https://pan.baidu.com/s/1g8AWl42-tLdFYXEHZUYyGQ?pwd8888 提取码&#xff1a;8888 Python采集代码下载链接&#xff1a;采集代码.zip - 蓝奏云 立冬PPTPPT模板 西藏信仰PPT模板 古镇丽…

从零开始的目标检测和关键点检测(三):训练一个Glue的RTMPose模型

从零开始的目标检测和关键点检测&#xff08;三&#xff09;&#xff1a;训练一个Glue的RTMPose模型 一、重写config文件二、开始训练三、ncnn部署 从零开始的目标检测和关键点检测&#xff08;一&#xff09;&#xff1a;用labelme标注数据集 从零开始的目标检测和关键点检测…

【LeetCode:2103. 环和杆 | 模拟】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

自动驾驶的同学看过来:DriveLM:世界首个语言+自动驾驶全栈开源数据集

DriveLM&#xff1a;世界首个语言自动驾驶全栈开源数据集&#xff0c;旨在借助大语言模型和海量自然语言数据集&#xff0c;构筑复杂场景下安全、精准、可解释的自动驾驶系统&#xff0c;突破现有自动驾驶推理能力上限&#xff0c;数据集已开源&#xff01; DriveLM提供了量化…

【Python语言速回顾】——数据可视化基础

目录 引入 一、Matplotlib模块&#xff08;常用&#xff09; 1、绘图流程&常用图 ​编辑 2、绘制子图&添加标注 ​编辑 3、面向对象画图 4、Pylab模块应用 二、Seaborn模块&#xff08;常用&#xff09; 1、常用图 2、代码示例 ​编辑 ​编辑 ​编辑 ​…

分享一下怎么做小程序营销活动

小程序营销活动已经成为现代营销的必备利器&#xff0c;它能够帮助企业提高品牌知名度、促进产品销售&#xff0c;以及加强与用户的互动。然而&#xff0c;要想成功地策划和执行一个小程序营销活动&#xff0c;需要精心设计和全面规划。本文将为您介绍小程序营销活动的策划和执…

Windows10安装Anaconda与Pytorch的记录

这是一篇关于安装Anaconda和Pytorch的记录与复盘&#xff0c;写的原因是我电脑恢复系统之后东西全没了&#xff0c;再装Pytorch的时候一脸懵逼忘了怎么弄了&#xff0c;写篇记录以备我下一次安装。 1、Anaconda的安装 1.1、Anaconda安装包下载 下载链接: Free Download | An…

③ 软件工程CMM、CMMI模型【软考中级-软件设计师 考点】

个人简介&#xff1a;Java领域新星创作者&#xff1b;阿里云技术博主、星级博主、专家博主&#xff1b;正在Java学习的路上摸爬滚打&#xff0c;记录学习的过程~ 个人主页&#xff1a;.29.的博客 学习社区&#xff1a;进去逛一逛~ ③ 软件工程CMM、CMMI模型【软考中级-软件设计…

Linux 环境下 安装 Elasticsearch 7.13.2

Linux 环境下 安装 Elasticsearch 7.13.2 前言镜像下载&#xff08;国内镜像地址&#xff09;解压安装包修改配置文件用 Es 自带Jdk 运行配置 Es 可被远程访问然后启动接着启动本地测试一下能不能连 Es 前言 借公司的 centos 7 服务器&#xff0c;搭建一个 Es&#xff0c;正好熟…

企业上ERP的节奏商讨

导读&#xff1a;目前国内很多企业都选择ERP作为企业信息化系统&#xff0c;ERP系统的实施是一个系统的工程&#xff0c;实施过程中只有遵循正确的步骤&#xff0c;才能达到事半功倍的效果。 企业建立ERP管理系统&#xff0c;不是把现有的手工管理模式照搬到计算机上来操作&…

Vue 自动登录示例

router.beforeEach((to, from, next) > {if (to.meta.title) {document.title "xxxxx" to.meta.title;}let token window.sessionStorage.getItem(userInfo);// 如果没有token 并且没有任何响应 就要去action中自动登录if (!token) {const loginForm {usernam…