admin管理员组

文章数量:1794759

R语言

R语言

1.解决问题

很成人动漫网多激素水平、药物剂量和疾病的关系,都不是简单的直线关系,都存在从量变到质变的现象,二者是非线性关系。找到非线性关系是研究的亮点。

例如研究人群的收缩压(SBP)随年泰国鬼片龄的变化,由下图看出女性群体的SBP随着年龄,开始是缓慢在增长,而在某个阈值之后增长速度就比较快,变化趋势不是直线变化,而是非线性的增你要去哪里长。这种年龄超过某一点后,对SBP作用的大小发生变化的现象称之为阈值社交恐惧症治疗效应,发现阈值效应是一篇文章的亮点。

创新基金申请 本文主要介绍gam模型拟合因变量为连续变量的平滑曲线,用于观察研究因素X和结局变量Y的非线性关系,并根据递归算法计算拐点,然后采用分段回归模型进行阈值效应分析。

2.案例分析

本案例数据来自外部数12334据集,共计124名癌症患者,因变量为“血红蛋白浓度HB”,自变量是患者的年龄Age,并调整患者性别,现研究患者的血红蛋白浓度随着年龄的变化,以及年龄对HB的效应。

2.1 加载数据

加载R包mgcv,加载数据

library(mgcv)library(writexl)library(腾讯军事dplyr)dt <- read.csv('jixian.csv')

2.2 数据说明

HB 血红蛋白;

GENDER 性别 1=女;2=男

AGE 年龄

TIME 生存时间;

STATUS 生存状态 0 =生存,1 =死亡;

2.3 拟合平滑曲线

2.3.1 构建模型

我们就可以使用mgcv::gam()函数拟合平滑曲线。

fml<- "HB~s(AG速冻虾仁E,fx=FALSE)+GENDER"gam1<-mgcv::gam(formula(fml),weights=dt$weights,data=dt, family=gaussian(link="identity")

2.3.2 计算拟合值

pred<-predict.gam(gam1,type="terms",se.fit=TRUE)mfit <- pred$fit[,"s(AGE)"]sfit <- pred$se.fit[,"s(AGE)"]dt<-cbind(dt,m淘宝皇冠店铺fit,sfit)

2.3.3 计算95%CI

y.low <- dt$mfit-1.96*dt$sfit; y.upp<-dt$mfit+1.96*dt$sfitdt <- cbind(dt,y.low,y.upp)

2.3.4 绘制曲线

dt <- arrange(dt,AGE)co <- c(24,84,94,138) ##定义坐标col <- c('blue','purple')plot(dt$mfit~dt$AGE,ylim=c(co[3],co[4]),xlim=c(co[1],co[2]),col=col[1],type="l", lty=1, lwd=2, ylab="", xlab="")par(new=TRUE); plot(dt$y.low~dt$AGE,ylim=c(co[3],co[4]),xlim=c(co[1],co[2]),col=col[2], type="l", lty=3, lwd=1, ylab="", xlab="")par(new=TRUE); plot(dt$y.upp~dt$AGE,ylim=c(co[3],co[4]),xlim=c(co[1],co[2]),col=col[2], type="l", lty=3, lwd=1, ylab='HB', xlab='AGE')rug(dt$AGE,col='blue')

图形解读:

上图是平滑曲线拟合图,横坐标是年龄(连续变量),纵坐标是HB的浓度,中间的实线是拟合线,两边的虚线是95%可信区间。可以看到两者是U型的曲线关系。

调整广州仁爱医院年龄后,可以看出随着年龄增加HB浓度先降低后增加,画图非常直观,这两个变量的关系非常清晰的展示出来了。比起看回归分析结果的数字要舒服多了。让审稿人和读者看着舒服。通过平滑曲线拟合,可以看出调整性别后,HB随着年龄道可道非常道变化呈现非线性变化,在年龄超过某个阈值后,HB开始增加,二者存在分段的线性关系,继续寻找拐点做阈值分析。

2.4 阈值效应分析

2.4.1 计算拐点

source('get_cutoff_lm.R')cut_off <- get_cutoff_lm('AGE',dt,fml)print(cut_off )

2.4.2 生成分段变量

x <-dt[,i] X1 <-(x<=cut_off)*(x-cut_off) X2 <-(x> cut_off)*(x-cut_off中华龙鸟) dt1 <-cbind(dt,慢性咽炎如何治疗x,X1,X2)

2.4.3 构建分段模型

mdl0<- glm(HB~x+X2+GENDER,family="gaussian",w咖啡机推荐eights=dt1$weights,data甲午风云电影=dt1)mdl1<- glm(HB~X1+X2+GENDER,family="gaussian",weights=dt1$weights,data=dt1)大三阳的治疗mdl2<- glm(HB~x+GENDER,family="gaussian",weights=dt1$weights,data=dt1);

2.4.4 结果解释

mdl0是调整分段回归模型;mdl1是根据拐点拟合两段模型,比较两段模型的效应值;mdl2是线性回归模型

直线拟合数据

summary(mdl2)

半导体器件基础 结果解读:

用直线拟合数据,在调整性别后,结果是age每增长一岁,HB减少-0.083单位,95%置信区间是,P=0.587,没有显著统计学差异。

分段拟合数据

采用似然比检验分段模型和直线模型的统计学差异

summary(mdl1)summary(mdl0)###似然比检验round(1-pchisq(2*(logLik(mdl0)[1]-logLik(mdl2)[1]),1),3)##0.027

结果解读

所求的最佳拐点为年龄等于60,根据两段模型结果,age在60以前,每增加一岁,HB减少-0.559个单位,P<0.手机性价比排行05;age在60岁后,每增加一岁,HB增加0.68个单位,P<0.1。两段模型的回归系数差1.24,系数P<拯救肯尼迪;0.05;比较分段模型与原直线模型的的似然比,得出P<0.05,分段模型的似然值大于直线模型的似然值,说明分段模型更优,且两个模型具有统计学差异,表明适合用分段模型拟合,也就是说拐点是显著存在的。这跟前面曲线拟合图是一致的绘制图形。

绘找小姐经历制曲线

3 更多阅读

完整文章在公粽号:易学统计(专注临床科研)

更多临床统计小知识~如果您觉得文章不错,为我们点赞留言吧!

本文标签: 语言