样本108,nature照样发!

科技   2024-11-14 00:02   福建  

   假如你手头只有108个样本,或者说,你的数据只有108行,那该如何分析?将来能发啥样档次的论文?恐怕多数人觉得,数据量这么少,即使投一代神刊《巴基斯坦植物学报》也有难度。而下面这篇Nature大作就教育我们,数据不在多少,关键是如何分析,如何化简单为神奇。

  

   这是一篇典型的Meta分析研究,一共包含了108个案例(是108个案例,也就是数据只有108行,而不是108篇论文,论文数量远不及108,因为同一篇论文可以提取好几个案例)。作者首先采用典型的Meta分析方法分析了不同条件下,CO2升高对土壤C的影响。

      而要发Nature,仅凭这些显然是不够深入的。作者们后面便将Meta分析和随机森林结合,把108行数据玩出了新高度,新境界:

1)在108行数据中,加入了19个解释变量(环境因子),用meta随机森林(metaforest)删选出其中对效应值比较重要的变量。

##核心代码mf_cv <- train(y = data$yi,               x = X,               method = ModelInfo_mf(),               trControl = cv_folds,               tuneGrid = tuning_grid,               keep.inbag = TRUE,               num.threads = 31,               verbose=TRUE,               num.trees = 10000)
# Cross-validated R2 of the final model:mf_cv$results[which.min(mf_cv$results$RMSE), ]$Rsquared
### saveRDS(mf_cv, "mf_cv_rel.RData")mf_cv <- readRDS("mf_cv_rel.RData")importance.export.rel <- varImp(mf_cv)$importance###write.csv(importance.export.rel,"VI_rel.csv")final <- mf_cv$finalplot(final)imp.rel <- VarImpPlot(final,label_elements = newnames)imp.relimp <- VarImpPlot(final,label_elements = newnames)

2)基于随机森林选出的比较重要的五六个环境因子,在metafor中,进行传统的线性模型模型选择,并加入这些因子之间的交互作用,再次评估不同因子对效应值的重要性。

##核心代码res <- glmulti(yi ~ Nitrogen.fertilization + Symbiotic.type + Effect.biomass +                  Experiment.type + Cstock,                data=intact,               level=2, fitfunction=rma.glmulti, crit="aicc", confsetsize=128)
plot(res, type="s")

3)依据效应值和其决定性环境因子的关系,对效应值的全球格局进行预测。

      所以说这篇靠着一百单八将能发Nature的案例,其统计技术应用超凡脱俗,看上去够炫酷,或许是个关键原因。其方法(传统Meta+随机森林)也确实值得学习。但个人总觉得如果仅仅依据108行数据,就搞一个全球的分析,不管分析再花哨炫酷,其可靠性有多大呢,欢迎老铁们提出自己的见解!

参考文献:

Terrer, C. et al. A trade-off between plant and soil carbon storage under elevated CO2. Nature 591, 599-603, doi:10.1038/s41586-021-03306-8 (2021).

生态遥感前沿
分享生态遥感领域实用教程、最新科研成果及资讯,交流、合作等事宜请加Novel_2020
 最新文章