Вычисление точных значений p из теста корреляции Пирсона (вручную или в R)

(Во что я верю) очень простой вопрос. Я только что провел корреляционный тест Пирсона в R и хотел бы знать точное значение p. Тем не менее, значение p настолько маленькое, что R (или tdist в Excel, или любой другой онлайн-программе для расчета) говорит мне, что значение p равно ‹2,2e-16 или 0. Я подозреваю, что это как-то связано с большим количество наблюдений у меня есть (n = 11001).

Вот результат, который я получаю при выполнении попарной корреляции

cor.test(метс$s_M48153,метс$s_M48152)

             Pearson's product-moment correlation

data:  mets$s_M48153 and mets$s_M48152
t = 88.401, df = 10999, p-value < 2.2e-16
alternative hypothesis: true correlation is not equal to 0
95 percent confidence interval:
  0.6334378 0.6552908
sample estimates:
  cor 
0.6444959 

«cor.test(mets$s_M48153,mets$s_M48152)$p.value» также дает мне p-значение, равное 0.

Из-за этого я хотел бы вручную рассчитать точное значение p, используя t-статистику и степени свободы, но нигде не могу найти формулу. Кто-нибудь знает формулу или может сказать мне, как извлечь точные p-значения из R (если возможно)?


person Victoria Auyeung    schedule 03.08.2018    source источник
comment
Кто-то знает формулу (просто погуглите). Чтобы извлечь с помощью R: cor.test(mets$s_M48153,mets$s_M48152)[["p.value"]]   -  person sindri_baldur    schedule 03.08.2018
comment
Я пробовал гуглить, но безрезультатно (иначе я бы не спрашивал здесь!). Я только что попробовал ваш код, но он все равно возвращает 0. :(   -  person Victoria Auyeung    schedule 03.08.2018
comment
вы можете посмотреть код stats:::cor.test.default, чтобы увидеть, какая формула используется   -  person user20650    schedule 03.08.2018
comment
Это 0 или действительно близко к 0? Попробуйте тест на неравенство, ... > 0. Если это TRUE, то 0, который вы видите, — это просто представление R, основанное на нескольких параметрах отображения (например, digits, scipen).   -  person r2evans    schedule 03.08.2018
comment
Вы получаете ноль, потому что результат считается нулем на вашем компьютере (в нем отсутствуют значения после 16-го знака после запятой). Если вы запустите .Machine$double.eps, вы, вероятно, также получите значение, близкое к 2.2e-16. Есть ли причина, по которой вы хотите указать значение p меньше, чем e-16?   -  person NewUser    schedule 03.08.2018
comment
Хороший вопрос, @NewUser: традиционно значения p ниже 0,05 считались достаточными. Эта позиция меняется, но даже при больших n размерах выборки я предполагают, что p-значения 16 цифр справа от нуля должно быть достаточно. Чтобы добиться большего, вам, вероятно, понадобится bit64. упаковать и рассчитать вещи вручную.   -  person r2evans    schedule 03.08.2018


Ответы (1)


Спасибо всем за ваши предложения и советы, и извините, что не ответили раньше. До недавнего времени я жонглировал несколькими вещами. Однако я спросил об этом статистика из моего отдела, и он согласился с тем, что сказал r2evans. Если p-значение меньше 10 ^ -16, нет смысла сообщать «точное» значение, поскольку дело в том, что есть убедительные доказательства того, что результат отличается от нулевой гипотезы.

Один из случаев, когда p-значения могут быть важны, — это когда вы хотите ранжировать по порядку значимости, но вы можете обойти это, используя вместо этого z-значения для ранжирования.

Чтобы ответить на исходный вопрос, я полагаюсь на это руководство, которое я нашел спустя много времени после публикации этого вопроса: https://stats.stackexchange.com/questions/315311/how-to-find-p-value-использование-оценки-и-стандартной-ошибки.

person Victoria Auyeung    schedule 04.09.2018