我以前从未使用过brm函数。我在Anaconda上安装了Rtools,然后在jupyter notebook(R)中调用了library(brms)。
这是我对brm函数的公式:
m1 <- brm(formula = bf1, data = myData,
prior = c(set_prior("cauchy(0,2)", class = "sd"),
set_prior("normal(0,3)", class = "b"), set_prior("lkj(2)", class = "cor")),
warmup = 200, iter = 1000, chains = 4, file = m1.File)
跟踪:
Error in compileCode(f, code, language = language, verbose = verbose): file1534743a411d.o:file1534743a411d.cpp:(.text$_ZN3tbb8internal26task_scheduler_observer_v3D1Ev[_ZN3tbb8internal26task_scheduler_observer_v3D1Ev]+0x14): undefined reference to `tbb::internal::task_scheduler_observer_v3::observe(bool)'file1534743a411d.o:file1534743a411d.cpp:(.text$_ZN3tbb8internal26task_scheduler_observer_v3D0Ev[_ZN3tbb8internal26task_scheduler_observer_v3D0Ev]+0x1c): undefined reference to `tbb::internal::task_scheduler_observer_v3::observe(bool)'file1534743a411d.o:file1534743a411d.cpp:(.text$_ZN4stan4math16ad_tape_observerD1Ev[_ZN4stan4math16ad_tape_observerD1Ev]+0x15): undefined reference to `tbb::internal::task_scheduler_observer_v3::observe(bool)'file1534743a411d.o:file1534743a411d.cpp:(.text$_ZN4stan4math16ad_tape_observerD1Ev[_ZN4stan4math16ad_tape_observerD1Ev]+0x47): undefined reference to `tbb::internal::task_scheduler_observer_v3::observe(bool)'file1534743a411d.o:file1534743a411d.cpp:(.text$_ZN4stan4math16ad_tape_observerD0Ev[_ZN4stan4math16ad_tape_observerD0Ev]+0x15): more undefined references to `tbb::internal::task_scheduler_observer_v3::observe(bool)' followcollect2.exe: error: ld returned 1 exit status
Traceback:
1. brm(formula = bf1, data = myData, prior = c(set_prior("cauchy(0,2)",
. class = "sd"), set_prior("normal(0,3)", class = "b"), set_prior("lkj(2)",
. class = "cor")), warmup = 200, iter = 1000, chains = 4, file = m1.File)
2. do_call(compile_model, compile_args)
3. eval2(call, envir = args, enclos = parent.frame())
4. eval(expr, envir, ...)
5. eval(expr, envir, ...)
6. .fun(model = .x1, backend = .x2, threads = .x3)
7. .compile_model(model, ...)
8. do_call(rstan::stan_model, args)
9. eval2(call, envir = args, enclos = parent.frame())
10. eval(expr, envir, ...)
11. eval(expr, envir, ...)
12. .fun(model_code = .x1)
13. cxxfunctionplus(signature(), body = paste(" return Rcpp::wrap(\"",
. model_name, "\");", sep = ""), includes = inc, plugin = "rstan",
. save_dso = save_dso | auto_write, module_name = paste("stan_fit4",
. model_cppname, "_mod", sep = ""), verbose = verbose)
14. pkgbuild::with_build_tools(cxxfunction(sig = sig, body = body,
. plugin = plugin, includes = includes, settings = settings,
. ..., verbose = verbose), required = rstan_options("required") &&
. !identical(Sys.getenv("WINDOWS"), "TRUE") && !identical(Sys.getenv("R_PACKAGE_SOURCE"),
. ""))
15. withr::with_path(rtools_path(), code)
16. force(code)
17. cxxfunction(sig = sig, body = body, plugin = plugin, includes = includes,
. settings = settings, ..., verbose = verbose)
18. compileCode(f, code, language = language, verbose = verbose)
19. stop(tail(errmsg))
Error in sink(type = "output"): invalid connection
Traceback:
1. brm(formula = bf1, data = myData, prior = c(set_prior("cauchy(0,2)",
. class = "sd"), set_prior("normal(0,3)", class = "b"), set_prior("lkj(2)",
. class = "cor")), warmup = 200, iter = 1000, chains = 4, file = m1.File)
2. do_call(compile_model, compile_args)
3. eval2(call, envir = args, enclos = parent.frame())
4. eval(expr, envir, ...)
5. eval(expr, envir, ...)
6. .fun(model = .x1, backend = .x2, threads = .x3)
7. .compile_model(model, ...)
8. do_call(rstan::stan_model, args)
9. eval2(call, envir = args, enclos = parent.frame())
10. eval(expr, envir, ...)
11. eval(expr, envir, ...)
12. .fun(model_code = .x1)
13. cxxfunctionplus(signature(), body = paste(" return Rcpp::wrap(\"",
. model_name, "\");", sep = ""), includes = inc, plugin = "rstan",
. save_dso = save_dso | auto_write, module_name = paste("stan_fit4",
. model_cppname, "_mod", sep = ""), verbose = verbose)
14. sink(type = "output")
任何人都可以解释一下这一切意味着什么,我应该怎么做才能使brm函数起作用?我不知道从哪里开始