Обчислення p-значення від довільного розподілу


14

Я сподіваюся, це не дурне питання. Скажімо, у мене є якийсь довільний безперервний розподіл. У мене також є статистика, і я хотів би скористатися цим довільним розподілом, щоб отримати значення р для цієї статистики.

Я усвідомлюю, що в R легко зробити це до тих пір, поки ваш дистрибутив відповідає одному із вбудованих, наприклад, якщо це нормально. Але чи є простий спосіб зробити це з будь-яким заданим розподілом, не роблячи такого припущення?

Відповіді:


12

Якщо у вас є функція кумулятивного розподілу , то обчислити значення p- значення для даної статистики T просто 1 - F ( T ) . Це прямо в Р. Якщо у вас є функція щільності ймовірності з іншого боку, тоді F ( x ) = x - p ( t ) d t . Цей інтеграл можна знайти аналітично чи чисельно. У R це буде виглядати приблизно так:FpT1F(T)F(x)=xp(t)dt

dF <- function(x)dnorm(x)
pF <- function(q)integrate(dF,-Inf,q)$value 

> pF(1)
[1] 0.8413448
> pnorm(1)
[1] 0.8413447

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

Звичайно, ви можете передати параметри pF, якщо у вас є кілька значень параметрів для випробування, і ви не хочете dFкожен раз переосмислювати їх .

dF <- function(x,mean=0,sd=1)dnorm(x,mean=mean,sd=sd)
pF <- function(q,mean=0,sd=1)integrate(dF,-Inf,q,mean=mean,sd=sd)$value 

> pF(1,1,1)
[1] 0.5
> pnorm(1,1,1)
[1] 0.5

Звичайно, ви також можете використовувати методи Монте-Карло, як це детально описав @suncoolsu, це був би ще один чисельний метод інтеграції.


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

Так, я думаю, це більше відповідає моїм теперішнім здібностям. Спасибі!
Алан Х.

Насправді я не впевнений, що я повністю слідкую за тим, як працюють ці функції. Приклади дають результати для нормального розподілу, але де я можу ввімкнути функцію густини ймовірностей?
Алан Х.

(Я робив тести, і мої дані не здаються нормально віддаленими.)
Алан Х.

@Alan H., підключіть функцію густини до dF. Тобто dFслід повернути значення функції щільності для заданого аргументу.
mpiktas

9

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

p-vалуе=П[Т>Тобсеrvег|Н0годолгс]

Де Т є тестовою статистикою, що цікавить і Тобсеrvег - це значення, яке ви обчислили для спостережуваних даних.

Якщо ви знаєте теоретичний розподіл Т під Н0, чудово! В іншому випадку, ви можете використовувати MCMC моделювання для генерації з розподілу нуля вТі обчислити інтеграл Монте-Карло для отримання p-значення . Методи чисельної інтеграції також будуть працювати, якщо ви не хочете використовувати (можливо,) простіші методи Монте-Карло (особливо в R; в Mathematica інтеграція може бути простішою, але я не маю досвіду її використання)

Єдине припущення, яке ви робите тут, - ви знаєте нульовий розподіл T (який може бути не у стандартних форматах генератора випадкових чисел R). Це все - доки ви знаєте нульовий розподіл, p-значення можна обчислити.


1
Треба зауважити - це одна з причин, чому р-значення настільки популярні і їх легко зрозуміти неправильно. (ІМХО)
suncoolsu

Гаразд, це має сенс. У мене є те, що я вважаю, що це гарна оцінка нульового розподілу. Будь-які підказки, як реалізувати це в R? Спасибі!
Алан Х.

1
@Alan - Чи знаєте ви, як генерувати випадкові значення з вашого Null Distribution? Якщо так, припустимо - T = c (T1, ..., TN) є черпами з нульового розподілу - p-value = sum (T> T_obs) / N. Якщо ви не знаєте, як генерувати, можливо, вам знадобиться скористатися методом відбору проб Metropolis або Gibbs, щоб отримати T1 ... TN, але це дуже можливо.
suncoolsu
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.