郭弘藝+張旭光+邵露
摘要 耳石微化學分析是反演魚類生活史和推測環境污染等問題的關鍵技術。采用相關分析,分析微化學測定結果,雖可揭示元素間的相關性,但對于多元素而言,規律解讀困難,不具直觀性。采用cpairs()和pair()函數生成的散點圖矩陣,前者通過圖形底色和變量離對角線遠近表示變量間相關性高低,后者自動添加元素間的平滑擬合曲線,同時,將元素間相關系數數值標注圖形右上角,并以“*”“**”“***”分別表示元素間在0.05水平、0.001水平和0.001水平顯著相關。這2個函數在相關分析的基礎上,輸出結果更為直觀、可視。
關鍵詞 微化學 相關分析 cpairs函數 pair函數
一、引言魚類有三對耳石,分別稱之為矢耳石、微耳石和星耳石。魚類耳石具有代謝惰性,在魚類生長發育的過程中,水環境中的化學物質通過魚類鰓呼吸等方式進入血液,然后經過細胞遞減傳輸進入內淋巴結晶后,沉積在耳石上,微量元素一旦沉積,很難被機體再吸收,沉積在耳石中的信息是永久性的。已有研究證明,魚類的耳石中含有30多種元素。因此,耳石微化學分析是反演魚類生活史和推測環境污染等問題的關鍵技術。而長期以來,一般采用相關分析來揭示耳石中元素之間的相互關系。隨著R語言的發展,二維散點圖矩陣可以更直觀、可視的展示變量間的相關關系。本文通過實例介紹R語言中2個實用函數使用,即輸出圖形格式揭示耳石內元素的相關關系。
二、數據來源表1中為采用同步輻射X射線熒光分析( SRXRF )測定的16尾日本鰻鱺左側矢耳石內元素的含量。采用相關分析方法和R語言中的cparis()函數和pairs()函數函數分別對數據進行分析。
三、結果和分析
1.相關分析在R界面下,輸入命令:> cor(eel[c("Ca","Sr", "Ba", "Fe", "Mn", "Zn","Cr","Ni","Se","Co","Cu","Au")])。圖1為元素含量間相關分析結果,數值為相關系數,越是接近1,表明正相關性越高,而越是接近負1,表明負相關性越高。耳石內的Ca-Sr、Ca-Ba、Ca-Fe、Ca-Mn、Ca-Cr、Ca-Se、Ca-Co、Ca-Cu、Ca-Au元素間均為負相關,Ca-Ni、Ca-Zn間為正相關; Sr-Ca和Sr-Ba,以及Sr與鐵族元素V、Mn、Fe、Co、Ni,銅族元素Cu、Au間均為負相關,僅Sr-Se間為正相關;3)Ba-Ca,Ba-Sr、Ba-Se間為負相關,Ba與其他元素為正相關;4)鐵族元素(V、Fe、Co、Ni)間、銅族元素Cu-Au之間以及鐵族元素與鋅族元素Zn之間均為正相關。由此可見,相關分析可以得出元素之間的關系,但解讀多元素之間的關系,不夠直觀。
2.cpairs()函數在R界面下,輸入命令:> mydata1 <- eel[c(2,3,4,5,6,7,8,9,10,11,12,13)]> mydata1.corr <-abs(cor(mydata1))> mycolors <- dmat.color(mydata1.corr)> myorder <- order.single(mydata1.corr)>cpairs(mydata1,+ myorder,+ panel.colors=mycolors,+ gap=.5,+ main="Variables Ordered and Colored by Correlation",upper.panel=NULL)即生成圖2。Cpair()函數是在相關分析結果的基礎上,計算耳石內元素相關系數的絕對值,并對相關系數的絕對值排序,排序的基礎是相關系數的相似性,最后散點矩陣根據排序順序繪圖,并用紅色、藍色、黃色標出圖形底色用于表示變量的相似性遠近。可以直觀的看出,元素之間離對角線越近,相關性越高,如Fe-Au離主對角線最近,元素相關系數為0.96,相關性極高,底色標為了紅色;而Ca-Se離主對角線最遠,元素相關系數僅為-0.04,相關系極低,底色標為了黃色。由此可見,Cpair()函數的圖形輸出結果,可通過顏色和元素離主對角線的位置,直觀可視的展示耳石內多元素間的關系。
3.pairs()函數在R界面下,輸入命令:> panel.cor <- function(x, y, method="pearson", digits=3, cex.cor=1.2, no.col=FALSE){ usr <- par("usr"); on.exit(par(usr))par(usr = c(0, 1, 0, 1))r <- cor(x, y, method=method)ra <- cor.test(x, y, method=method)$p.valuetxt <- round(r, digits)prefix <- ""if(ra <= 0.1) prefix <- "."if(ra <= 0.05) prefix <- "*"if(ra <= 0.01) prefix <- "**"if(ra <= 0.001) prefix <- "***"if(no.col) { color <- 1if(r < 0) { if(ra <= 0.001) sig <- 4 else sig <- 3 }else { if(ra <= 0.001) sig <- 2 else sig <- 1 } }else{ sig <- 1if(ra <= 0.001) sig <- 2color <- 2if(r < 0) color <- 4}txt <- paste(txt, prefix, sep="\\n")text(0.5, 0.5, txt, cex = cex.cor, font=sig, col=color)> eel.pearson<-cor(eel)> round(eel.pearson,2)> dj.o<-order.single(eel.pearson)> op<-par(mfrow=c(1,1), pty="s")> pairs(eel[,eel.o],lower.panel=panel.smooth,upper.panel=panel.cor,main="Scatter plot Matrix")> par(op)即生成圖3。pair()函數生成的散點圖矩陣中,元素間的平滑擬合曲線被默認添加,同時,右上角生產2元素間相關分析系數數值,數值標為紅色表明元素間為正相關,數值標為藍色表明元素間為負相關。在相關系數數值下方,元素間如在0.001水平顯著相關,添加“***”;在0.01水平顯著相關,添加“**”;在0.05水平顯著相關,則添加“*”。由此可見,pair()函數的圖形輸出結果,不僅直觀顯示雙元素間的線性擬合關系,同時,將相關系數以不用的顏色和標記添加在圖上,結果直觀可視。
四、結論
綜上而言,采用相關分析分析微化學測定結果,雖可揭示元素間的相關性,但對于多元素而言,規律解讀困難,不具直觀性。與之相比,采用R軟件中的cpairs()和pair()函數生成的散點圖矩陣,在相關分析的基礎上,輸出結果更為直觀、可視,可較好地展示微化學結果。
參考文獻:
[1]張亞,郭弘藝,唐文喬.長江口日本鰻鱺幼體矢耳石元素的SRXRF分析[J].上海海洋大學學報,2013,(6):821-827.
[2]Daniel B,Franois G著.賴江山譯.數量生態學—R語言的應用[M].高等教育出版社.
[3]Robert I K著.高濤,肖楠,陳剛譯. R語言實戰[M].人民郵電出版社.endprint