2015-11-29 9 views
0

Я использую JAGS для запуска байесовских анализов для моделей ARMA. Мои данные - это смоделированные данные, поэтому я знаю результаты.Оценка JAGS AR (1) без исключения единичного корня

До сих пор, если я оцениваю (например) стационарный AR (1) процесс, я получаю хорошие результаты для параметра авторегрессии.

Теперь у меня есть временной ряд, который имеет единичный корень после половины наблюдений. Таким образом, 1: 500 стационарных АР (1) (с параметром авторегрессии 0,3), 500: 1000 единичного корня. Моя цель - получить плотность, которая имеет массу как по значению для стационарного параметра авторегрессии (который будет, например, 0,3), так и по массе на единичном корневом значении (примерно 1). Я хочу показать, что единичный корень входит в состав временных рядов ...

Мое предположение состояло в том, что если я использую неинформативную форму перед параметром авторегрессии, например rho1 ~ dunif (-10,10), I должен получать массу по обеим значениям. Что действительно происходит, так это то, что я просто получаю массу по значению между ними (около 0,6).

  • Должен ли я использовать другой термин для авторегрессии? Какие еще нецентральные возможности у меня есть?
  • Как возможно, что пробоотборник GIBBS проходит через неподвижную и нестационарную часть, но гистограмма не содержит наблюдений около 0,3 (стационарный ar-параметр) и вокруг единичного корня?

* редактировать:

Это немного трудно разместить код, потому что это как в R и зазубрин. Ниже приведена модель JAGS. Я использую эту модель JAGS для оценки следующих временных рядов с 1000 наблюдениями: процесс 1: 500 AR (1): y = alpha + rho1 * y [i-1] с rho1 = 0,2 и α = 0. Для 501: 1000 временные ряды имеют единичный корень (случайное блуждание).

model { 
    for (i in 2:N) 
{ 
y[i]~dnorm(f[i],tau) 
f[i] <- alpha + rho1*y[i-1] 
    } 
rho1~dunif(-10,10) 
tau~dgamma(0.001,0.001) 
alpha~dnorm(0,0.001) 
} 
+0

Было бы полезно, если вы вывесили свой код модели, или еще лучше, код и игрушечные данные, чтобы воспроизвести проблему (то есть минимальными рабочий пример). –

ответ

1

Вы определили один параметр, но хотите, чтобы он принимал одно из двух отдельных значений, в зависимости от ситуации. Это не то, как работают параметры. Пробоотборник Gibbs не «пробегает» стационарные и нестационарные части отдельно. Он рассматривает всю модель и понимает, что значение 0,3 было бы крайне маловероятным с учетом нестационарной части, тогда как значение 1 было бы столь же маловероятным с учетом стационарной части. Таким образом, образцы из заднего распределения давали все данные, и лучшее, что он может сделать, это что-то среднее между 0,3 и 1.

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

model { 
for (i in 2:500) 
{ 
y[i]~dnorm(f[i],tau) 
f[i] <- alpha + rho1*y[i-1] 
} 
for (i in 501:N) 
{ 
y[i]~dnorm(f[i],tau) 
f[i] <- alpha + rho2*y[i-1] 
} 
rho1~dunif(-10,10) 
rho2~dunif(-10,10) 
tau~dgamma(0.001,0.001) 
alpha~dnorm(0,0.001) 
}