Это правильно ? (порождающий усеченную норму, многомерный гауссов)


10

Если XRn, XN(0_,σ2I) т

fX(x)=1(2πσ2)n/2exp(||x||22σ2)

Я хочу аналогичную версию усеченного нормального распределения в многомерном случае.

Точнее, я хочу сгенерировать ограниченный по норме (до значения a ) многомерный гауссовский Y st

fY(y)={c.fX(y), if ||y||a0, otherwise .
где c=1Prob{||X||a}

Сейчас я наблюдаю следующее:

Если x=(x1,x2,,xn) , ||x||a

|xn|Tmax(0,(a21n1xi2))

Поэтому, выбрав качестве выборок Гаусса, можно ограничить в качестве выборки из распределения с усеченным нормальным распределением (по гауссовскому хвосту ) , за исключением случайно выбранного знака с вероятностью .x1,,xn1xnTNT(0,σ2)1/2

Теперь мой вопрос заключается в следующем,

Если я сгенерирую каждый векторный образец из(x1,,xn)(X1,,Xn) как,

x1,,xn1N(0,σ2)

а также

xn=Z1Z2  где, , , (т.е. усеченно-скалярно-нормальное RV с Z1{±1 w.p. 1/2}Z2NT(0,σ2)T(x1,,xn1)max(0,(a21n1xi2))

Будет ли ) многомерным гауссовским ограниченным по норме ( )? (т.е. такой же, как определенный выше). Как мне проверить? Любые другие предложения, если это не так?(X1,X2,,Xn)aY

РЕДАКТИРОВАТЬ:

Вот график рассеяния точек в 2D-случае с укороченной нормой до значений выше «1» Норма усеченная многомерная гауссова

Примечание. Ниже приведены некоторые отличные ответы, но отсутствует обоснование того, почему это предложение неверно. На самом деле, это главный вопрос этого вопроса.


1
@ Сиань Спасибо за ваш запрос и интерес. Вот мое обоснование вашей точки зрения: для рассматриваемого алгоритма нужны RV , то есть гауссиан и усеченный гауссиан, когда они видны для выборки ; более конкретно, одно из распределений варьируется для каждой выборки. Они не являются соответствующими маргиналами. Потому что каждый появляется в двух терминах: и ; и явно изменяется во времени, поскольку порог усечения варьируется для каждой выборки. Предоставленное вами доказательство разложения имеет проблему в том же смысле. Маргиналы просто не доступны. X1Xnn1xi,i=1,,n1xixnxn
любит вероятность

Ваш (неправильный) алгоритм генерирует а затем дано . Следовательно, первое поколение от маргинального, а второе поколение от условного. Мое доказательство показывает, что маргинал не является (n-1) -мерным распределением Гаусса.
X1,,Xn1N(0,σ2)
XnNT(0,σ2)
X1,,Xn1
Сиань

@ Сиань Условный гауссовский не означает маргинальный гауссовский !!
Любит Вероятность

@ Сиань Хорошо, я хочу сказать следующее. Когда генерируются как гауссианы, и более поздние термины зависят от этих значений, маргиналы не будут гауссианами. То, что вы сказали, точно так же. Они могут быть «условно гауссовскими», но определенно не «незначительно гауссовскими». Мой предыдущий комментарий означает это. X1,,Xn1X1,,Xn1
Любит Вероятность

1
@ Сиань Большое спасибо за ответы пациента. Я наконец понял свою ошибку с вашей стимуляцией, и я также написал свой собственный подробный ответ, объясняющий то же самое. Но извините, надеюсь, вы не возражаете, я, вероятно, должен принять ответ Уубера за его подробное объяснение, которое поможет на самом деле решить проблему.
Любит Вероятность

Ответы:


11

Многомерное нормальное распределение сферически симметрично. Распределение, которое вы ищете, усекает радиус ниже в точке . Поскольку этот критерий зависит только от длины , усеченное распределение остается сферически симметричным. Поскольку не зависит от сферического углаи имеют распределение , то , следовательно , может генерировать значения из усеченного распределения всего за несколько простых шагов:Xρ=||X||2aXρX/||X||ρσχ(n)

  1. Создайте .XN(0,In)

  2. Генерация как квадратный корень из усеченного в .Pχ2(d)(a/σ)2

  3. Пусть,Y=σPX/||X||

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

На шаге 2 легко генерируется инвертированием квантильной функции распределения : генерируется равномерная переменная поддерживаемая в диапазоне (квантилей) между и и установите .PF1χ2(d)UF((a/σ)2)1P=F(U)

Вот гистограмма из таких независимых реализаций для в измерениях, усеченная ниже при . Генерация заняла около одной секунды, что свидетельствует об эффективности алгоритма.105σPσ=3n=11a=7

фигура

Красная кривая - это плотность усеченного масштабированное на . Его близкое совпадение с гистограммой свидетельствует о достоверности этой техники.χ(11)σ=3

Чтобы получить интуицию для усечения, рассмотрим случай , в измерениях. Вот график рассеяния против (для независимых реализаций). Это ясно показывает отверстие в радиусе :a=3σ=1n=2Y2Y1104a

фигура 2

Наконец, обратите внимание, что (1) компоненты должны иметь идентичные распределения (из-за сферической симметрии) и (2) за исключением случаев, когда , это общее распределение не является нормальным. В самом деле, как вырастает большое, быстрое снижение (одномерный) нормального распределения вызывает большую часть вероятности сферически усечен многомерное нормальное группироваться вблизи поверхности -сферы (радиуса ). Таким образом, предельное распределение должно приближаться к масштабированному симметричному бета-распределению сосредоточенному в интервале . Это видно на предыдущем графике рассеяния, гдеXia=0an1a((n1)/2,(n1)/2)(a,a)a=3σуже велика в двух измерениях: точки ограничивают кольцо ( сфера ) радиуса .213σ

Вот гистограммы маргинальных распределений из моделирования размера в измерениях с , (для которого аппроксимирующее распределение бета является равномерным):1053a=10σ=1(1,1)

Рисунок 3

Поскольку первые маргиналов процедуры, описанной в вопросе, являются нормальными (по построению), эта процедура не может быть правильной.n1


Следующий Rкод сгенерировал первую цифру. Он сконструирован так, чтобы параллельные шаги 1-3 для генерации . Он был изменен , чтобы генерировать вторую цифру путем изменения переменных , , , и , а затем выдачи команды участок после того, как был создан.Yadnsigmaplot(y[1,], y[2,], pch=16, cex=1/2, col="#00000010")y

Поколение изменяется в коде для более высокого численного решения: код фактически производит и использует для вычисления .U1UP

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

a <- 7      # Lower threshold
d <- 11     # Dimensions
n <- 1e5    # Sample size
sigma <- 3  # Original SD
#
# The algorithm.
#
set.seed(17)
u.max <- pchisq((a/sigma)^2, d, lower.tail=FALSE)
if (u.max == 0) stop("The threshold is too large.")
u <- runif(n, 0, u.max)
rho <- sigma * sqrt(qchisq(u, d, lower.tail=FALSE)) 
x <- matrix(rnorm(n*d, 0, 1), ncol=d)
y <- t(x * rho / apply(x, 1, function(y) sqrt(sum(y*y))))
#
# Draw histograms of the marginal distributions.
#
h <- function(z) {
  s <- sd(z)
  hist(z, freq=FALSE, ylim=c(0, 1/sqrt(2*pi*s^2)),
       main="Marginal Histogram",
       sub="Best Normal Fit Superimposed")
  curve(dnorm(x, mean(z), s), add=TRUE, lwd=2, col="Red")
}
par(mfrow=c(1, min(d, 4)))
invisible(apply(y, 1, h))
#
# Draw a nice histogram of the distances.
#
#plot(y[1,], y[2,], pch=16, cex=1/2, col="#00000010") # For figure 2
rho.max <- min(qchisq(1 - 0.001*pchisq(a/sigma, d, lower.tail=FALSE), d)*sigma, 
               max(rho), na.rm=TRUE)
k <- ceiling(rho.max/a)
hist(rho, freq=FALSE, xlim=c(0, rho.max),  
     breaks=seq(0, max(rho)+a, by=a/ceiling(50/k)))
#
# Superimpose the theoretical distribution.
#
dchi <- function(x, d) {
  exp((d-1)*log(x) + (1-d/2)*log(2) - x^2/2 - lgamma(d/2))
}
curve((x >= a)*dchi(x/sigma, d) / (1-pchisq((a/sigma)^2, d))/sigma, add=TRUE, 
      lwd=2, col="Red", n=257)

1
Вот замечательный ответ! Но не могли бы вы также прояснить, почему рассматриваемое предложение терпит неудачу? (Сианьский ответ недостаточно удовлетворителен, я вижу некоторые проблемы с его аргументом, например, когда он интегрируется)
Вероятность любви

1
Большое спасибо. Но могу ли я также попросить вас ответить на мой первый комментарий выше? Кажется, мое предложение также дает достаточно хорошую гистограмму. Я запутался!! Где ошибка? Обратите внимание, что это является основным вопросом вопроса, и ЕСЛИ ПРАВИЛЬНО , для метода требуется всего одна «усеченно-гауссовская» выборка. ПЛЮС. Имея в наличии существующие быстрые алгоритмы, это приводит к огромной экономии (избегая делений и умножений, в дополнение к избегая необходимости относительно более сложного усеченного-ChiSquare)
Loves Вероятность

2
Насколько я могу судить, вы предлагаете нарисовать из нормального распределения и из двустороннего усеченного нормального. Это, очевидно, не усеченное распределение MVN, поскольку диаграмма рассеяния для легко покажет, что я считаю, что не смог понять эту часть вашего вопроса. В более общем плане , бремя вопросов , которые задают почему - то делает не работу на спрашивающем , чтобы предоставить доказательство того, что он делает работу. Возможно, если вы предоставите такие доказательства, характер вашего вопроса станет понятным. X1,,Xn1Xnn=2
whuber

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

1
Глядя на предельные распределения, я могу найти самый простой способ проиллюстрировать различия в процедурах. Я добавил цифру и код, чтобы показать эти маргиналы.
whuber

7

Я написал это, предполагая, что вы не хотите никаких точек, имеющих || y || > a, который является аналогом обычного одномерного усечения. Тем не менее, вы написали, что хотите сохранить очки, имеющие | y || > = а выкинуть остальных. Тем не менее, очевидная корректировка моего решения может быть сделана, если вы действительно хотите сохранить точки, имеющие | y || > = а.

Самый простой способ, который, как оказывается, является очень общим методом, заключается в использовании Acceptance-Rejection https://en.wikipedia.org/wiki/Rejection_sampling . Это будет довольно быстро, пока Prob (|| X ||> a) будет довольно низким, потому что тогда будет не так много отклонений.

Сгенерируйте примерное значение x из многовариантного нормального значения без ограничений (даже если ваша задача утверждает, что многовариантный нормальный элемент является сферическим, метод можно применить, даже если это не так). Если || х || <= a, принять, т. е. использовать x, иначе отклонить его и сгенерировать новый образец. Повторяйте этот процесс, пока не получите столько принятых образцов, сколько вам нужно. Эффект применения этой процедуры состоит в том, чтобы генерировать y таким образом, чтобы его плотность была c * f_X (y), если || y || <= a и 0, если || y || > а, согласно моей поправке к вступительной части вашего вопроса. Вам никогда не нужно вычислять c; в действительности он определяется автоматически алгоритмом на основе частоты, с которой отбрасываются выборки.


3
+1 Мне нравится, что ваше предложение работает с несферически симметричными MVN, что вы четко описали обстоятельства, при которых оно будет эффективным, и что вы подчеркиваете необходимость оценки степени отклонения при принятии решения о том, использовать ли выборку отклонения.
whuber

2
Да, и также обратите внимание, что он может работать для области (ов) произвольной формы, а не только для 2-й нормы, находящейся выше или ниже порогового значения, как здесь.
Марк Л. Стоун

5

Это хорошая попытка, но она не работает из-за «константы нормализации»: если вы учитываете общую плотность разложение

fX(x)1(2πσ2)n/2exp(||x||22σ2)I||x||>a=1(2πσ2)n/2exp(x12++xn22σ2)I||x||>a
fX(x)1(2πσ2)(n1)/2exp(||xn||22σ2)1(2πσ2)1/2exp(xn22σ2)I||x||>a
=1(2πσ2)(n1)/2exp(||xn||22σ2)1(2πσ2)1/2exp(xn22σ2)I||xn||2+xn2>a2
=P(Xn2>a2||xn||2)(2πσ2)(n1)/2exp(||xn||22σ2)
×P(Xn2>a2||xn||2)1(2πσ2)1/2exp(xn22σ2)Ixn2>a||xn||2
который интегрируется в в , показывает, что
fXn(xn)P(Xn2>a2||xn||2)(2πσ2)(n1)/2exp(||xn||22σ2)
xn
  1. Условное распределение по другим компонентам, , является усеченным нормальным распределением;XnXn
  2. Предельное распределение других компонентов, , не является нормальным распределением из-за дополнительного члена ;XnP(Xn2>a2||xn||2)

Единственный способ, которым я могу воспользоваться при использовании этого свойства, - запустить сэмплер Гиббса, по одному компоненту за раз, используя усеченные нормальные условные распределения.


1
Большое спасибо за подробный ответ. Просто пояснение: площадь под вашей плотностью (второй экв) не равна 1 !! --- Я думаю, что, как только оно будет исправлено, оно отменит "коэффициент нормализации", о котором вы говорите. Какие-нибудь мысли? fX(x)
Любит Вероятность

3

Вопрос возникает из идеи использования - основного условного разложения совместных распределений - для рисования векторных выборок.

Пусть - многомерный гауссов с iid-компонентами.X

Пусть и Prob(||X||>a)TYX.I||X||>a

Рассматриваемый алгоритм предлагается на основе следующей (полностью корректной, но обманчивой интерпретации) условной факторизации:

fY(y)=1T1(2πσ2)n/2exp(||y||22σ2)I||y||>a=1T1(2πσ2)n/2exp(y12++yn22σ2)I||y||>a=(i=1n112πσ2exp(yi22σ2))(1T12πσ2exp(yn22σ2)I||y||>a)=(i=1n112πσ2exp(yi22σ2))Gaussians(1T12πσ2exp(yn22σ2)Iyn2>(a2y12yn12))Truncated Gaussian??

Самый короткий ответ заключается в том, что последний фактор не является усеченным гауссовским, (что более важно) даже не распределением.


Вот подробное объяснение того, почему сама факторизация имеет некоторый фундаментальный недостаток. В одном предложении: любая условная факторизация данного совместного распределения должна удовлетворять некоторым очень фундаментальным свойствам, а вышеупомянутая факторизация не удовлетворяет им (см. Ниже).

В общем, если мы когда-либо разложим то будет маргиналом а является условным распределением . Что значит:fXY(x,y)=fX(x)fY|X(y|x)fX(x)XfY|X(y|x)Y

  1. Коэффициент «принятый как» должен быть распределением. А также,f(x,y)fX(x)
  2. Второй фактор, «предполагаемый как» должен быть распределением для каждого выбораfY|X(y|x)x

В приведенном выше примере мы пытаемся выполнить условие . Это означает, что свойство-1 должно сохраняться для фактора Гаусса, а свойство-2 должно сохраняться для последней части.Yn|(Y1Yn1)

Понятно, что свойство-1 остается в силе по первому фактору. Но проблема со свойством-2. Последний фактор, приведенный выше, к сожалению, вообще не является распределением (забудьте про усеченный гауссов) практически для любого значения !!(Y1Yn1)


Такое предложение алгоритма, вероятно, является результатом следующего заблуждения: если распределение естественным образом выводится из совместного распределения (например, гауссианы выше), оно приводит к условной факторизации. ---- Это не так! ---- Другой (второй) фактор тоже должен быть хорошим.


Примечание: @whuber ранее дал отличный ответ, который фактически решает проблему генерации усеченного по норме многомерного гаусса. Я принимаю его ответ. Этот ответ только для того, чтобы уточнить и поделиться своим собственным пониманием и генезисом вопроса.


2
+1 Спасибо, что поделились своими мыслями: они добавляют ценную информацию в эту ветку.
whuber
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.