可以犯错,但不要一直犯同样的错。
20221005
都是一些基础问题,但是很致命。
1、开始分析之前,一定要保证数据整理的时候没有问题。整理完成之后可以通过多种方式检查自己是否整理正确:
1)如果两个变量之间有明显的关联,可以尝试做一下关联性分析,检查是否有关联,这个时候,如果不存在关联性,就要思考为什么了,是不是数据整错了,还是中间转换的时候出错。
2)是否有很强的可重复性。当然,这个方法就比较费时间。用不同的思路多做几次,如果每次的结果都是一样的,出错率就比较小了。
3)如果是其他人已经发过的人群研究,可以通过summarize自己的数据,核对是否一样。一般已发表的都是99%正确的数据结果。如果不能复刻出他的结果,99%就是自己做错了。(剩下1%的可能就是。。。)
4)对缺失值进行填补!!如果样本量小,一定尽可能填补,填补最常用的是中位数填补法。
2、做批量lm/glm或者其他回归分析的时候,用for循环生成数据表一定要样本号对齐。
这里的x、y、covariates一定要样本ID号列保持一致,不然就用merge合并
results<-data.frame()
for(j in 1:ncol(x)){
for (i in 1:ncol(y)){
data.cur<-data.frame(y[,i],x[,j],
covariates$Sex,covariates$Age,covariates$BMI)
colnames(data.cur)<-c("y","x","Sex","Age","BMI")
res.lm<-glm(y~x+Sex+Age+BMI,data = data.cur)
res.summary.lm<-data.frame(cbind(names(x)[j],names(y)[i],summary(res.lm)$coe[2,1]),summary(res.lm)$coe[2,2],summary(res.lm)$coe[2,4])
results<-rbind(res.summary.lm,results)
}
}
names(results)<-c("x","y","Coefficient","SE","P")
results$adjp<-p.adjust(results$P,method="fdr")
table(results$adjp<0.05)