栏目分类
热点资讯
测试夹
你的位置:东北运阶汽车服务有限公司 > 测试夹 > R言语——Logistic回来
R言语——Logistic回来

发布日期:2024-06-30 23:00    点击次数:116

R言语——Logistic回来

1.数据The birthwt data frame has 189 rows and 10 columns. The data were collected at Baystate Medical Center, Springfield, Mass during 1986.variablelabellowindicator of birth weight less than 2.5 kg.agemother's age in years.lwtmother's weight in pounds at last menstrual period.racemother's race (1 = white, 2 = black, 3 = other).smokesmoking status during pregnancy.ptlnumber of previous premature labours.hthistory of hypertension.uipresence of uterine irritability.ftvnumber of physician visits during the first trimester.bwtbirth weight in grams.加载MASS包中的birthwt数据#加载MASS包中的birthwt数据data(birthwt,package = 'MASS')#检察数据的结构str(birthwt)

图片

图片

字据数据的结构进行数据惩处,原始变量的race、smoke、ht、ui皆是数值型变量,在分析前需要转机成因子。另外ptl暗意先前早产次数、变量ftv暗意孕珠前三个月拜谒医师次数,不错先检察两个变量的频数散布。#将数据框添加到搜索旅途attach(birthwt)#加载epiDisplay包library(epiDisplay)#检察ptl和ftv的频数散布tab1(ptl)tab1(ftv)

图片

图片

范畴发现,84.1%的妊妇莫得早产史,早产次数逾越一次的妊妇也很少,是以有必要将ptl转机为二分类的因子(0:莫得早产史,1 :有早产史)。同理咱们也不错将ftv转机为一个三分类的因子(0:未拜谒医师,1拜谒医师1次,2 :拜谒医师大于1次)。具体代码操作如下,并将整理好的数据定名为birthweight。#加载dplyr包library(dplyr)birthweight <- birthwt %>%mutate(race=factor(race,labels = c('white','black','other')),smoke=factor(smoke,labels = c('no','yes')),ptl=ifelse(ptl>0,'1 ',ptl),ptl=factor(ptl,labels = c('no','yes')),ht=factor(ht,labels = c('no','yes')),ui=factor(ui,labels = c('no','yes')),ftv=ifelse(ftv>1,'2 ',ftv),ftv=factor(ftv,labels = c('no','1次','>1次')))#检察数据结构str(birthweight)

图片

2.模子的开辟本体上变量low变量是由bwt生成的,咱们将其算作范畴变量(取0和1),开辟二元logistic回来模子探索重生儿低体重的影响身分。在R言语中,函数glm()用于拟合包括Logistic回来在内的广义线性模子。#开辟二元Logistic回来模子glm1 <-glm(low~age lwt race smoke ptl ht ui ftv,family = binomial,data = birthweight)#使用summary()函数索要模子的汇总范畴summary(glm1)

图片

图片

上头输出第一部分展示了模子调用的公式。第二部分给出了残差的散布。第三部分给出了回来总共的料想、模范误和显贵性素质范畴。咱们时时对第三部分最感趣味。接着给出的是两个残差广大和,Null deviance暗意只包含常数项的模子的残差广大和,Residual deviance暗意现模子的残差广大和。咱们感趣味的是两个残差广大和的差值,这里是234.67-195.48=39.19,这个值不错用来素质模子的显贵性。残差广大和渐进顺从卡方散布,咱们不错用pchisq()函数获取。范畴的终末部分还包括了模子的AIC值和模子的拟合经过中迭代次数。AIC值将模子中参数的个数筹议进来,度量模子拟合的厉害,不错用于比拟模子。迭代次数是算法目标,一般不见谅,然则这个值若是太大,比如25,暗意对现存数据而言模子太复杂。3.自变量的筛选与多重线性回来模子肖似,当自变量的个数较多时,为了使开辟的Logistic回来模子比拟富厚和便于诠释,应尽量将回来后果显贵的自变量筛选入模子,将后果不显贵的变量剔除在外。咱们不错使用drop1()函数获取剔除一个自变量后的模子的AIC值。#drop1()函数获取剔除一个自变量后的模子的AIC值。drop1(glm1)

图片

从上头数据不错看出,第一步需要在模子中剔除变量ftv,因为剔除该变量后,模子的AIC值最小。第二步不错对剔除ftv之后的模子使用drop1()函数,依此类推。不错使用step()函数一次性自动完成这个经过。#渐渐回来,direction不错界说是上前向后、前进法、后退法,trace=T暗意露馅筛选预防经过glm2 <- step(glm1,direction='both',trace=T)summary(glm2)

图片

4.模子的比拟#将上述两个模子进行比拟anova(glm1,glm2,test = 'Chisq')

图片

anova()函数中的test参数不错设为LRT,获取的范畴与上头相易。范畴露馅P=0.4981>0.05,标明glm1和glm2两个模子拟合的相似好。也等于说年岁和孕早期拜谒医师的次数不会显贵进步模子的量度精度,咱们更倾向于使用更简便的模子。函数AIC也不错比拟模子。#使用AIC函数比拟模子AIC(glm1,glm2)

图片

5.回来总共的诠释#检察回来总共coef(glm2)

图片

在logistic回来中,模子拟合的是反馈变量y=1时对数上风比(log(odds))。因此,回来总共的含义是当其他变量保抓不变时,一个单元量度变量的变化可引起的反馈变量对数上风比的变化,为了便于诠释,不错将范畴指数化改造成上风比。exp(coef(glm2))

图片

范畴标明,lwt(母亲孕珠期体重)每增多1磅,重生儿体重的上风将乘以0.9842(保抓其他变量不变)。对于纠合变量,一个单元的变化可能并不太好诠释。若是lwt增多10磅,上风将乘以0.9842^10,即约为0.817。黑东谈主出产低体重儿的上风约为白东谈主妊妇的3.67倍,其他种族出产低体重儿的上风约为白东谈主妊妇的2.35倍。肖似,抽烟、有早产史、高血压、子宫应激症的妊妇出产低体重儿的上风皆将增多。#回来总共的置信区间confint(glm2)#把上头总共的置信区间指数化exp(confint(glm2))

图片

图片

6.量度对于大普遍东谈主来说概率比上风更好闪现。给定一组自变量的值,咱们不错使用开辟的模子获取量度值。举例,开辟如下假造的妊妇样本。newdata <- data.frame(lwt=120,race='black',smoke='yes',ptl='no',ht='yes',ui='no')#使用函数predict()获取模子的量度值predict(glm2,newdata = newdata,type = 'response')

图片

7.模子的搜检在评价模子时,Hosmer-Lemeshow素质不错用于判断不雅测值和量度值之间相反的显贵性。ResourceSelection包中的函数hoslem.test()不错现实该素质。#Hosmer-Lemeshow素质library(ResourceSelection)hoslem.test(low,fitted(glm2))

图片

Hosmer-Lemeshow原假定是不雅测值和量度值之间的相反无统计学道理道理。上头的范畴标明相反莫得统计学道理道理,p=0.3593,因此不可拒却对于模子很好地拟合了模子的假定。8.模子范畴的汇总输出使用epiDisplay包中的函数logistic.display()函数不错用于汇总Logistic回来模子的主要范畴。#模子范畴汇总logistic.display(glm2)

图片

上述输出范畴包含了各个自变量调养前和调养后的上风比和95%置信区间,以及针对回来总共的Wald素质的P值和针对自变量的似然比素质的P值,这是大普遍论文诠释的Logistic回来的范畴。咱们不错将输出范畴导出到一个.csv要害的文献中。write.csv(logistic.display(glm2)$table,file='D:/model.csv')

图片

参考:《R言语医学数据分析实战》 本站仅提供存储就业,通盘内容均由用户发布,如发现存害或侵权内容,请点击举报。

测试设备电源线 测试夹 测试点 杯凸仪