Как использовать параметр ncp в функции Qt из R? - PullRequest
0 голосов
/ 09 мая 2020

Я использую R для некоторых вычислений. Это вопрос о R, но также и о статистике.

Допустим, у меня есть набор данных парных образцов, состоящих из концентрации тромбоцитов в крови субъекта после инъекции плацебо, а затем снова после инъекции лекарства для ряда субъектов. Я хочу оценить среднюю разницу для парных образцов. Я только что изучаю распределение t. Если бы я хотел получить 95% доверительный интервал для средней разницы с помощью Z-теста, я мог бы просто использовать:

mydata$diff <- mydata$medication - mydata$placebo
mu0 <- mean(mydata$diff)
sdmu <- sd(mydata$diff) / sqrt(length(mydata$diff))
qnorm(c(0.025, 0.975), mu, sdmu)

После долгой путаницы и перекрестной проверки с функцией t.test я выяснил, что я могу получить 95% доверительный интервал для t-теста с:

qt(c(0.025, 0.975), df=19) * sdmu + mu0

Я понимаю это следующим образом:

Tstatistic = (mu - mu0)/sdmu
Tcdf^-1(0.025) <= (mu - mu0) / sdmu <= Tcdf^-1(0.975)
=>
sdmu * Tcdf^-1(0.025) + mu0 <= mu <= sdmu * Tcdf^-1(0.975) + mu0

Причина, по которой это сбивает с толку, заключается в что если бы я использовал Z-тест, я бы написал его так:

qnorm(c(0.025, 0.975), mu0, sdmu)

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

qnorm(c(0.025, 0.975), 0, 1) * sdmu + mu0

Пытаясь понять, что это означает математически, это означает, что Z-статистика c (mu - mu0) / sdmu всегда нормально распределяется со средним 0 и стандартное отклонение 1?

Что меня озадачило, так это то, что я хотел бы переместить параметры распределения t в аргументы функции, чтобы сократить огромные умственные затраты на размышления о это преобразование.

Однако, согласно моей версии документации функции R qt, для этого мне нужно было бы вычислить параметр нецентральности ncp. Согласно (моей версии) документации, ncp объясняется следующим образом:

Let T= (mX - m0) / (S/sqrt(n)) where mX is the mean and S the sample standard deviation (sd) of X_1, X_2, …, X_n which are i.i.d. N(μ, σ^2) Then T is distributed as non-central t with df= n - 1 degrees of freedom and non-centrality parameter ncp = (μ - m0) * sqrt(n)/σ.

Я вообще не могу об этом думать. Сначала кажется, что это вписывается в мои рамки, потому что Tstatistic = (mu - m0) / sdmu. Но разве не μ я хочу, чтобы функция qt (то есть Tcdf-1), чтобы возвращала ? Как он может появиться в ncp, который мне нужно ввести в качестве ввода? А что насчет σ? Что означают μ и σ в этом контексте?

В принципе, как я могу получить тот же результат, что и qt(c(0.025, 0.975), df=19) * sdmu + mu0, без каких-либо терминов вне вызова функции, и могу ли я получить объяснение, как это работает?

1 Ответ

1 голос
/ 09 мая 2020

Позвольте мне попытаться объяснить без использования каких-либо формул.

Прежде всего, t-распределение Стьюдента и нормальное распределение - это два разных распределения вероятностей и (в большинстве ситуаций) не должны давать вам одно и то же результаты.

Распределение t является подходящим распределением вероятностей для проверки разницы между двумя нормально распределенными выборками. Поскольку мы не знаем sd населения, мы должны придерживаться той, которую мы получаем из выборки. И это распределение больше не является нормальным распределением, оно распределено по t.

z-распределение можно использовать для аппроксимации теста. В этом случае мы используем z-распределение как приближение t-распределения. Однако при низких степенях свободы этого делать не рекомендуется. Причина: при более высоких степенях свободы распределение становится все более похожим на нормальное распределение. В учебниках обычно говорится, что t и нормальное распределение с df> 30 достаточно похожи, чтобы аппроксимировать t нормальным распределением. Для этого вам нужно сначала нормализовать ваши данные, так что mean = 0 и sd = 1. Затем вы можете выполнить аппроксимацию с использованием z-распределения.

Я обычно рекомендую не , чтобы использовать это приближение. Это был разумный костыль, когда вычисления приходилось проводить на бумаге, используя вашу голову, ручку и кучу таблиц. В основной c статистике существует множество обходных путей, которые должны были дать разумный результат с меньшими вычислительными затратами. На современных компьютерах это обычно устарело (по крайней мере, в большинстве случаев).

Распределение z, кстати, определяется (по соглашению) как нормальное распределение N (0, 1), т.е. нормальное распределение с mean = 0 и sd = 1.

Наконец, о различных способах задания этих распределений. На самом деле нормальное распределение - это единственное известное мне распределение вероятностей, которое вы можете указать, задавая mean и sd напрямую (на случай, если вам интересно, существуют десятки распределений). Параметр нецентральности имеет эффект, аналогичный среднему значению нормального распределения. На графике он перемещает t-распределение по оси x. Но он также изменяет свою форму и перекос так, что среднее и ncp удаляются друг от друга.

Этот код покажет, как ncp меняет форму и расположение t-распределения:

x <- seq(-5, 15, 0.1)
plot(x, dt(x, df = 10, ncp = 0), from = -4, to = +4, type = "l")
for(ncp in 1:6)
  lines(x, dt(x, df = 10, ncp = ncp))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...