||
此前的博文中,给大家介绍了如何用几个圆圈来进行方差分解的方法,但事实上该方法依然有一定的复杂性,且几个圈交汇处的方差并不太容易解释。
那么有没有更简单一点的方法,能够方便的对比回归模型
Y=b0+b1*x1+b2*x2+…
中x1, x2, x3…对Y贡献的相对大小,以及不同X所属的因素类别(如生物因素,非生物因素)对Y的贡献大小呢?
当然有,本文就试图介绍这样一种方法,供大家在实际应用中参考。
要深入理解这种方法,首先要理解回归方程的本质意义:即代表了X变化一个单位时,Y会相应的变化多少。
理解了这一点后,我们引入标准化这个概念,所谓数据的标准化,不过是把原始数据的尺度进行转换,将其范围锁定在一个区间之内(如0-1之间)。通常我们用到的标准化是把某一变量的均值转变为0, SD转变为1. 比如在一个最简单的模型中:
Y=b0+b1*x1
如果我们对x1进行了标准化(mean=0, SD=1),我们记为standard_x,那么这时模型变为:
Y=b0+b1*standard_x
这时,由于x1的变化而造成Y发生的变化幅度该如何衡量呢?我们可以直接用SD来表示这种变化,因为b0为常数,所以SD(b0)=0, 所以这一项不予考虑。那么Y的变异只来自于b1*standard_x这一项。则:
SD(Y) = SD(b1*standard_x) = b1*SD(standard_x)
前面我们提到了,standard_x是标准化后的x, 所以,
SD(standard_x) = 1,
那么非常简单:上述公式变成了
SD(Y) = SD(b1*standard_x) = b1*SD(standard_x) = b1*1 = b1
这时候,X对Y的影响的大小就变成X变化一个SD, 对应的Y会变化多少, 所以这种方法消除了量纲,不同X的回归系数具有了直接可比性。比如以下模型中如果x1, x2, x3…都是标准化后的值,
Y=b0+b1*x1+b2*x2+b3*x3+…
那么b1, b2, b3直接表示的就是各个x变化一个SD, Y对应的变化多少。
所以这时候,我们便可以直接用b1, b2, b3…的大小作为不同x对Y贡献大小的依据,且其值具备了直接可比性(消除了X的量纲),这就是依据这种方法进行方差分解的核心原理。到这里,大家体会到了对X进行标准化的妙处了吧(当然,标准化的妙处不止这一点)。
但是,还是要强调一下,这种方法的应用的前提是,不同的X之间的相关性必须较低,否则首先还是要处理共线性问题。
好了,原理讲完,通过一个案例来演示一下这种方法的具体应用。案例来源(Gross et al. 2017, PNAS),其具体研究内容不做赘述,我们看他的问题:
分析24个变量对Y(logM5)的影响,并判定这24个变量对Y的影响的相对大小(即对R2)的贡献程度。
这24个变量是:LAT, SINLONG, COSLONG, ARIDITY, SLO, SAND, PH, I(PH^2), ELEVATION, CWM_logSLA, I(CWM_logSLA^2), CWV_logSLA, I(CWV_logSLA^2), CWS_logSLA, CWK_logSLA I(CWK_logSLA^2), CWM_logH, I(CWM_logH^2), CWV_logH I(CWV_logH^2), CWS_logH, CWK_logH, I(CWK_logH^2) , SR。
而这24个变量, 又可以归为Rrichness, Abiotic, Geo等五大类。其最终结果如下图所示:
案例来源(Gross et al. 2017, PNAS)
那么这个结果是如何得到的呢?
首先我们判定这些X对Y的总体贡献是多少。
其实很简单,构造一个fullmodel, 包括所有的变量(当然要把共线性高的因素先去除掉)
mod12<-lm(logM5 ~ LAT + SINLONG + COSLONG +
ARIDITY + SLO + SAND + PH + I(PH^2) + ELEVATION+
CWM_logSLA + I(CWM_logSLA^2)+ CWV_logSLA + I(CWV_logSLA^2) + CWS_logSLA + CWK_logSLA + I(CWK_logSLA^2) +CWM_logH + I(CWM_logH^2)+ CWV_logH + I(CWV_logH^2) + CWS_logH + CWK_logH + I(CWK_logH^2) +
SR , data=datatotal)
此全模型的r2即为论文中fig4a(即上图)中报道的r2, 即0.66。
但是细心的读者会发现, 上图中x也不够24个, 其他的弄哪儿了?是我搞错了么?别着急, 我们先做一个模型选择, 把那些跟Y的关系比较弱的X通通删除(模型选择也是个技术活, 感兴趣的我们以后慢慢道来)。一定要注意, 这里的每个X都是标准化之后的X。
模型选择的核心代码如下:
########模型选择
dd12<-dredge(mod12, subset = ~ LAT & SINLONG & COSLONG & ARIDITY & SLO & SAND & PH &SR & ELEVATION & dc(CWM_logSLA, I(CWM_logSLA^2)) & dc(CWV_logSLA, I(CWV_logSLA^2)) & dc(CWK_logSLA, I(CWK_logSLA^2)) & dc(CWM_logH, I(CWM_logH^2)) & dc(CWV_logH, I(CWV_logH^2)) & dc(CWK_logH, I(CWK_logH^2)), options(na.action = "na.fail"))
######提取最优模型集, 以AIC值差值小于2为临界点
subset(dd12, delta<2)
求模型平均后的参数估计值, 即figure 4a右边的参数估计图
de12<-model.avg(dd12, subset = delta < 2)
summary(de12)
即得到以下结果:
我们提取这些参数估计值, 进行对应的作图:
就得到了跟文献中一模一样的结果, 这里的X跟文章图中的X数量就相同了吧!
原图结果 重现结果
100%结果完全一样(细节大家自己调吧, 我要哄娃, 就不费这劲了)!
那么, 最核心的方差分解, 也就是下图这个结果如何得到呢?
首先, R2=0.66这个值, 我们刚才已经通过fullmodel得到了, 剩下的就是如何分析五类因素各自的贡献了, 那么怎么做呢?
非常简单, 把以上模型平均后的结果中属于每一类的X的回归系数相加, 除以所有X的回归系数之和就可以了。
在R中,可以:
########求各类型参数贡献的百分比
d1<-summary(de12)
d2<-d1$coefficients
d3<-d2[1, ]
d4<-d3[c(2:22)]
d5<-abs(d4)
sum(d5)
如我们要求LAT + SINLONG + COSLONG+ELEVATION这四个因素一起在总R2中所占的比率(也就是图中的geo这一类因子), 那么:
即为geo这个因素在模型解释的总R2中所占的比重为6.6%,
Richness的贡献为:
即richness这个因素在模型解释的总R2中所占的比重为5.2%。
所以用各类回归系数的和除以所有回归系数的和, 就得到了各类因素对的贡献比率, 而所有的这五类因素的贡献加到一起, 当然就是100%, 这个案例里, 他们一起贡献了Y的变异的66%。
这种方法简单易行, 应用也较为常见, 如以下三篇PNAS论文都采用了这一方法。
案例来源:(Le Provost et al. 2020, PNAS)
案例来源(Sirami et al. 2019, PNAS)
案例来源:(García-Palacios et al. 2018, PNAS)
此外做个小广告, 鄙人将于今年10月底和11月底, 分别做一期meta分析和混合效应模型的线上培训课程(其他老师还有结构方程模型, R统计制图与地图制作, Invest模型等), 敬请关注, 详情请扫描以下二维码
参考文献:
1) García-Palacios, P., N. Gross, J. Gaitán, and F. T. Maestre. 2018. Climate mediates the biodiversity–ecosystem stability relationship globally. Proceedings of the National Academy of Sciences.
2) Gross, N., Y. L. Bagousse-Pinguet, P. Liancourt, M. Berdugo, N. J. Gotelli, and F. T. Maestre. 2017. Functional trait diversity maximizes ecosystem multifunctionality. Nature Ecology &Amp; Evolution 1:0132.
3) Le Provost, G., I. Badenhausser, Y. Le Bagousse-Pinguet, Y. Clough, L. Henckel, C. Violle, V. Bretagnolle, M. Roncoroni, P. Manning, and N. Gross. 2020. Land-use history impacts functional diversity across multiple trophic groups. Proceedings of the National Academy of Sciences 117:1573-1579.
4) Sirami, C., N. Gross, A. B. Baillod, C. Bertrand, R. Carrié, A. Hass, L. Henckel, P. Miguet, C. Vuillot, A. Alignier, J. Girard, P. Batáry, Y. Clough, C. Violle, D. Giralt, G. Bota, I. Badenhausser, G. Lefebvre, B. Gauffre, A. Vialatte, F. Calatayud, A. Gil-Tena, L. Tischendorf, S. Mitchell, K. Lindsay, R. Georges, S. Hilaire, J. Recasens, X. O. Solé-Senan, I. Robleño, J. Bosch, J. A. Barrientos, A. Ricarte, M. á. Marcos-Garcia, J. Miñano, R. Mathevet, A. Gibon, J. Baudry, G. Balent, B. Poulin, F. Burel, T. Tscharntke, V. Bretagnolle, G. Siriwardena, A. Ouin, L. Brotons, J.-L. Martin, and L. Fahrig. 2019. Increasing crop heterogeneity enhances multitrophic diversity across agricultural regions. Proceedings of the National Academy of Sciences 116:16442-16447.
关注以下公众号,发送“方差分解数据及代码”,可获取本文案例数据及详细代码
1/1 | 闂傚倸鍊搁崐鎼佸磹閹间礁纾圭€瑰嫭鍣磋ぐ鎺戠倞妞ゆ帒顦伴弲顏堟⒑閸濆嫮鈻夐柛妯垮亹缁牓宕奸悢绋垮伎濠殿喗顨呭Λ妤呭礉閿曞倹鐓ユ繝闈涙-濡插摜绱掗悩鐑樼彧濞e洤锕俊鍫曞椽閸愨晜鏆伴梻浣告惈閹锋垹绱炴担鍓叉綎闁惧繗顫夊畷澶愭煏婵炲灝鍔滈柣婵勫灲濮婃椽鎮烽弶鎸庮唨闂佺懓鍤栭幏锟�:15 | 婵犵數濮烽弫鍛婃叏閻戝鈧倿鎸婃竟鈺嬬秮瀹曘劑寮堕幋鐙呯幢闂備浇顫夊畷妯衡枖濞戞碍顐介柕鍫濇啒閺冨牊鏅查柛娑卞幗濞堟煡姊虹粙娆惧剰妞ゆ垵顦靛濠氭晲閸涘倻鍠庨埢搴ㄥ箚瑜庨鍕煛婢跺棙娅嗙紒璇茬墕椤繘鎼圭憴鍕/闂侀潧枪閸庢煡鎮甸姀銈嗏拺闁荤喐婢樺▓鈺呮煙閸戙倖瀚� | 婵犵數濮烽弫鍛婃叏閻戣棄鏋侀柟闂寸绾惧鏌i幇顒佹儓闁搞劌鍊块弻娑㈩敃閿濆棛顦ョ紓浣哄С閸楁娊寮婚悢鍏尖拻閻庣數枪婵′粙姊洪崫鍕櫤缂佽鐗撳濠氬Ω閵夈垺鏂€闂佺硶鍓濋敋缂佹劖鐩娲川婵犲孩鐣烽悗鍏夊亾闁归棿绀佺粻鏍ㄤ繆閵堝倸浜鹃梺瀹犳椤︻垶鍩㈠鍡樼秶闁靛ě鍛帒缂傚倷绀侀崐鍝ョ矓閹绢喓鍋戝ù鍏兼綑闁卞洭鏌i弬鎸庢儓鐎殿喗濞婂缁樻媴閾忕懓绗″┑鐐插级閻楃姴鐣烽幇鏉挎嵍妞ゆ挻绋戞禍鐐叏濡厧浜鹃悗姘炬嫹 | 婵犵數濮烽弫鍛婃叏閻戣棄鏋侀柟闂寸绾惧鏌i幇顒佹儓闁搞劌鍊块弻娑㈩敃閿濆棛顦ョ紓浣哄С閸楁娊寮婚悢鍏尖拻閻庡灚鐡曠粣妤呮⒑鏉炴壆顦﹂悗姘嵆瀵鈽夐姀鐘插祮闂侀潧枪閸庤京绮绘繝姘拺闁告稑饪村▓鏇犫偓鍏夊亾闁归棿绀佺粻鏍ㄤ繆閵堝倸浜鹃梺瀹犳椤︻垶鍩㈠鍡樼秶闁靛ě鍛帒缂傚倷绀侀崐鍝ョ矓閹绢喓鍋戝ù鍏兼綑闁卞洭鏌i弬鎸庢儓鐎殿喗濞婂缁樻媴閾忕懓绗″┑鐐插级閻楃姴鐣烽幇鏉挎嵍妞ゆ挻绋戞禍鐐叏濡厧浜鹃悗姘炬嫹 | 闂傚倸鍊搁崐鎼佸磹閹间礁纾瑰瀣捣閻棗銆掑锝呬壕濡ょ姷鍋為悧鐘汇€侀弴銏℃櫆闁芥ê顦純鏇熺節閻㈤潧孝闁挎洏鍊濋幃褔宕卞▎蹇f闁荤姴娲︾粊鎾绩娴犲鐓熸俊顖氭惈缁狙囨煙閸忕厧濮堟繛鑹邦嚙閳规垹鈧綆鍋€閹锋椽鏌i悩鍏呰埅闁告柨鑻埢宥夊箛閻楀牏鍘甸梺鍛婂灟閸婃牜鈧熬鎷� | 闂傚倸鍊搁崐鎼佸磹瀹勬噴褰掑炊瑜忛弳锕傛煕椤垵浜濋柛娆忕箻閺岀喓绱掗姀鐘崇亪缂備胶濮鹃~澶愬Φ閸曨垰绠涢柛顐f礃椤庡秹姊虹粙娆惧剾濞存粠浜璇测槈閵忕姈銊︺亜閺傚灝缍栨慨瑙勵殜閹嘲饪伴崨顓ф毉闁汇埄鍨遍〃濠傤嚕閺屻儱绠瑰ù锝呮贡閸欏棝姊虹紒妯荤闁稿﹤婀遍埀顒佺啲閹凤拷 |
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2025-3-16 14:14
Powered by ScienceNet.cn
Copyright © 2007-2025 中国科学报社