數據的正態性檢驗
檢查數據是否滿足正態分布,一個很直觀的方法是考察數據的正態概率圖和QQ圖。在MATLAB中可以很容易實現。
正態概率圖(normal probability plot)
用於檢查一組數據是否服從正態分布。是實數與正態分布數據之間函數關系的散點圖。如果這組實數服從正態分布,正態概率圖將是一條直線。通常,概率圖也可以用於確定一組數據是否服從任一已知分布,如二項分布或泊松分布。概率圖展示的是樣本的累積頻率分布與理論正態分布的累積概率分布之間的關系。如果圖中各點為直線或接近直線,則樣本的正態分布假設可以接受。
MATLAB實現
normplot(x)
QQ-plot圖
同理,任意兩個數據集都可以通過比較來判斷是否服從同一分布。計算每個分布的分位數。一個數據集對應x軸,另一個對應y軸。做一條45度參考線,如果兩個數據集數據來自同一分布,則這些點會落在參照線附近。
在matlab中畫QQ圖使用的函數就是qqplot
qqplot(x)
The analysis of the AR(1) model residuals (Figure 71) shows that the residuals are normally distributed, zero centered and with a standard deviation equal to 0.764 °C.
2019/5/27續。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
之前看論文看到數據的正態性檢驗,不知道為啥這樣能檢驗正態性。這個好像是Q-Q plot圖。
轉自:http://www.genedenovo.com/news/391.html
那么QQ plot到底是做什么比較呢?它比較的是P value觀測值(Y軸)和p value期望值的一致性,在GWAS分析的文獻中幾乎總是和曼哈頓圖同時出現。什么是P value期望值,還需要從統計學講起。

圖1 神似的QQ plot和樣本重復性散點圖
(1)P value的期望值分布
在統計檢驗中,P value代表的是我們觀測值偏離期望值的概率。例如,假設觀測值符合標准正態分布(即期望值為0,方差為1),那么我們觀測值≥1的概率是多少?應該是15.9%。這就是標准正態分布下的離群概率。當我們觀測次數越大,出現極端觀測值(偏離期望值更加劇烈)的概率也越大。例如,在標准正態分布下,觀測值≥3的概率約為0.14%(概率更小,需要更多的觀測次數才易於出現)。
圖2 標准正態分布下的離群概率分布
換個直觀的說法就是:如果真實值是0,我們觀測的時候總會有一定的概率犯錯。而且檢測次數多了,就越可能觀測到偏離真實值非常離譜的數值。如果觀測1000次,那應該會獲得1000個觀測值,那么這些觀測值的分布就應該符合圖2的正態分布。
如果這1000個觀測值符合正態分布,那么這1000個觀測值對應的離群概率(p value)符合什么分布呢?應該符合均勻分布(Uniform Distribution),即P value分布在0~1之間的各個區段的概率是相同的。如圖3,P value在0~0.1和0.9~1都是100次,概率是相同的。
圖3 P value值符合均勻分布
實際上,對於大部分統計方法,P value應該都符合以上的均勻分布。即,如果我們的數值符合某一種統計模型,那么當我們統計若干次后,得到的P value的分布是可以預期的,其應該符合均勻分布——這就是P value的期望分布。
(2)QQ plot的圖形解讀
如同上文我們提到的,QQ plot也是兩組數值的比較。這兩組數值分布是期望的P value和觀測到的P value。如果我們的統計模型正確,兩組P value值應該是一致的。那么,兩組值(取-log10)從小到大排列后繪制在散點圖上,所有點應該位於45°對角線上——這與RNA-seq的重復性散點圖是相似的。所以QQ plot的直觀解讀就是:判斷圖形中點的分布是否合理(是否位於對角線上),進而推斷目前的統計模型獲得的P 值是否符合期望值以及統計模型是否合理。
那么QQ-plot在GWAS分析結果中有什么應用呢?下面我們舉幾個例子來解釋這個問題。
圖4 GWAS分析中常出現的QQ plot的四種情況
圖4中的四種QQ plot涵蓋了GWAS 分析結果中常見的結果,我們分別來一一解讀。
圖4(a)中,p value觀察值和期望值相同,說明分析模型是合理的。但所有的P value觀測值都沒有明顯超過期望值,說明分析結果沒有找到(與性狀)顯著關聯的位點,可能原因包括:性狀由微效多基因控制,效應太弱;群體大小不夠等,這里先不展開詳述。
圖4(b)是我們最期望看到的結果類型。在散點圖的左下角是顯著性低的位點,即確定與性狀不關聯的位點,這些位點的P value觀測值應該與期望值一致。而圖中這些點的確位於對角線上,說明分析模型是合理的。而在圖形的右上角則是顯著性較高的位點,是潛在與性狀相關的候選位點。這些點位於對角線的上方,即位點的P value觀測值超過了期望值,說明這些位點的效應超過了隨機效應,進而說明這些位點是與性狀顯著相關的。小結了一下:這個圖形的左下角說明了模型的合理性,右上角則說明找了關聯位點,所以這是最理想的結果。(備注:在有顯著關聯位點的情況下,結合曼哈頓圖進行展示,會更加醒目)
圖4(c)是大部分點位於對角線的下方,則說明大部分位點的P value觀察值小於期望值。主要原因包括兩種情況:(1)模型不合理,P value被過度校正,導致P value顯著性過低;(2)群體中大量SNP位點間存在連鎖不平衡,有效位點數(相互間不存在連鎖不平衡的位點)明顯低於實際位點數,所以P value的期望值被低估了(即期望值的-log10(P value)被高估了),也會出現這種情況。
圖4(d),則相反:大部分點位於對角線的上方,則說明大部分位點的P value觀察值超過期望值。按照統計學的邏輯推導,就是大部分位點與某個性狀顯著相關。這顯然是不符合生物學邏輯的,那么這只有一種可能:分析模型不合理,數據的假陽性過大,P value觀測值的顯著性被高估了。
凡是出現圖4(c)和圖4(d)的情況,則需要檢查分析模型是否有問題,群體中是否有某些干擾因素沒被考慮到分析模型中(例如,群體結構、系譜關系、性別等),在重建分析模型后重新分析。
在某些文章中,會將各種模型的分析結果的P value畫在一張QQ plot中,然后比較哪種模型更加合理。例如圖5(a)的QQ plot中,我們可以推斷:K模型和Q+K模型是合理的,但GLM和Q模型則存在過於嚴重的假陽性。
圖5 不同模型分析結果合並繪制QQ plot進行比較
更多關於GWAS分析原理,模型中包含的因素以及以上圖形更詳細的解讀,可以參考Omicshare課堂的主題帖:
《第9期在線交流“全基因組關聯分析(GWAS)技術交流”【視頻】》 http://www.omicshare.com/forum/thread-130-1-12.html
(3)QQ plot的繪制
QQ plot的繪制,同樣使用R語言可以輕松繪制。在上一期推薦的繪制曼哈頓圖的R包”qqman”同樣可以繪制QQ plot。如果你想繪制QQ plot,只要登錄Omicshare論壇,查看之前的主題帖,就可以查看QQ plot的繪制方法:
《GWAS結果曼哈頓圖的畫法》 http://www.omicshare.com/forum/thread-1039-1-12.html
在另一篇主題帖中,我們也解釋了不用R包直接繪制QQ plot的方法。在這個帖子中,我們為了區分不同類型的正態性檢驗圖形,將常見QQ plot稱為PP plot(這個命名也是對的)。在帖子最后,就有另一種QQ plot的畫法。
《數據正態性檢驗的方法》 http://www.omicshare.com/forum/thread-790-1-12.html
最后,補充一句:懂點R語言還是好的。如果你從來沒有學過,也可以閱讀這個視頻,半天就入門了:
《第12期在線交流 R語言入門——軟件簡介與實操【視頻】》 http://www.omicshare.com/forum/thread-133-1-12.html
正態QQ圖的原理
轉自:https://www.cnblogs.com/shangfr/p/4982777.html
正態QQ圖的原理
QQ圖通過把測試樣本數據的分位數與已知分布相比較,從而來檢驗數據的分布情況。QQ圖是一種散點圖,對應於正態分布的QQ圖,就是由標准正態分布的分位數為橫坐標,樣本值為縱坐標的散點圖。要利用QQ圖鑒別樣本數據是否近似於正態分布,只需看QQ圖上的點是否近似地在一條直線附近,圖形是直線說明是正態分布,而且該直線的斜率為標准差,截距為均值,用QQ圖還可獲得樣本偏度和峰度的粗略信息。圖形中有一段是直線,在兩端存在弧度,則可說明峰度的情況。圖形是曲線圖,說明不對稱。如果Q-Q圖是直線,當該直線成45度角並穿過原點時,說明分布與給定的正態分布完全一樣。如果是成45度角但不穿過原點,說明均值與給定的正態分布不同,如果是直線但不是45度角,說明均值與方差都與給定的分布不同。如果Q-Q圖中間部分是直線,但是右邊在直線下面,左邊在直線上面,說明分布的峰度大於3,反之說明峰度小於3;圖形是曲線圖,說明不對稱。
分位數(quantile fractile)又稱百分位點,或者下側分位數。 定義:設連續隨機變量X的分布函數為F(X),密度函數為p(x)。那么,對任意0<p<1的p,稱F(X)=p的x為此分布的分位數,或者下側分位數。簡單的說,分位數指的就是連續分布函數中的一個點,這個點對應概率p。
R語言模擬
rd=rnorm(100) plot(density(rd),main = "正態隨機變量概率密度",lwd=2) points(rd,rep(0.01,100),pch=20,col=rainbow(100))
通過上圖可以看出,產生的100個隨機數多數集中在[-1,1]之間,且均值為0。
t=rank(rd)/100 #求觀察累積概率 q=qnorm(t) #用累積概率求分位數值 plot(rd,q,main = "Q-Q圖",pch=20,col=rainbow(100)) #畫Q-Q圖 abline(0,1,lwd=2)
第二次模擬1000個隨機數
n=1000 rd=rnorm(n) plot(density(rd),main = "正態隨機變量概率密度",lwd=2) points(rd,rep(0.01,n),pch=20,col=rainbow(n))
t=rank(rd)/n #求觀察累積概率 q=qnorm(t) #用累積概率求分位數值 plot(rd,q,main = "Q-Q圖",pch=20,col=rainbow(n)) #畫Q-Q圖 abline(0,1,lwd=2)
第三次模擬5000個隨機數
n=2000 rd=rnorm(n) plot(density(rd),main = "正態隨機變量概率密度",lwd=2) points(rd,rep(0.01,n),pch=20,col=rainbow(n))
t=rank(rd)/n #求觀察累積概率 q=qnorm(t) #用累積概率求分位數值 plot(rd,q,main = "Q-Q圖",pch=20,col=rainbow(n)) #畫Q-Q圖 abline(0,1,lwd=2)
可見,通過QQ圖可以看出,樣本值越大,隨機數的分布狀態越近似於正態分布。