Як знайти / оцінити функцію щільності ймовірності з функції щільності в R


17

Припустимо, у мене є така змінна, як Xіз невідомим розподілом. У Mathematica, використовуючи SmoothKernelDensityфункцію, ми можемо мати функцію оціночної щільності. Ця розрахункова функція густини може бути використана разом з PDFфункцією для обчислення функції щільності ймовірності значення, як Xу вигляді PDF[density,X]припущення, що "щільність" є результатом SmoothKernelDensity. Було б добре, якщо в Р. є така особливість. Це, як це працює в Mathematica

http://reference.wolfram.com/mathematica/ref/SmoothKernelDistribution.html

Як приклад (на основі функцій Mathematica):

data = RandomVariate[NormalDistribution[], 100]; #generates 100 values from N(0,1)

density= SmoothKernelDistribution[data]; #estimated density

PDF[density, 2.345] returns 0.0588784 

Тут ви можете знайти більше інформації про PDF:

http://reference.wolfram.com/mathematica/ref/PDF.html

Я знаю, що я можу побудувати його функцію густини, використовуючи density(X)R, і за допомогою ecdf(X)я можу отримати його емпіричну функцію кумулятивного розподілу. Чи можна зробити те ж саме в R на основі того, що я описав про Mathematica?

Будь-яка допомога та ідея цінується.


density(x)дає оцінку pdf, як ви вже зазначали, але його придатність залежить від мети, для якої ви хочете мати щільність. Зауважте, наприклад, що дисперсія є упередженою (виконуючи згортання, ви додаєте дисперсію ядра до дисперсії даних, сама по собі об'єктивна оцінка) - такі компроміси-відхилення зміщення є всюдисущими. Існують і інші альтернативи, наприклад, оцінка щільності логарифмальної смуги, але знову ж таки, її придатність частково залежить від того, що ви хочете зробити з нею.
Glen_b -Встановіть Моніку

@Glen_b Я хочу використовувати оцінену щільність для пошуку ймовірності інших значень в розподілі. Наприклад, у мене є вектор даних від 0 до 10. Цей набір даних містить лише 70 унікальних значень між 0 і 10. Я можу побудувати графік щільності. Тепер припустимо, що мені цікаво знайти ймовірність наявності X = 7,5, що не є у спостережуваних даних, у випадковій вибірці. Як я можу це отримати? Я знаю, що це ecdf(X)дає мені еквівалентний процентиль 7,5, але це не те, що я шукаю.
Амін

" знаходження ймовірності наявності X = 7,5 " - ось ваша проблема! Або у вас є безперервний розподіл (у цьому випадку фактична відповідь - "0"), або ви цього не робите (у такому випадку ви не повинні використовувати оцінку щільності, оскільки у вас немає щільності).
Glen_b -Встановіть Моніку

1
ecdf(b)-ecdf(a)П(а<Хб)<Х П(Х=7.5)

1
Вибачте, це помилка. Я маю на увазі вибіркову частку значень, яка становить 7,5; мій син відволікав мене, коли я набирав останні пару слів. Ваша вибіркова оцінка ймовірності незабезпеченої події дорівнює нулю. Чи хотіли ви застосувати попереднє? Ви хотіли довірчий інтервал для пропорції замість бальної оцінки? Ваша фактична проблема ще не є проблемою R, вона полягає в правильному поясненні того, що ви насправді хочете. Ви, ймовірно, повинні відредагувати своє запитання або опублікувати нове.
Glen_b -Встановіть Моніку

Відповіді:


35

?densityвказує, що він використовує approxдля вже лінійної інтерполяції; ?approxвказує, що approxfunгенерує відповідну функцію:

x <- log(rgamma(150,5))
df <- approxfun(density(x))
plot(density(x))
xnew <- c(0.45,1.84,2.3)
points(xnew,df(xnew),col=2)

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

Використовуючи integrateпочинаючи з відповідної відстані нижче мінімуму у вибірці (кратне - скажімо, 4 або 5, можливо - ширини смуги частот, що використовується df, як правило, це робиться на відповідну відстань), можна отримати хорошу апроксимацію cdf, що відповідає df.


це цікаво. Здається, що df(2.3)дає значення функції оцінюваної щільності при, x=2.3але те, що PDFробить у Mathematica, дає площу під кривою вище x=2.3. Я не зовсім впевнений у цьому. Це лише моя здогадка. Чи можете ви повторно виробляти те, що я робив у Mathematica?
Амін

Моя функція вище демонстративно дає оцінку на основі ядра "функції щільності ймовірності" ... "оцінюється на x". Або ти цього хочеш, чи не хочеш. Якщо ви цього не зробите, ви повинні пояснити , що ви дійсно хочете - в статистичних термінах, а не просто як «відтворити це поведінка».
Glen_b -Встановити Моніку

Я думаю, що я помилково і ненавмисно просунув, що щільність - це ймовірність, якої немає. Я не хотів би вводити в оману. Якщо ви думаєте, що PDFв Mathematica робить те, що ви описали у своїй відповіді (тобто знаходить значення функції щільності для заданого значення X), то я думаю, що я отримав свою відповідь. Просто є багато плутанини щодо використання слів!
Амін

2
З того, що ця PDFсторінка каже, що це робить, вона повертає той самий предмет, що я роблю, але методи, які вона використовує для свого обчислення в цьому випадку, ймовірно, будуть дещо точнішими (для такої мети додаткова точність має мало значення). Деякі обговорення розрізнення ймовірності / щільності дивіться тут і тут .
Glen_b -Встановіть Моніку
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.