Оцінка густини

Матеріал з testwiki
Версія від 22:09, 7 квітня 2024, створена imported>BunykBot (автоматична заміна {{Не перекладено}} вікі-посиланнями на перекладені статті)
(різн.) ← Попередня версія | Поточна версія (різн.) | Новіша версія → (різн.)
Перейти до навігації Перейти до пошуку

Шаблон:For

Шаблон:Refimprove

Демонстрація оцінки густини із застосуванням ядрового згладжування: справжню густину, що є сумішшю двох ґаусових розподілів із центрами в 0 та 3, показано суцільною синьою кривою. В кожному кадрі породжено 100 зразків із цього розподілу, показані червоним. Відцентроване на кожному зразкові ґаусове ядро накреслено сірим. Усереднення ґаусіанів видає оцінку густини, показану пунктирною чорною кривою.

Оці́нка густини́ (Шаблон:Lang-en) в теорії ймовірностей та статистиці — це побудова оцінки неспостережуваної підлеглої функції густини ймовірності на основі спостережуваних даних. Ця неспостережувана функція густини розглядається як густина, відповідно до якої розподілено велику сукупність, а дані зазвичай розглядаються як випадкова вибірка з тієї сукупності.

Для оцінки густини застосовують ряд підходів, включно з вікном Парцена — Розенблатта та рядом методик кластеризації даних, включно з Шаблон:Нп. Найпростішою формою оцінки густини є загрублена гістограма.

Приклад оцінки густини

Ми розглядатимемо записи про випадки діабету. Наступне є дослівною цитатою з опису набору даних:

Шаблон:Цитата

В цьому прикладі ми будуємо три оцінки густини для glu (концентрації глюкози в плазмі): одну умовну при наявності діабету, другу умовну при відсутності діабету, та третю безумовну відносно діабету. Умовні оцінки густини потім використовуються для побудови ймовірності діабету в залежності від glu.

Дані glu було отримано з програмного пакету MASS[1] мовою програмування R. В R ?Pima.tr та ?Pima.te дають повний звіт про дані.

Середнім значенням glu у випадках діабету є 143.1, а стандартним відхиленням — 31.26. Середнім значенням glu у випадках не-діабету є 110.0, а стандартним відхиленням — 24.29. З цього ми бачимо, що в даному наборі даних випадки діабету пов'язано з вищими рівнями glu. Це можна зробити яснішим за допомогою графіків оцінюваних функцій густини.

Перший малюнок показує оцінки густини p(glu | diabetes=1), p(glu | diabetes=0), та p(glu). Ці оцінки густини є ядровими оцінками густини із застосуванням ґаусового ядра. Тобто, в кожній точці даних розташовано ґаусову функцію густини, а потім обчислено суму функцій густини над усім діапазоном даних.

Оцінка густини p (glu | diabetes=1) (червона), p (glu | diabetes=0) (синя) та p (glu) (чорна)

З густини glu в залежності від діабету за допомогою правила Баєса ми можемо отримати ймовірність діабету в залежності від glu. Для стислості «diabetes» у цій формулі скорочено до «db.».

p(diabetes=1|glu)=p(glu|db.=1)p(db.=1)p(glu|db.=1)p(db.=1)+p(glu|db.=0)p(db.=0)

Другий малюнок показує оцінювану апостеріорну ймовірність p(diabetes=1 | glu). З цих даних виявляється, що підвищений рівень glu пов'язаний із діабетом.

Оцінка ймовірності p(diabetes=1 | glu)

Сценарій для прикладу

Наступні команди R створять наведені вище малюнки. Ці команди можна ввести до командного запрошення застосуванням копіювання та вставлення.

library(MASS)
data(Pima.tr)
data(Pima.te)

Pima <- rbind (Pima.tr, Pima.te)
glu  <- Pima[, 'glu']

d0 <- Pima[, 'type'] == 'No'
d1 <- Pima[, 'type'] == 'Yes'
base.rate.d1 <- sum(d1) / (sum(d1) + sum(d0))

glu.density    <- density (glu)
glu.d0.density <- density (glu[d0])
glu.d1.density <- density (glu[d1])

glu.d0.f <- approxfun(glu.d0.density$x, glu.d0.density$y)
glu.d1.f <- approxfun(glu.d1.density$x, glu.d1.density$y)

p.d.given.glu <- function(glu, base.rate.d1)
{
    p1 <- glu.d1.f(glu) * base.rate.d1
    p0 <- glu.d0.f(glu) * (1 - base.rate.d1)
    p1 / (p0 + p1)
}

x <- 1:250
y <- p.d.given.glu (x, base.rate.d1)
plot(x, y, type='l', col='red', xlab='glu', ylab='estimated p(diabetes|glu)')

plot(density(glu[d0]), col='blue', xlab='glu', ylab='estimate p(glu), 
     p(glu|diabetes), p(glu|not diabetes)', main=NA)
lines(density(glu[d1]), col='red')

Зауважте, що наведена вище оцінка умовної густини використовує ширини смуг пропускання (Шаблон:Lang-en), що є оптимальними для безумовних густин. Як альтернативу можна застосовувати метод Хола, Расіна та Лі (Шаблон:Lang-en, 2004)[2] та пакет R np[3] для автоматичного (керованого даними) вибору ширини смуги пропускання, що є оптимальним для оцінки умовних густин; див. введення до пакету np у начерку про нього.[4] Наступні команди R використовують функцію npcdens() для отримання оптимального згладжування. Зауважте, що реакція "Yes"/"No" є фактором.

library(np)

fy.x <- npcdens(type~glu, nmulti=1, data=Pima)

Pima.eval <- data.frame(type=factor("Yes"),
                        glu=seq(min(Pima$glu), max(Pima$glu), length=250))
 
plot(x, y, type='l', lty=2, col='red', xlab='glu',
     ylab='estimated p(diabetes|glu)')
lines(Pima.eval$glu, predict(fy.x, newdata=Pima.eval), col="blue")
legend(0, 1, c("Unconditional bandwidth", "Conditional bandwidth"),
       col=c("red", "blue"), lty=c(2, 1))

Третій малюнок використовує оптимальне згладжування методом Хола, Расіна та Лі,[2] вказуючи, що ширина смуги пропускання безумовної густини, використана у другому малюнку вище, видає оцінку умовної густини, що може бути дещо недозгладженою.

Оцінена ймовірність p (diabetes=1 | glu): із безумовною шириною смуги пропускання (червона), та з обумовленою (синя)

Див. також

Примітки

Шаблон:Примітки

Джерела

Посилання

Шаблон:Статистика