Почему мои числа не совпадают, многовариантное распределение в R mvtnorm - PullRequest
5 голосов
/ 02 января 2011

Я пытался запрограммировать алгоритм для cdf для многомерного t-распределения, следуя Genz и Bretz. Ссылочный пакет в R - это mvtnorm.

Когда я проверял свою функцию, я обнаружил, что мои числане совпадаютВ следующем примере, настроенном из справки mvtnorm, многовариантная случайная величина t имеет независимые компоненты.Таким образом, интеграл должен быть просто произведением 3 независимых вероятностей

> lower <- -1
> upper <- 3
> df <- 4
> corr <- diag(3)
> delta <- rep(0, 3)
> pmvt(lower=lower, upper=upper, delta=delta, df=df, corr=corr)
[1] 0.5300413
attr(,"error")
[1] 4.321136e-05
attr(,"msg")
[1] "Normal Completion"

Сообщаемая ошибка 4e-5, ошибка по сравнению с произведением независимых вероятностей

> (pt(upper, df) - pt(lower, df))**3
[1] 0.4988254

равна

0.5300413 - 0.4988254 = 0.0312159

Я получаю расхождения в моем собственном коде по сравнению с R mvtnorm для различных примеров примерно в одном и том же диапазоне.

IЯ в основном новичок в R. Итак, что я делаю не так или что не так?

(я не зарегистрирован в списке рассылки R-help, поэтому я попробую здесь.)

ОБНОВЛЕНИЕ: Как объяснил pchalasani, моя статистика была неправильной, ошибка в моем собственном коде была в некоторой вспомогательной функции, а не в коде распределения t.Хороший способ увидеть, что некоррелированность не подразумевает независимости, это посмотреть на условное распределение.Вот частоты столбцов% * 100 для независимой двумерной случайной величины (10000 выборок) для квартилей (распределение зависит от переменной столбца).

двумерные некоррелированные нормальные переменные

([[26, 25, 24, 23],
  [24, 23, 24, 25],
  [24, 27, 24, 24],
  [24, 23, 26, 25]])

двумерные некоррелированные tпеременные

([[29, 20, 22, 29],
  [20, 31, 28, 21],
  [20, 29, 29, 20],
  [29, 18, 18, 29]])

Распределение в первом и последнем столбце сильно отличается от средних столбцов.(Извините, код R отсутствует, поскольку я не знаю, как это быстро сделать с помощью R.)

1 Ответ

7 голосов
/ 02 января 2011

Нулевая корреляция не подразумевает независимость для совместно негауссовых распределенных случайных величин!

Позвольте мне уточнить: здесь нет ошибки.Недостаток заключается в вашем предположении, что, когда многовариантные случайные величины Стьюдента t некоррелированы , они также независимы , что определенно не так: единственный класс многомерных распределений, гдеКорреляция подразумевает независимость, это распределение М. В. Гаусса.

Чтобы увидеть, что две некоррелированные случайные величины, которые совместно следуют распределению MV Student-T, не являются независимыми, рассмотрим случай n=2:

require(mvtnorm)
x <- rmvt(100000, sigma = diag(2), df=4, delta = rep(0,2) )

Теперь каждый столбец xпредставляет реализации двух случайных величин.Сначала мы проверяем, что их корреляция довольно мала:

> cor(x[,1], x[,2])
[1] -0.003378811

Однако корреляция квадратов из x[,1] и x[,2] достигает 30,4%, то есть определенно не ноль , доказывая, что x[,1] и x[,2] не являются статистически независимыми:

> cor(x[,1]^2, x[,2]^2)
[1] 0.3042684
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...