為什麼算術平均值小於對數正態分佈中的分佈平均值?
所以,我有一個隨機過程生成對數正態分佈的隨機變量. 這是相應的概率密度函數:
我想估計原始分佈的幾個矩的分佈,比如說第一個矩:算術平均值。為此,我繪製了 100 個隨機變量 10000 次,以便計算算術平均值的 10000 個估計值。
估計該平均值有兩種不同的方法(至少,這是我的理解:我可能是錯的):
- 通過以通常的方式簡單地計算算術平均值:
- 或通過首先估計和從基礎正態分佈:然後平均值為
問題在於,與這些估計值對應的分佈在系統上是不同的:
“普通”平均值(表示為紅色虛線)提供的值通常低於從指數形式(綠色普通線)得出的值。儘管這兩種方法都是在完全相同的數據集上計算的。請注意,這種差異是系統性的。
為什麼這些分佈不相等?
您要比較的兩個估計器是矩估計器 (1.) 和 MLE (2.) 的方法,請參見此處。兩者都是一致的(所以對於大, 它們在某種意義上很可能接近真實值).
對於 MM 估計器,這是大數定律的直接結果,它表示 . 對於 MLE,連續映射定理意味著
作為和. 然而,MLE 並非沒有偏見。
事實上,Jensen 不等式告訴我們,對於小,預計 MLE 會向上偏置(另請參見下面的模擬):和是(在後一種情況下,幾乎,但對, 因為無偏估計量除以) 眾所周知是正態分佈參數的無偏估計量和(我用帽子來表示估計者)。
因此,. 由於指數是一個凸函數,這意味著
嘗試增加到更大的數字,這應該使兩個分佈都圍繞真實值。
請參閱此蒙特卡洛插圖在 R 中:
創建於:
N <- 1000 reps <- 10000 mu <- 3 sigma <- 1.5 mm <- mle <- rep(NA,reps) for (i in 1:reps){ X <- rlnorm(N, meanlog = mu, sdlog = sigma) mm[i] <- mean(X) normmean <- mean(log(X)) normvar <- (N-1)/N*var(log(X)) mle[i] <- exp(normmean+normvar/2) } plot(density(mm),col="green",lwd=2) truemean <- exp(mu+1/2*sigma^2) abline(v=truemean,lty=2) lines(density(mle),col="red",lwd=2,lty=2) > truemean [1] 61.86781 > mean(mm) [1] 61.97504 > mean(mle) [1] 61.98256
我們注意到,雖然兩種分佈現在(或多或少)都以真實值為中心,通常情況下,MLE 效率更高。
通過比較漸近方差,我們確實可以明確地表明必須如此。這個非常好的 CV 答案告訴我們 MLE 的漸近方差是
而 MM 估計量,通過將 CLT 直接應用於樣本平均值,是對數正態分佈的方差,
第二個比第一個大,因為
作為和. 看到 MLE 確實偏向於小,我重複模擬
N <- c(50,100,200,500,1000,2000,3000,5000)
和 50,000 次重複,並獲得如下模擬偏差:我們看到 MLE 確實嚴重偏向於小. 我對 MM 估計器的偏差作為. 小的模擬偏差for MM 可能是由異常值引起的,這些異常值對未記錄的 MM 估計量的影響比對 MLE 的影響更大。在一次模擬運行中,最大的估計結果是
> tail(sort(mm)) [1] 336.7619 356.6176 369.3869 385.8879 413.1249 784.6867 > tail(sort(mle)) [1] 187.7215 205.1379 216.0167 222.8078 229.6142 259.8727