數據標準化方法:該如何選擇?

原文鏈接:

數據標準化方法:該如何選擇?

什么是數據標準化?

在微生物組學數據分析之前,我們常常需要根據數據量綱的不同以及分析方法的需要對數據進行各種預處理,也即數據標準化。數據標準化的目的是使數據的總體符合某種要求,例如使數據總體符合正態分布以方便參數檢驗、使數據范圍相同以方便比較分析、使數據分布均勻以方便作圖展示等。我們必須知道不同標準化方法的內涵,從而在實際研究中可以選擇正確的數據標準化方法。

首先我們介紹一下數據轉換。簡單數據轉換也即對整體數據進行簡單運算,數據轉換的目的主要有三個,一是改變數據結構,例如非線性通過平方根、對數轉換為線性;二是改變數據范圍,便于比較和作圖分析,例如數據變化特別大的可以進行對數轉換來縮小屬性范圍;三是改變數據分布,使得樣本偏離標準分布太遠的更加接近標準分布(例如正態分布)。常見的數據轉換有以下幾種:

對數轉換:將數據(樣本觀察值)取自然對數(或者其他數為底的對數),可以使用log()函數來實現(log1p()可以將數據加1后取自然對數)。若是數據中有0或負值,可以全部數據加上一個數轉換為正數。一般來說自然對數轉換可以使0~1范圍內的數據范圍變大,可以使>1范圍內數據范圍變緊湊。

平方根轉換:將數據全部取平方根,可以使用sqrt(x)或者x^0.5來實現。類似的還有立方根轉換、四次方根轉換,偶數次方根要求數據非負。如果數據結構為二次關系,平方根轉換后平方根轉換可以使數據范圍變小。

倒數轉換:將數據全部取倒數,也即1/x,倒數轉換使0~1范圍內的數據范圍變大,使>1范圍內數據范圍變緊湊,而且轉換后數據為倒序。

數據轉換僅僅是對數據中每個觀察值的獨立處理,而標準化則涉及到數值之間的處理。下面我們以生態學常用的vegan包中的decostand()函數為例,分析不同標準化方法的差別,此函數使用方法如下:

decostand(x, method, MARGIN, range.global, logbase = 2, na.rm=FALSE, ...)

其中x為向量或矩陣,method為標準化方法,MARGIN=1按行處理,MARGIN=2按列處理,不同標準化方法介紹如下:

①method="pa",將數據轉換為有-無(1-0)類型,若分析不加權的情況群結構下可以使用;

②method="max",最大值標準化,將數據除以該行或者列的最大值(defaultMARGIN=2)。若數據非負,最大值標準化后數據全部位于0到1之間。

③method="total",總和標準化,將數據除以該行或者列的總和,也即求相對豐度(default MARGIN=1),總和標準化后數據全部位于0到1之間。

④method="range",Min-max標準化,將數據減去該行或者列的最小值,并比上最大值與最小值之差(defaultMARGIN=2),Min-max標準化后的數據全部位于0到1之間。

⑤method="normalize",模標準化,將數據除以每行或者每列的平方和的平方根(default MARGIN=1),模標準化后每行、列的平方和為1(向量的模為1),也即在笛卡爾坐標系中到原點的歐氏距離為1,樣品分布在一個圓弧上,彼此之間的距離為弦長,因此也稱為弦轉化。在基于歐氏距離的PCARDA中分析群落數據可以將每個樣方弦轉化可以彌補歐氏距離的缺陷。弦轉化后的數據使用歐氏距離函數計算將得到弦距離矩陣

⑥method="hellinger",hellinger轉化,就是總和標準化數據的平方根(default MARGIN=1),hellinger轉化后的數據使用歐氏距離函數計算將得到hellinger距離矩陣

⑦method="chi.square",卡方轉化,在默認(defaultMARGIN=1)的情況下是數據除以行的和再除以列的和的平方根,卡方轉化后的數據使用歐氏距離函數計算將得到卡方距離矩陣

⑧Wisconsin轉化,這個是使用伴隨的函數wisconsin(),將數據除以該列最大值再除以該行總和,是最大值標準化和總和標準化的結合。

⑨method="standardize",z-score標準化,最常用的標準化方法之一,將數據減去均值比上標準差(default MARGIN=2),z-score標準化后數據均值為0,方差為1,服從正態總體的數據標準化后服從標準正態分布。z-score標準化可以去除不同環境因子量綱的影響。

一般情況下,上面方法中默認MARGIN=1是默認對樣品進行處理,默認MARGIN=2是默認對物種或者環境變量進行處理。

為了比較不同標準化方法對群落數據的影響,我們使用只有兩個物種的虛擬群落進行處理,然后在笛卡爾坐標系進行展示(彼此之間是歐氏距離):

#假設虛擬數據:2個物種在5個樣方的分布

spe1=c(0.1,0.2,0.3,0.4,0.5)

spe2=c(0.6,0.7,0.8,0.9,1)

ab=cbind(spe1,spe2)

rownames(ab)=LETTERS[1:5]

#各種標準化

ab1=decostand(ab, MARGIN=1, "total")

ab2=decostand(ab, MARGIN=1, "normalize")

ab3=decostand(ab, MARGIN=1, "hellinger")

ab4=decostand(ab, MARGIN=1, "chi.square")

ab5=wisconsin(ab)

#作圖觀察不同標準化方法距離差異

par(mfrow=c(2,3))

plot(ab[,1], ab[,2], xlim=0:1, ylim=0:1, main="Rawdata")

text(ab[,1], ab[,2]-0.05, labels=rownames(ab), cex=1.2)

plot(ab1[,1], ab1[,2], xlim=0:1, ylim=0:1, main="Total")

text(ab1[,1], ab1[,2]-0.05, labels=rownames(ab), cex=1.2)

plot(ab2[,1], ab2[,2], xlim=0:1, ylim=0:1,main="Normalize")

text(ab2[,1], ab2[,2]-0.05, labels=rownames(ab), cex=1.2)

plot(ab3[,1], ab3[,2], xlim=0:1, ylim=0:1,main="Hellinger")

text(ab3[,1], ab3[,2]-0.05, labels=rownames(ab), cex=1.2)

plot(ab4[,1], ab4[,2], xlim=0:1, ylim=0:1,main="Chi.square")

text(ab4[,1], ab4[,2]-0.05, labels=rownames(ab), cex=1.2)

plot(ab5[,1], ab5[,2], xlim=0:1, ylim=0:1,main="Wisconsin")

text(ab5[,1], ab5[,2]-0.05, labels=rownames(ab), cex=1.2)

結果如下所示:

在沒有處理的情況下,群落之間的歐氏距離相等,然而在生態學方面我們不這么看,因為B中物種1的數量是A的兩倍,其群落差異顯然比D、E更大,五種處理方法標準化數據后的結果都比較好的證實了上面的猜想,尤其是最后兩種。然而在微生物生態中,我們傾向于認為微生物群落是一個整體,不同樣品之間物種的相對豐度是有可比較的實際意義的,因此最常用的就是總和標準化(當然在不涉及豐度比較的聚類和排序分析中各種標準化方法都可以嘗試,在傳統群落研究里,雖然經常使用中心化等方法,但是需要使用蓋度等對不同物種進行加權,因此直接進行總和標準化從某種意義上是使用相對豐度進行加權)。

對于物理、化學變量而言,則完全不同,因為環境變量的值具有絕對性,例如溫度1-2℃和21-22℃其差異是一樣的。環境變量由于量綱不同,在計算距離矩陣(歐氏距離)、根據特征根提取的主成分分析、比較系數的回歸分析之前,均需要進行z-score標準化。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,505評論 6 533
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,556評論 3 418
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,463評論 0 376
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,009評論 1 312
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,778評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,218評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,281評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,436評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,969評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,795評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,993評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,537評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,229評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,659評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,917評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,687評論 3 392
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,990評論 2 374

推薦閱讀更多精彩內容