Як називається метод оцінки щільності, де всі можливі пари використовуються для створення нормального розподілу суміші?


12

Я просто думав про акуратний (не обов'язково хороший) спосіб створення однієї розмірної оцінки щільності, і моє питання:

Чи має цей метод оцінки щільності назву? Якщо ні, то це особливий випадок якогось іншого методу в літературі?

Ось метод: У нас є вектор який, як ми вважаємо, виведений з якогось невідомого розподілу, який ми хотіли б оцінити. Спосіб цього полягає в тому, щоб взяти всі можливі пари значень у і для кожної пари встановити нормальний розподіл, використовуючи максимальну ймовірність. Отримана оцінка щільності - це розподіл суміші, що складається з усіх отриманих нормалей, де кожній нормі надається однакова вага.X [ x i , x j ] i jX=[x1,x2,...,xn]X[xi,xj]ij

На малюнку нижче показано використання цього методу на векторі . Тут кола - це точки даних, кольорові нормали - це максимальні розподіли правдоподібності, оцінені за допомогою кожної можливої ​​пари, а товста чорна лінія показує отриману оцінку щільності (тобто розподілу суміші).[1.3,0.15,0.73,1.4]

введіть тут опис зображення

До речі, реально реалізувати метод в R, який витягує зразок із отриманого розподілу суміші:

# Generating some "data"
x <- rnorm(30)

# Drawing from the density estimate using the method described above.
density_estimate_sample <- replicate(9999, {
  pair <- sample(x, size = 2)
  rnorm(1, mean(pair), sd(pair))
})

# Plotting the density estimate compared with 
# the "data" and the "true" density.
hist(x ,xlim=c(-5, 5), main='The "data"')
hist(density_estimate_sample, xlim=c(-5, 5), main='Estimated density')
hist(rnorm(9999), xlim=c(-5, 5), main='The "true" density')

введіть тут опис зображення


5
Спробуйте скористатися своїм методомx <- c(rnorm(30), rnorm(30, 10))
Дейсон

2
@Dason Yep, в такому випадку метод зовсім не працює! :) Також він не сходиться з великими п.
Rasmus Bååth

4
Це звучить як пошкоджена версія оцінки щільності ядра, де пропускна здатність оцінюється за допомогою перехресної перевірки!
Сіань

Формулювання в "У нас є вектор який, як ми вважаємо, виведений із якогось невідомого розподілу, який ми хотіли б оцінити", можливо, слід уточнити, як це (на мій погляд) звучить як питання було про оцінку загального -вимірного багатоваріантного розподілу на основі одного спостереження. nX=[x1,x2,,xn]n
Juho Kokkala

Відповіді:


6

Це інтригуюча ідея, оскільки оцінювач стандартного відхилення виявляється менш чутливим до людей, що звикають, ніж звичайні підходи середньоквадратичного квадрату. Однак, я сумніваюся, цей оцінювач був опублікований. Три причини: це обчислювально неефективно, воно є упередженим, і навіть коли виправлення змінено, воно є статистично неефективним (але лише небагато). Це можна побачити за допомогою невеликого попереднього аналізу, тому давайте зробимо це спочатку, а потім зробимо висновки.

Аналіз

Оцінки ML середнього та стандартного відхилення на основі даних єσ ( x i , x j )μσ(xi,xj)

μ^(xi,xj)=xi+xj2

і

σ^(xi,xj)=|xixj|2.

Тому метод, описаний у питанні, є

μ^(x1,x2,,xn)=2n(n1)i>jxi+xj2=1ni=1nxi,

що є звичайним оцінювачем середнього, і

σ^(x1,x2,,xn)=2n(n1)i>j|xixj|2=1n(n1)i,j|xixj|.

Очікуване значення цього оцінювача легко виявляється шляхом використання обмінних даних, що означає, що не залежить від та . ЗвідсиE=E(|xixj|)ij

E(σ^(x1,x2,,xn))=1n(n1)i,jE(|xixj|)=E.

Але оскільки і є незалежними нормальними змінними, їх різниця - нульова середня нормальна з дисперсією . Тому його абсолютне значення - раз a розподіл, середнє значення якого . Отжеxixj2σ22σχ(1)2/π

E=2πσ.

Коефіцієнт - це зміщення в цьому оцінювачі.2/π1.128

Таким же чином, але, маючи значно більше роботи, можна було б обчислити дисперсію , але - як ми побачимо - це навряд чи буде великим інтересом до цього, тому я просто оцінюю це за допомогою швидкого моделювання .σ^

Висновки

  1. Оцінювач упереджений. має істотний постійний ухил приблизно + 13%. Це можна було виправити. У цьому прикладі з розміром вибірки на гістограмі нанесені як зміщені, так і виправлені зміщення оцінки. Похибка 13% очевидна.σ^n=20,000

    Малюнок

  2. Він обчислювально неефективний. Оскільки сума абсолютних значень,, не має алгебраїчного спрощення, його обчислення вимагає зусиль замість зусилля майже для будь-якого іншого оцінювача. Це масштабно погано, що робить його надмірно дорогим, коли перевищує або близько того. Наприклад, для обчислення попередньої цифри потрібно 45 секунд часу процесора та 8 ГБ оперативної пам’яті . (На інших платформах вимоги до оперативної пам’яті будуть значно меншими, можливо, за невеликих витрат у розрахунку.)i,j|xixj|O(n2)O(n)n10,000R

  3. Це статистично неефективно. Для найкращого відображення розглянемо об'єктивну версію та порівняємо її з неупередженою версією або найменших квадратів, або максимальної оцінки ймовірності.

    σ^OLS=(1n1i=1n(xiμ^)2)(n1)Γ((n1)/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))

Відповідна література йде на певний час, наприклад, Даунтон, Ф. 1966 р. Лінійні оцінки з поліноміальними коефіцієнтами. Biometrika 53: 129-141 doi: 10.1093 / biomet / 53.1-2.129
Нік Кокс

Нічого собі, я отримав більше, ніж я торгувався! :)
Rasmus Bååth
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.