做代谢组学分析,一共有147种代谢物,需要每个单独和其他选定的协变量一起放入线性回归模型中,依次替换147种代谢物,完成147次回归分析。
R语言
1、 数据预处理:excel和spss 2、 for循环 3、 multinom() 线性回归 4、 导出结果分析
步骤1、2、4参见我之前写的《批量线性回归并整理导出结果到word文档》,这里只讲批量multinom() 线性回归的核心步骤。
详细解释
z <-summary(result)$coefficients/summary(result)$standard.errors p <- (1-pnorm(abs(z),0,1))*2 #因为nnet的multinom不提供p值,所以要自己计算 t(summary(result)$coefficients[,2]) #提取coefficient t(p[,2])) #提取p值这两个代码一定要反复确认,最先跑好之后,summary(result)出来,一一对应着看几遍。因为你是多分类,所以每个代谢物底下会有多个分组,所以每个代谢物对应几个OR。注意如果没有t(),出来的是数组array,而不会是matrix。 建议自己多修改几个参数,对照着结果多看几遍,就会明白其中的原理了。
补充一个,如果想要认为选择对照组,可以用relevel
ml$prog2 <- relevel(ml$prog, ref = "academic") #注意relevel只能用于无序多分类排序,即,prog的值不可一世有序的数字,可以是字符放几条学习链接:
R多分类logistic回归的原理和思路:MULTINOMIAL LOGISTIC REGRESSION USING R 这个写的非常好(感激不尽!):Multinomial Logit Model (MNL) 模型R语言nnet包multinom函数实现实例
“懒人”改变世界,懒得做单调重复的事情,所以耐心用了一天的时间写好代码,一键操作,减少出错,心情舒畅。 PS:一定要知其所以然。
