Hi Daniel
Thanks for the answer, yes this is my code
library(readxl)
simgarchr <- read_excel("simgarchr.xlsx")
simulated_returns=simgarchr
plot(simulated_returns)
n<-length(as.numeric(simulated_returns$simulated_returns))
# Use R nimble library
library(nimble)
## BUGS code
# Model and prior
myCode <- nimbleCode({
# Likelihood
for (t in 1:1) {
y[t] ~ dnorm(0, sigma_h[t]^2)
sigma_h[t] <- exp(h[t])
}
##Priors
omega ~ dgamma(omega_star, 0.25)
alpha_beta[ 1: 3] ~ ddirch(alpha_beta_star[1:3])
h[1] <- omega[1]/(1-alpha+beta) ### long run volatility
for(t in 2:n) {
h[t] <- sqrt(omega[1] + alpha* pow(y[t-1], 2)
+ beta * pow(h[t-1], 2))
}
alpha <- alpha_beta[1,1]
beta <- alpha_beta[1,2]
alpha_beta_star[1:3]<-c(alpha_star[1],beta_star[1],phi[1])
})
# Constants, Data, Initial values for MCMC
myConstants <- list( n = n )
myData <- list( y = as.numeric(simulated_returns$simulated_returns))
myInits <- list( h = rnorm(n+1, 0, 1), alpha_star = runif(1),beta_star=runif(1),phi=1, omega = 1 , alpha_beta =c(0,0,0),alpha=0,beta=0,omega_star=rgamma(1,2,2))
dimensions <- list(
h<-c(1510),
y<-c(1509,1),
alpha_star<-c(1),
beta_star<-c(1),
omega<-c(1),
phi<-c(1),
alpha_beta<-c(3),
alpha<-c(1),
beta<-c(1),
mu<-c(1)
)
model <- nimbleModel(myCode, data=myData, inits=myInits, dimensions = dimensions)
I am having problems now with the dimensions but as I understood alpha_beta is [1] which is the same as the result that I want in alpha_beta[ 1: 3] ~ ddirch(alpha_beta_star[1:3])
But this is the model that I want to run
Thanks for your help