R语言使用BOOT重抽样获取回归方程系数95%可信区间(1)

news/2025/1/31 9:35:26/

bootstrap自采样目前广泛应用与统计学中,其原理很简单就是通过自身原始数据抽取一定量的样本(也就是取子集),通过对抽取的样本进行统计学分析,然后继续重新抽取样本进行分析,不断的重复这一过程N(大于500次以上)次,然后得到N个统计结果,然后进行区间分析,得到最终结果。
在这里插入图片描述
bootstrap自采样对于小样本数据计算效果较好,也可以在线性方程中通过bootstrap自采样计算并绘制出可信区间。本期我们将通过R语言演示BOOT重抽样进行回归方程系数的可信区间计算。
我们先导入数据和R包

library(boot)
bc<-read.csv("E:/r/test/zaochan.csv",sep=',',header=TRUE)
bc <- na.omit(bc)

在这里插入图片描述
这是一个关于早产低体重儿的数据(公众号回复:早产数据,可以获得该数据),低于2500g被认为是低体重儿。数据解释如下:low 是否是小于2500g早产儿,age 母亲的年龄,lwt 末次月经体重,race 种族,smoke 孕期抽烟,ptl 早产史(计数),ht 有高血压病史,ui 子宫过敏,ftv 早孕时看医生的次数
bwt 新生儿体重数值。
先把分类变量转成因子

bc$race<-ifelse(bc$race=="black",1,ifelse(bc$race=="white",2,3))
bc$smoke<-ifelse(bc$smoke=="nonsmoker",0,1)
bc$low<-factor(bc$low)
bc$race<-factor(bc$race)
bc$ht<-factor(bc$ht)
bc$ui<-factor(bc$ui)

建立回归方程

fit<-glm(low ~ age + lwt + race + smoke + ptl + ht + ui + ftv,family = binomial("logit"),data = bc)
summary(fit)

在这里插入图片描述
在这里R已经把标准误计算出来了,我们等会使用BOOT计算和它进行个比较。进行BOOT之前要先写个简单的function,非常简单就是用function包住回归方程就可以了

model_coef <- function(data,index){coef(glm(low ~ age + lwt + race + smoke + ptl + ht + ui + ftv,family = binomial("logit"),data =bc,subset =index))}

写好以后我们要调试一下function看写得对不对,写不对的话重抽样不可能成功。我们对代码取了一个子集,其实也相当于1次重抽样

model_coef(bc,1:100)

在这里插入图片描述
OK,写得function没问题后就可以重抽样了。Data为抽样的数据,statistic为抽样的函数,R为抽样的次数,我这里抽500次。

results <- boot(data=bc, statistic=model_coef, R=500)

在这里插入图片描述
把结果导出,它这里是按1-10排序的,自己对照一下就可以了,t2是age这个变量,有了标准误就可以轻易计算可信区间了。

print(results)

在这里插入图片描述
还可以查看它的抽样分布

plot(results)

在这里插入图片描述
本章先介绍一个简单的抽样模型,再慢慢深入,BOOT重抽样内容预计3个章节介绍完。


http://www.ppmy.cn/news/519677.html

相关文章

R语言排序

sort()函数是对向量进行从小到大的排序 rank()函数返回的是对向量中每个数值对应的秩 order()函数返回的值表示位置&#xff0c;依次对应的是向量的最小值、次小值、第三小值……最大值等&#xff08;位置索引&#xff09; arrange()函数&#xff08;需加载dplyr包&#xff…

二次拟合r方_R语言中如何给拟合曲线添加R2和95%置信区间

完整代码&#xff1a; #install.packages("basicTrendline") library(basicTrendline)x c(3.6,4.6,4.7,5.7,6.6,7.5,8.3,9.4,10.1,11.12,13.9,13.5,14.2,13.7,15.6)y c(11,11,12,13,14,15,16,17,18,19,20,21,22,23,25)#自动添加95%置信区间lines and fill colortre…

r语言实现岭回归_R语言回归篇

1.回归的多面性 回归类型 用途 简单线性 个量化的解释变量来预测一个量化的响应变量(一个因变量、一个自变量) 多项式 一个量化的解释变量预测一个量化的响应变量,模型的关系是 n阶多项式(一个预测变量,但同时包含变量的幂) 多元线性 用两个或多个量化的解释变量预测一个量化…

R语言韦布尔(Weibull)分布

韦布尔分布&#xff0c;即韦伯分布&#xff08;Weibull distribution&#xff09;&#xff0c;又称韦氏分布或威布尔分布&#xff0c;是可靠性分析和寿命检验的理论基础。威布尔分布在可靠性工程中被广泛应用&#xff0c;尤其适用于机电类产品的磨损累计失效的分布形式。由于它…

R语言-时间序列实验

R语言-时间序列实验 数据实验目的及内容目的内容 实验1.时间序列的平稳性检验2.时间序列建模分析3.时间模型序列模型预测 数据 数据选取的是2013年某餐饮的销售额。提取链接如下&#xff1a; 链接: link 提取码&#xff1a;1234 实验目的及内容 目的 1&#xff0e; 掌握时间…

R语言卡方检验最全总结

本文首发于公众号&#xff1a;医学和生信笔记&#xff0c;完美观看体验请至公众号查看本文。 医学和生信笔记&#xff0c;专注R语言在临床医学中的使用&#xff0c;R语言数据分析和可视化。 卡方检验/列联表资料的卡方检验在临床中非常常见&#xff01; 因为最近又有一批临床数…

R语言1 创建数据集

创建数据集 文章目录 创建数据集 数据集的概念数据结构向量矩阵数组数据框因子列表 数据集的概念 数据集通常是由数据构成的一个矩形数组&#xff0c;行表示观测&#xff0c;列表示变量。 R中有许多用于存储数据的结构&#xff0c;包括标量、向量、数组、数据框和列表。 数据结…

R语言使用glm函数构建泊松回归模型(Poisson Regression)、使用exp函数和confint函数获取泊松回归模型所有系数的事件密度比(IDR)的95%置信区间

R语言使用glm函数构建泊松回归模型(Poisson Regression)、使用exp函数和confint函数获取泊松回归模型所有系数的事件密度比(IDR)的95%置信区间 目录