跟著Nature Ecology&Evolution學數(shù)據(jù)分析:R語言做方差分解的一個簡單小例子

之前好多人在公眾號留言問這個 方差分解 的內容,但是之前自己也沒有聽說過晨逝。最近看到有人分享了公眾號推文 一種簡單易行的方差分解方法。看了這個推文我目前理解的是 方差分解的主要作用是 量化回歸模型Y=b0+b1x1+b2x2+…中x1, x2, x3…對Y貢獻的相對大小遏佣,以及不同X所屬的因素類別(如生物因素,非生物因素)對Y的貢獻大小揽浙。

這篇推文以已經(jīng)發(fā)表的論文中的數(shù)據(jù)為例子進行了介紹状婶,論文是

image.png

這篇論文關于方差分解的內容數(shù)據(jù)代碼是公開的,下載鏈接是

https://figshare.com/s/053837c4fa852f035448

image.png

我看了這些代碼馅巷,有的地方還看不明白膛虫,但是利用數(shù)據(jù)能夠跑通流程,今天先記錄一下钓猬,后面抽時間再看稍刀,有什么新的理解再來記錄

首先是讀入數(shù)據(jù)
datatotal<-read.table("datasetmultifunctionality.txt", header=T, sep="\t")
colnames(datatotal)
接下來的代碼是對數(shù)據(jù)進行轉化

有的是常規(guī)的標準化

有的是log轉化

常規(guī)的標準化開頭提到的推文里介紹了方差分解必須用標準化后的數(shù)據(jù),但是有的log轉化是什么意思呢敞曹?

#####logtransformation moments
datatotal[,c(12,13,16,17)]<-log(datatotal[,c(12,13,16,17)])
datatotal[,14]<-log(datatotal[,14]-min(datatotal[,14])+1)
datatotal[,15]<-log(datatotal[,15]-min(datatotal[,15])+1)
datatotal[,18]<-log(datatotal[,18]-min(datatotal[,18])+1)
datatotal[,19]<-log(datatotal[,19]-min(datatotal[,19])+1)

#####Zscorring environmental variables
datatotal$ELEVATION<-(datatotal$ELEVATION-mean(datatotal$ELEVATION))/sd(datatotal$ELEVATION)
datatotal$LAT<-(datatotal$LAT-mean(datatotal$LAT))/sd(datatotal$LAT)
datatotal$SINLONG<-(datatotal$SINLONG-mean(datatotal$SINLONG))/sd(datatotal$SINLONG)
datatotal$COSLONG<-(datatotal$COSLONG-mean(datatotal$COSLONG))/sd(datatotal$COSLONG)
datatotal$SLO<-(datatotal$SLO-mean(datatotal$SLO))/sd(datatotal$SLO)
datatotal$ARIDITY<-(datatotal$ARIDITY-mean(datatotal$ARIDITY))/sd(datatotal$ARIDITY)
datatotal$SAND<-(datatotal$SAND-mean(datatotal$SAND))/sd(datatotal$SAND)
datatotal$PH<-(datatotal$PH-mean(datatotal$PH))/sd(datatotal$PH)
datatotal$SR<-(datatotal$SR-mean(datatotal$SR))/sd(datatotal$SR)

#####Zscorring moments
datatotal$CWM_logH<-(datatotal$CWM_logH-mean(datatotal$CWM_logH))/sd(datatotal$CWM_logH)
datatotal$CWV_logH<-(datatotal$CWV_logH-mean(datatotal$CWV_logH))/sd(datatotal$CWV_logH)
datatotal$CWS_logH<-(datatotal$CWS_logH-mean(datatotal$CWS_logH))/sd(datatotal$CWS_logH)
datatotal$CWK_logH<-(datatotal$CWK_logH-mean(datatotal$CWK_logH))/sd(datatotal$CWK_logH)
datatotal$CWM_logSLA<-(datatotal$CWM_logSLA-mean(datatotal$CWM_logSLA))/sd(datatotal$CWM_logSLA)
datatotal$CWV_logSLA<-(datatotal$CWV_logSLA-mean(datatotal$CWV_logSLA))/sd(datatotal$CWV_logSLA)
datatotal$CWS_logSLA<-(datatotal$CWS_logSLA-mean(datatotal$CWS_logSLA))/sd(datatotal$CWS_logSLA)
datatotal$CWK_logSLA<-(datatotal$CWK_logSLA-mean(datatotal$CWK_logSLA))/sd(datatotal$CWK_logSLA)

#####Zscorring ecosystem functions

datatotal$BGL<-(datatotal$BGL-mean(datatotal$BGL))/sd(datatotal$BGL)
datatotal$FOS<-(datatotal$FOS-mean(datatotal$FOS))/sd(datatotal$FOS)
datatotal$AMP<-(datatotal$AMP-mean(datatotal$AMP))/sd(datatotal$AMP)
datatotal$NTR<-(datatotal$NTR-mean(datatotal$NTR))/sd(datatotal$NTR)
datatotal$I.NDVI<-(datatotal$I.NDVI-mean(datatotal$I.NDVI))/sd(datatotal$I.NDVI)


#####Calculating indices of multifunctionality (M5: 5 functions)
colnames(datatotal)
M5<-rowMeans(datatotal[,c(20,21,22,23,24)])
datatotal<-cbind(datatotal,M5)


#####Log-transfromation of multifunctionality
logM5<-log(datatotal$M5-min(datatotal$M5)+1)
datatotal<-cbind(datatotal,logM5)

加載 MuMIn這個包做模型選擇

代碼是

library(MuMIn)
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)
# 這一步要好長時間
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"))

subset(dd12,delta<2)
de12<-model.avg(dd12, subset = delta < 2)
summary(de12)
image.png

image.png

這一步得到的數(shù)據(jù)就是論文中 的figure4a

image.png

下期推文介紹如何利用得到的數(shù)據(jù)畫圖

這里遇到的問題是:

  • 1账月、 模型里有的變量會用I()函數(shù)包起來综膀,這個函數(shù)起到什么作用呢?
  • 2局齿、模型選擇那一步用到了dc()函數(shù)僧须,這個函數(shù)又起到什么作用呢?

今天的內容就到這里了

歡迎大家關注我的公眾號
小明的數(shù)據(jù)分析筆記本

小明的數(shù)據(jù)分析筆記本 公眾號 主要分享:1项炼、R語言和python做數(shù)據(jù)分析和數(shù)據(jù)可視化的簡單小例子担平;2、園藝植物相關轉錄組學锭部、基因組學暂论、群體遺傳學文獻閱讀筆記;3拌禾、生物信息學入門學習資料及自己的學習筆記取胎!

今天的內容主要參考

  • 公眾號 二傻統(tǒng)計 的推文 一種簡單易行的方差分解方法
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市湃窍,隨后出現(xiàn)的幾起案子闻蛀,更是在濱河造成了極大的恐慌,老刑警劉巖您市,帶你破解...
    沈念sama閱讀 221,695評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件觉痛,死亡現(xiàn)場離奇詭異,居然都是意外死亡茵休,警方通過查閱死者的電腦和手機薪棒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評論 3 399
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來榕莺,“玉大人俐芯,你說我怎么就攤上這事《ぱ欤” “怎么了吧史?”我有些...
    開封第一講書人閱讀 168,130評論 0 360
  • 文/不壞的土叔 我叫張陵,是天一觀的道長唠雕。 經(jīng)常有香客問我贸营,道長,這世上最難降的妖魔是什么及塘? 我笑而不...
    開封第一講書人閱讀 59,648評論 1 297
  • 正文 為了忘掉前任莽使,我火速辦了婚禮,結果婚禮上笙僚,老公的妹妹穿的比我還像新娘芳肌。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 68,655評論 6 397
  • 文/花漫 我一把揭開白布亿笤。 她就那樣靜靜地躺著翎迁,像睡著了一般。 火紅的嫁衣襯著肌膚如雪净薛。 梳的紋絲不亂的頭發(fā)上汪榔,一...
    開封第一講書人閱讀 52,268評論 1 309
  • 那天,我揣著相機與錄音肃拜,去河邊找鬼痴腌。 笑死,一個胖子當著我的面吹牛燃领,可吹牛的內容都是我干的士聪。 我是一名探鬼主播,決...
    沈念sama閱讀 40,835評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼猛蔽,長吁一口氣:“原來是場噩夢啊……” “哼剥悟!你這毒婦竟也來了?” 一聲冷哼從身側響起曼库,我...
    開封第一講書人閱讀 39,740評論 0 276
  • 序言:老撾萬榮一對情侶失蹤区岗,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后毁枯,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體慈缔,經(jīng)...
    沈念sama閱讀 46,286評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 38,375評論 3 340
  • 正文 我和宋清朗相戀三年后众,在試婚紗的時候發(fā)現(xiàn)自己被綠了胀糜。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片颅拦。...
    茶點故事閱讀 40,505評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡蒂誉,死狀恐怖,靈堂內的尸體忽然破棺而出距帅,到底是詐尸還是另有隱情右锨,我是刑警寧澤,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布碌秸,位于F島的核電站绍移,受9級特大地震影響,放射性物質發(fā)生泄漏讥电。R本人自食惡果不足惜蹂窖,卻給世界環(huán)境...
    茶點故事閱讀 41,873評論 3 333
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望恩敌。 院中可真熱鬧瞬测,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,357評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至孝宗,卻和暖如春穷躁,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背因妇。 一陣腳步聲響...
    開封第一講書人閱讀 33,466評論 1 272
  • 我被黑心中介騙來泰國打工问潭, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人婚被。 一個月前我還...
    沈念sama閱讀 48,921評論 3 376
  • 正文 我出身青樓睦授,卻偏偏與公主長得像,于是被迫代替她去往敵國和親摔寨。 傳聞我的和親對象是個殘疾皇子去枷,可洞房花燭夜當晚...
    茶點故事閱讀 45,515評論 2 359

推薦閱讀更多精彩內容