Maximum-Likelihood

為什麼最大似然估計量對異常值是可疑的?

  • October 5, 2021

我是統計新手,目前正在學習 abot MLE。

我讀過的一些論文:Robust Graph Embedding with Noisy Link Weights提到 MLE 可能會污染數據,但沒有進一步提及。

因此,我想通過清晰詳細的解釋來了解其原因。

測量並不總是顯示理想的行為,並且用於最大似然估計 (MLE) 的假定基礎分佈通常不是測量的分佈。

測量不理想

例如,在上圖中,測量值的分佈是兩個高斯分佈 25%的混合 $ \sigma = 10 $ 和 75% $ \sigma = 1 $ .

(所以無論出於何種原因分佈不理想,要么是因為人口不理想,要么是因為測量不完美)

這個變化很大的分量會大大增加估計器的抽樣方差(和不准確/誤差)。

與其使用 MLE(在簡單的情況下,如估計總體的平均值,歸結為樣本的平均值/平均值),人們可以使用從樣本中過濾一些極值的統計量。這將大大減少統計量的變化。然後,這種替代統計對異常值更穩健,對分佈中具有極值的小部分更穩健,如果它們沒有得到“照顧”,則會增加方差。

具有上述分佈的示例。讓我們考慮一個大小為 10 的樣本,我們將 MLE 計算為樣本的平均值,而替代方案只考慮中間 6 個值的平均值。讓我們看看它們在分佈/錯誤方面有何不同:

差異證明

### function to compute estimate in two different ways
get_sample = function() {
 ### geneare data
 n = 10
 sigma = 10^rbinom(n,1,0.25) ### mixture distribution 0.25 
         ### part sigma = 10 and 0.75 part sigma = 1 
 x = rnorm(n,0,sigma)
 
 ### compute estimates
 est1 = mean(x)
 est2 = mean(x[order(x)][3:8]) ### use only values 3 to 8 
                               ### (deleting outer 20%)
 return(c(est1,est2))
}

### compute the estimates
set.seed(1)
x <- replicate(10^4,get_sample()) 

### plot the histograms
layout(matrix(1:2,2))
hist(x[1,], breaks = seq(-10,10,0.1), xlim = c(-6,6), 
           freq = 0, xlab = "estimator value", main =  
           "distribution of estimated based on sample mean")
hist(x[2,], breaks = seq(-10,10,0.1), xlim = c(-6,6), 
       freq = 0, xlab = "estimator value", 
       main = "distribution of estimator based on mean of 6 
middle values ")

如果理想條件為真,MLE 通常是具有最低方差或充分執行的估計量。但是,當假設的分佈(這種低方差陳述所基於的)僅受到輕微擾動(但具有較大的值)時,這可能已經導致 MLE 的方差很大。

注意 1:這還取決於您擁有的 MLE 類型。例如,當我們估計一個分佈的均值並且該分佈是高斯分佈時,MLE 就是樣本的均值,正如您在上面的示例中看到的,均值對於小擾動不是很穩健。但是當分佈是拉普拉斯分佈時,MLE 是樣本的中值,這將對小擾動更加穩健。

注 2:在上面的示例中,我們只是從樣本中排除了底部和頂部 20%。但穩健的估計器並不是那麼簡單。這是一個複雜而龐大的領域。例如,如果我們只有正異常值,那麼我們丟棄底部部分會使估計有偏差怎麼辦?我們應該丟棄多少?構建一個健壯的估計器有很多考慮因素(有時它有點藝術而不是科學,但這個例子展示了它為什麼通常有效的想法)。

引用自:https://stats.stackexchange.com/questions/547052

comments powered by Disqus