Как emmeans корректирует значения p при использовании «Тьюки» в качестве метода корректировки?

Я хочу вычислить критическую разницу для моих парных сравнений. Для этого мне нужно понять, как корректируются значения p, поскольку я хочу, чтобы метод tukey был активным.

Мне удалось восстановить расчет T-статистики и нескорректированные значения p. Но, используя искусственный интеллект и Интернет, я не смог придумать формулу для скорректированных значений p, которая дала бы мне тот же результат, что и emmeans.

Это пример случая, который я хочу понять:

              Estimate  2.5_ci  97.5_ci     SE       DF  ci_upper  ci_lower
algorithm                                                                  
PriorBand+BO     2.556   2.504    2.608  0.027  12000.0     2.504     2.608
BOHB             2.625   2.573    2.677  0.027  12000.0     2.573     2.677
RS+Prior         3.223   3.171    3.275  0.027  12000.0     3.171     3.275
PiBO             3.223   3.171    3.275  0.027  12000.0     3.171     3.275
BO               3.373   3.321    3.425  0.027  12000.0     3.321     3.425

       algorithm_1     algorithm_2  Estimate  2.5_ci  97.5_ci     SE       DF  T-stat  P-val  Sig
7   (PriorBand+BO)            BOHB    -0.069  -0.172    0.033  0.038  12000.0  -1.843  0.349     

Итак, моя «цель» — 0,349.

t_stat равен -1,8157894736842106, а нескорректированное значение p равно 0,06942762000543438.

AI предложил эту формулу, которая рассчитывает значение q на основе стьюдентизированного диапазона и на основе этого поправочного коэффициента:

q=studentized_range.ppf(1 - 0.05, k=k,df=df)
factor=q/np.sqrt(k)
adjusted_p=p*factor

Но результат не соответствует моей цели:

q=3.8582424830229995
factor=1.725458493143401
adjusted_p=0.11979447659710946

Похоже, это может быть актуально: stats.stackexchange.com/questions/401856/…

Matt Haberland 23.03.2024 07:10

Спасибо! Это ответило на оба моих вопроса. Я отредактирую вопрос, чтобы он содержал ответ.

Meganton 23.03.2024 12:29
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
1
2
135
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Как упомянул @Matt Haberland, аналогичный вопрос был задан здесь. Итак, чтобы вычислить значение p в моем примере, вы используете

1 - ptukey(t_stat * sqrt(2), k, df) (в R) или

1 - scipy.stats.studentized_range.cdf(t_stat*np.sqrt(2), k=k, df=df) (на Python)

где t_stat=abs(mean_difference/SE), k=5 — количество групп и df=12000. И чтобы вычислить критическую разницу HSD (этой конкретной пары):

HSD=scipy.stats.studentized_range.ppf(1-0.05, k=k,df=df)/np.sqrt(2)*SE

Другие вопросы по теме