导读
用随机森林“分类”的方法寻找16S测序数据中与分组有关的细菌。
一、数据准备
- 标准化细菌丰度表
- 格式要求:不用放样本ID;最后一列放分组变量
二、R分析准备
install.packages("randomForest ") ## 下载安装randomForest包
library(randomForest) ## 加载randomForest包
library(openxlsx)
setwd("C:/mywd")
getwd()
workbook <- "C:/mywd/randomforest.xlsx" ## 读取数据表
mydataframe <- read.xlsx(workbook, 1) ## 读取表单1
mydataframe$Groups = factor(mydataframe$Groups) ## 把分组变量设为因子
set.seed(430)
# 设置随机数种子保证结果可重复
三、随机森林分类
Groups.rf = randomForest(Groups ~ ., data=mydataframe, ntree=500, importance=TRUE, proximity=TRUE)
# importance:是否输出因变量在模型中的重要性
# proximity: 是否计算模型的临近矩阵
# ntree:设定随机森林的树数, 越大,模型效果会有提升,但计算量会变大
# 默认使用500个树
print(Groups.rf)
四、输出结果
data <- round(importance(Groups.rf), 2)
# 查看每个变量的分类贡献度,保留两位小数
write.xlsx(data, file="data_rf.xlsx")
# 保存结果
打开结果文件data_rf.xlsx,查看如下:
五、结果可视化
varImpPlot(Groups.rf)
相关阅读:
16S测序分析(一)菌属丰度表获取
16S测序分析(二)菌群多样性分析
16S测序分析(三)用LEfSe寻找组间差异细菌
16S测序分析(四)用MaAsLin寻找组间差异细菌
16S测序分析(五)用RandomForest寻找关键细菌
16S测序分析(六)用PICRUSt预测菌群KEGG代谢通路