第4期:Logistic回归分析在R中有多难?
今天的分享内容,已经不算我擅长的领域了,仅供参考,如果有不对或者更好的方法请大神批评指正。
我们在统计分析中经常会遇到需要做多因素Logistic回归的情况,通常数据量比较小的情况下使用SPSS就可以方便的处理,如果是百万级的数据可能就有点难了。
“R作为一种统计分析软件,是集统计分析与图形显示于一体的。它可以运行于UNIX,Windows和Macintosh的操作系统上,而且嵌入了一个非常方便实用的帮助系统,相比于其他统计分析软件,R是一种自由的,可编程的,函数和程序保存在各种包里的,有很强互动性的语言!”-----以上来自百度知道,而我什么都不知道。
Logistic回归就不解释啦,毕竟我连本科都不是学预防的,摊牌了。
先上程序。
setwd("D:/mydata")
Data <- read.csv("D:/mydata/你的数据文件.csv")
View(Data)
colnames(Data) <- c("x1","x2","x3","x4","x5","x6","y")
glm <- glm(y~x2+x3+x6,family = binomial(link = logit),data = Data)
summary(glm)
exp(coef(glm))
exp(confint(glm))
以上几个简单地语句就做好啦,这样你会得出以下结果:
1.哪些因素在某个水平上具有统计学差异?
2.这些因素对应的OR值是多少?
3.这些OR值的置信区间是多少?
然后整理成一张表格就可以放进文章里了。不想知道为什么的同学就可以关掉文章,拿起R和数据做起来啦,复制代码就好啦。下面解释代码:
setwd("D:/mydata")设置工作空间
Data <- read.csv("D:/mydata/你的数据文件.csv")将你的数据表赋值给“Data”
View(Data)看看"Data"这一步是方便下一步给他重命名。
colnames(Data) <- c("x1","x2","x3","x4","x5","x6"有多少因素就写多少个x,"y"结局))
glm <- glm(y~x2+x3+x6(纳入你想分析的因素),family = binomial(link = logit),data = Data)
(是不是很像回归方程)
summary(glm)(看统计学意义)
exp(coef(glm))(看OR值)
exp(confint(glm))(看置信区间)
标红的地方还有变形空间!
参考上边网站中,可以替换语句做其他回归模型。
值得注意的几点:
1.数据表中不能有空值,不然会报错,可以用sum(!complete.cases(Data))来看,也可以自己用表格工具来看。
2.强烈推荐使用csv格式文件,要不然上百万条数据,跑不起来。
3.程序注意区分大小写,输入法处于英文编辑,上述代码在Rstudio中打出来的哦~小白建议使用Rstudio,能更快理解语句,也能更快找到错误。
4.作为小白,我也没搞清楚有的时候比如年龄,分为1,2,3,4等变量,但是R在做这个分析时会当成连续变量,应该是在分析的语句里需要加一句什么吧,而我采用了最笨的办法,给源数据全改成abcde(字符变量)了,这里希望大神留言指教。
5.以上方法是我自己东拼西凑从网站和书籍上凑出来的,也是我在论文中所使用的,仅供参考,如果有更好的方法也请不吝赐教!
写在最后,作为一个学渣也好,小白也好,我觉得我还是挺有发言权的,可悲也可喜的是我都快毕业了才明白研究生三个字的真谛,当了两年不称职的坏学生,如今我希望每一天都能进步一些,多学一些新的东西。
只希望,看到这里的你,可能你和我一样,更可能的是你比我更强,科班出身,成绩优异,但我想说,不管目前多不顺利,和别人比多差,都不要放弃自己!我没有,希望你也是!
今天的分享就到这里啦,上边分享一些做统计的心得,觉得有用可以转发/关注,让更多有需要的人看到,长按二维码关注TU亦有道,疾控人不再迷路~
加油冲鸭!!!