R2WinBUGS - Предупреждающие сообщения

Я пытаюсь использовать R2WinBUGS, используя этот пример:

код

(Пожалуйста, обратите внимание только на часть: ### 5.4. Анализ с помощью WinBUGS)

Я получаю это сообщение об ошибке:

Error in file(con, "wb") : cannot open the connection
In addition: Warning messages:
1: In file.create(to[okay]) :
  cannot create file 'c:/Program Files/WinBUGS14//System/Rsrc/Registry_Rsave.odc', reason 'Permission denied'
2: In file(con, "wb") :
  cannot open file 'c:/Program Files/WinBUGS14//System/Rsrc/Registry.odc': Permission denied
Warning message:
running command '"c:/Program Files/WinBUGS14//WinBUGS14.exe" /par "D:/R2WinBUGS/normal/script.txt"' had status 1 
> 

Я не уверен, что это имеет решающее значение для правильной работы (все остальное выглядит нормально). Есть ли способ избавиться от этого?

Спасибо.

христианин

PS:

Это код R:

library(R2WinBUGS)
setwd("D:/R2WinBUGS/normal")

y10 <- rnorm(n = 10, mean = 600, sd = 30) # Sample of 10 birds
y1000 <- rnorm(n = 1000, mean = 600, sd = 30) # Sample of 1000 birds

# Save BUGS description of the model to working directory
sink("model.txt")
cat("
model {

# Priors
 population.mean ~ dunif(0,5000)        # Normal parameterized by precision
 precision <- 1 / population.variance   # Precision = 1/variance
 population.variance <- population.sd * population.sd
 population.sd ~ dunif(0,100)

# Likelihood
 for(i in 1:nobs){
    mass[i] ~ dnorm(population.mean, precision)
 }
}
",fill=TRUE)
sink()

# Package all the stuff to be handed over to WinBUGS
# Bundle data
win.data <- list(mass = y1000, nobs = length(y1000))

# Function to generate starting values
inits <- function()
  list (population.mean = rnorm(1,600), population.sd = runif(1, 1, 30))

# Parameters to be monitored (= to estimate)
params <- c("population.mean", "population.sd", "population.variance")

# MCMC settings
nc <- 3                 # Number of chains
ni <- 1000              # Number of draws from posterior (for each chain)
nb <- 1                 # Number of draws to discard as burn-in
nt <- 1                 # Thinning rate

# Start Gibbs sampler: Run model in WinBUGS and save results in object called out
out <- bugs(data = win.data, inits = inits, parameters.to.save = params, model.file = "model.txt", 
n.thin = nt, n.chains = nc, n.burnin = nb, n.iter = ni, debug = TRUE, DIC = TRUE, working.directory = getwd())

ls()

out                 # Produces a summary of the object

names(out)

str(out)

hist(out$summary[,8])           # Rhat values in the eighth column of the summary
which(out$summary[,8] > 1.1)        # None in this case

par(mfrow = c(3,1))
matplot(out$sims.array[1:999,1:3,1], type = "l")
matplot(out$sims.array[,,2] , type = "l")
matplot(out$sims.array[,,3] , type = "l")

par(mfrow = c(3,1))
matplot(out$sims.array[1:20,1:3,1], type = "l")
matplot(out$sims.array[1:20,,2] , type = "l")
matplot(out$sims.array[1:20,,3] , type = "l")

par(mfrow = c(3,1))
hist(out$sims.list$population.mean, col = "grey")
hist(out$sims.list$population.sd, col = "blue")
hist(out$sims.list$population.variance, col = "green")

par(mfrow = c(1,1))
plot(out$sims.list$population.mean, out$sims.list$population.sd)

pairs(cbind(out$sims.list$population.mean, out$sims.list$population.sd, out$sims.list$population.variance))

summary(out$sims.list$population.mean)
summary(out$sims.list$population.sd)
sd(out$sims.list$population.mean)
sd(out$sims.list$population.sd)

summary(lm(y1000 ~ 1))

person cs0815    schedule 15.11.2011    source источник
comment
У тебя виндовс виста или 7?   -  person Luciano Selzer    schedule 15.11.2011
comment
Благодарю. Windows 7. может быть проблема с разрешением?   -  person cs0815    schedule 15.11.2011
comment
Возможно, по умолчанию UAC не позволяет программам писать почти ни во что, кроме папки пользователя. Вы можете изменить это, запустив R от имени администратора. Но я думаю, что это изменит папку библиотеки, если только она не будет жестко запрограммирована на Renviron.site, но я не уверен на 100%.   -  person Luciano Selzer    schedule 15.11.2011
comment
Да, это помогло. Хотите написать ответ?   -  person cs0815    schedule 15.11.2011


Ответы (3)


Вероятно, это вина UAC Windows. По умолчанию UAC не позволяет программам писать практически ни во что, кроме папки пользователя. Вы можете изменить это, запустив R от имени администратора. Но я думаю, что это изменит папку библиотеки, если только она не будет жестко прописана в Renviron.site (внутри папки R\etc), но я не уверен в этом на 100%.

person Luciano Selzer    schedule 15.11.2011

Мне удалось решить проблему, определив «bugs.directory».

out ‹- bugs(data = win.data, inits = inits, parameters.to.save = params, model.file = "model.txt", n.thin = nt, n.chains = nc, n.burnin = nb , n.iter = ni, debug = FALSE, DIC = TRUE, working.directory = getwd(), bugs.directory = 'c:/WinBUGS14')

person Jyothy Nagol    schedule 30.03.2013
comment
Привет, я использую win8, и определения thebugs.directory было достаточно, чтобы решить проблему. - person Rafael; 25.07.2013

Ваша ссылка ведет на огромный файл, который охватывает много глав книги. В разделе комментариев написано:

# You may have to add a 'working.directory' argument to calls to
# the function bugs().

Вы уже сделали это? Там также куча пользовательских вещей, таких как:

setwd("C:/_Marc Kery/_WinBUGS book/Naked code") # May have to adapt that

Вы соответствующим образом изменили эти элементы?

person IRTFM    schedule 15.11.2011
comment
Извините, я этого не понял. Меня как раз интересует вот эта часть: арендовать только часть: ### 5.4. Анализ с помощью WinBUGS - person cs0815; 15.11.2011
comment
Первая цитата относится ко всему набору программ, а вторая цитата относится к разделу, с которым у вас возникли проблемы. - person IRTFM; 15.11.2011
comment
Я сделал бит setwd. Я не уверен насчет первого бита (working.directory). Это относится к функции ошибок, которая является частью R, однако проблема, похоже, вызывается winbugs. Если я запускаю R от имени администратора, у меня нет этих проблем. Поэтому я не уверен, будет ли ваше предложение «более чистым» решением. - person cs0815; 16.11.2011