馴服偏斜…為什麼有這麼多偏斜函數?
我希望對這個社區的四種偏差有更多的了解。
我所指的類型在http://www.inside-r.org/packages/cran/e1071/docs/skewness幫助頁面中有所提及。
幫助頁面中沒有提到舊方法,但我仍然將其包含在內。
require(moments) require(e1071) x=rnorm(100) n=length(x) hist(x) ###############type=1 e1071::skewness(x,type=1) sqrt(n) * sum((x-mean(x))^3)/(sum((x - mean(x))^2)^(3/2)) #from e1071::skewness source m_r=function(x,r) {n=length(x); sum((x - mean(x))^r/n);} ##from e1071::skewness help g_1=function(x) m_r(x,3)/m_r(x,2)^(3/2) g_1(x) ##from e1071::skewness help moments::skewness(x) ##from e1071::skewness help (sum((x - mean(x))^3)/n)/(sum((x - mean(x))^2)/n)^(3/2) ##from moments::skewness code, exactly as skewness help page ###############type=2 e1071::skewness(x,type=2) e1071::skewness(x,type=1) * sqrt(n * (n - 1))/(n - 2) #from e1071::skewness source G_1=function(x) {n=length(x); g_1(x)*sqrt(n*(n-1))/(n-2);} #from e1071::help G_1(x) excel.skew=function(x) { n=length(x); return(n/((n-1)*(n-2))*sum(((x-mean(x))/sd(x))^3));} excel.skew(x) ###############type=3 e1071::skewness(x,type=3) e1071::skewness(x,type=1) * ((1 - 1/n))^(3/2) #from e1071::skewness source b_1=function(x) {n=length(x); g_1(x)*((n-1)/n)^(3/2); } #from e1071::skewness help page b_1(x); prof.skew=function(x) sum((x-mean(x))^3)/(length(x)*sd(x)^3); prof.skew(x) ###############very old method that fails in weird cases (3*mean(x)-median(x))/sd(x) #I found this to fail on certain data sets as well...
這是 e1071 的作者參考的論文:http: //onlinelibrary.wiley.com/doi/10.1111/1467-9884.00122/pdf Joanes 和 CA Gill (1998),Comparing measure of sample skewness and kurtosis。
根據我對那篇論文的閱讀,他們認為類型 #3 的錯誤最少。
以下是上述代碼中偏度的示例:
e1071::skewness(x,type=1) -0.1620332 e1071::skewness(x,type=2) -0.1645113 e1071::skewness(x,type=3) -0.1596088 #old type: 0.2694532
我也注意到e1071的作者寫的skew函數和幫助頁面的註釋不同。注意 sqrt:
sqrt(n) * sum((x-mean(x))^3)/(sum((x - mean(x))^2)^(3/2)) #from e1071::skewness source (sum((x - mean(x))^3)/n)/(sum((x - mean(x))^2)/n)^(3/2) #from moments and e1071 help page
任何想法為什麼 sqrt(n) 在第一個等式中?哪個方程更好地處理上溢/下溢?任何其他想法為什麼它們不同(但產生相同的結果)?
讓我們從您描述為“舊方法”的那個開始;這是第二個 Pearson 偏度或中值偏度;事實上,矩偏度和那大致相同的年份(中值偏度實際上有點年輕,因為矩偏度先於 Pearson 的努力)。
可以在這裡找到對一些歷史的一些討論;該帖子還可能對您的其他幾個問題有所了解。
如果您使用第二個 Pearson 偏度搜索我們的網站,您會看到相當多的帖子,其中包含對該測量行為的一些討論。
這並不比我腦海中的偏度測量值更奇怪。他們有時都會做一些奇怪的事情,這些事情與人們對偏度度量的期望不符。
通常的形式在此處的 Wikipedia 中進行了討論;正如它所說,它是一種矩估計方法,並且根據標準化的第三矩進行總體計算,使用它是一種自然的事情。
如果一個使用為了(即沒有貝塞爾校正)你得到你提到的類型;其中任何一個都是我所說的“時刻方法”。我不清楚嘗試消除分母的偏差有多大意義,因為這不一定消除比率的偏差;這樣做可能是有意義的,以便計算與人們可能期望手動執行的操作相匹配。
但是,還有第二種(等效)方法來定義人口偏度,根據累積量(參見上面的維基百科鏈接),如果對於樣本偏度,您使用了這些的無偏估計,您會得到.
[進一步注意,將分子乘以經過消除偏見,因此這可能是人們看待這種形式的另一個原因。如果嘗試對三階矩和二階矩的計算都進行去偏,則會得到一個稍微不同的因子和從前面出來。]
所有這三個只是第三矩偏度的略微不同的變化。在非常大的樣本中,您使用的確實沒有區別。在較小的樣本中,它們的偏差和方差都略有不同。
這裡討論的形式並沒有窮盡偏度的定義(我認為我已經看到了大約十幾個 -維基百科文章列出了很多,但即使這樣也沒有涵蓋所有範圍),甚至沒有與第三個相關的定義-矩偏度,我看到的比你在這裡提出的三個還要多。
為什麼有很多偏度度量?
那麼(暫時將所有這些第三時刻的偏度視為一個)為什麼會有這麼多不同的偏度?部分原因是偏度作為一個概念實際上很難確定。這是一件很棘手的事情,您無法真正確定一個數字。結果,所有定義在某種程度上都不夠充分,但通常符合我們對偏度測量應該做什麼的廣義理解。人們一直試圖提出更好的定義,但舊的措施,如 QWERTY 鍵盤,並沒有去任何地方。
為什麼有幾個基於第三時刻的偏度度量?
至於為什麼會有如此多的三階矩偏度,這僅僅是因為將總體測量值轉換為樣本測量值的方法不止一種。我們看到了兩條基於矩的路線和一條基於累積量的路線。我們還可以建造更多;例如,我們可能會嘗試在某些分佈假設下獲得(小樣本)無偏測量,或最小均方誤差測量或其他類似數量。
您可能會在網站上發現一些與偏度相關的帖子;有一些展示了非對稱但三階矩偏度為零的分佈示例。有一些顯示 Pearson 中值偏度和三階矩偏度可能有相反的跡象。
以下是一些與偏度相關的帖子的鏈接:
關於你關於計算的最後一個問題:
#from e1071::skewness source
#from 時刻和 e1071 幫助頁面
這兩種形式在代數上是相同的;第二個清楚地寫成“第三個時刻在第二個權力時刻”的形式,而第一個只是抵消了把剩菜放在前面。我不認為這樣做是為了避免上溢/下溢;我想它已經完成了,因為它被認為要快一點。[如果溢出或下溢是一個問題,可能會以不同的方式安排計算。]