Це інтригуюча ідея, оскільки оцінювач стандартного відхилення виявляється менш чутливим до людей, що звикають, ніж звичайні підходи середньоквадратичного квадрату. Однак, я сумніваюся, цей оцінювач був опублікований. Три причини: це обчислювально неефективно, воно є упередженим, і навіть коли виправлення змінено, воно є статистично неефективним (але лише небагато). Це можна побачити за допомогою невеликого попереднього аналізу, тому давайте зробимо це спочатку, а потім зробимо висновки.
Аналіз
Оцінки ML середнього та стандартного відхилення на основі даних єσ ( x i , x j )μσ(xi,xj)
μ^(xi,xj)=xi+xj2
і
σ^(xi,xj)=|xi−xj|2.
Тому метод, описаний у питанні, є
μ^(x1,x2,…,xn)=2n(n−1)∑i>jxi+xj2=1n∑i=1nxi,
що є звичайним оцінювачем середнього, і
σ^(x1,x2,…,xn)=2n(n−1)∑i>j|xi−xj|2=1n(n−1)∑i,j|xi−xj|.
Очікуване значення цього оцінювача легко виявляється шляхом використання обмінних даних, що означає, що не залежить від та . ЗвідсиE=E(|xi−xj|)ij
E(σ^(x1,x2,…,xn))=1n(n−1)∑i,jE(|xi−xj|)=E.
Але оскільки і є незалежними нормальними змінними, їх різниця - нульова середня нормальна з дисперсією . Тому його абсолютне значення - раз a розподіл, середнє значення якого . Отжеxixj2σ22–√σχ(1)2/π−−−√
E=2π−−√σ.
Коефіцієнт - це зміщення в цьому оцінювачі.2/π−−√≈1.128
Таким же чином, але, маючи значно більше роботи, можна було б обчислити дисперсію , але - як ми побачимо - це навряд чи буде великим інтересом до цього, тому я просто оцінюю це за допомогою швидкого моделювання .σ^
Висновки
Оцінювач упереджений. має істотний постійний ухил приблизно + 13%. Це можна було виправити. У цьому прикладі з розміром вибірки на гістограмі нанесені як зміщені, так і виправлені зміщення оцінки. Похибка 13% очевидна.σ^n=20,000
Він обчислювально неефективний. Оскільки сума абсолютних значень,, не має алгебраїчного спрощення, його обчислення вимагає зусиль замість зусилля майже для будь-якого іншого оцінювача. Це масштабно погано, що робить його надмірно дорогим, коли перевищує або близько того. Наприклад, для обчислення попередньої цифри потрібно 45 секунд часу процесора та 8 ГБ оперативної пам’яті . (На інших платформах вимоги до оперативної пам’яті будуть значно меншими, можливо, за невеликих витрат у розрахунку.)∑i,j|xi−xj|O(n2)O(n)n10,000R
Це статистично неефективно. Для найкращого відображення розглянемо об'єктивну версію та порівняємо її з неупередженою версією або найменших квадратів, або максимальної оцінки ймовірності.
σ^OLS=(1n−1∑i=1n(xi−μ^)2)−−−−−−−−−−−−−−−−−−⎷(n−1)Γ((n−1)/2)2Γ(n/2).
R
Нижче код демонструє , що несмещенная версія оцінки в питанні дивно ефективна: через діапазон розмірів вибірок з до її дисперсії, як правило , приблизно від 1% до 2% більше , ніж дисперсія . Це означає, що ви повинні планувати сплачувати додаткові на 1% до 2% більше за зразки, щоб досягти будь-якого заданого рівня точності в оцінці .п = 300 σ O L S σn=3n=300σ^OLSσ
Після цього
Форма нагадує надійну і стійку оцінку Тейла-Сена - але замість того, щоб використовувати медіани абсолютних різниць, вона використовує їх засоби. Якщо мета полягає у тому, щоб мати оцінювач, стійкий до зовнішніх значень, або той, який є надійним для відхилень від припущення про нормальність, то використання медіани було б доцільніше. σ^
Код
sigma <- function(x) sum(abs(outer(x, x, '-'))) / (2*choose(length(x), 2))
#
# sigma is biased.
#
y <- rnorm(1e3) # Don't exceed 2E4 or so!
mu.hat <- mean(y)
sigma.hat <- sigma(y)
hist(y, freq=FALSE,
main="Biased (dotted red) and Unbiased (solid blue) Versions of the Estimator",
xlab=paste("Sample size of", length(y)))
curve(dnorm(x, mu.hat, sigma.hat), col="Red", lwd=2, lty=3, add=TRUE)
curve(dnorm(x, mu.hat, sqrt(pi/4)*sigma.hat), col="Blue", lwd=2, add=TRUE)
#
# The variance of sigma is too large.
#
N <- 1e4
n <- 10
y <- matrix(rnorm(n*N), nrow=n)
sigma.hat <- apply(y, 2, sigma) * sqrt(pi/4)
sigma.ols <- apply(y, 2, sd) / (sqrt(2/(n-1)) * exp(lgamma(n/2)-lgamma((n-1)/2)))
message("Mean of unbiased estimator is ", format(mean(sigma.hat), digits=4))
message("Mean of unbiased OLS estimator is ", format(mean(sigma.ols), digits=4))
message("Variance of unbiased estimator is ", format(var(sigma.hat), digits=4))
message("Variance of unbiased OLS estimator is ", format(var(sigma.ols), digits=4))
message("Efficiency is ", format(var(sigma.ols) / var(sigma.hat), digits=4))
x <- c(rnorm(30), rnorm(30, 10))